OS X Server kommt von Werk aus mit einer relativ umfangreichen PHP-Installation (Lion: PHP 5.3; Mavericks: PHP 5.4; Yosemite: PHP 5.5), bei der auf den ersten Blick nur wenige Wünsche offen bleiben. Die gettext-Erweiterung gehört jedoch nicht zum Lieferumfang. So wird sie installiert, damit man sie mit dem Apache Webserver von OS X Server verwenden kann:
Achtung! Dieser Artikel setzt voraus, dass Sie mit einem Programm wie dem Terminal umgehen können und keine Berührungsängste mit der Befehlszeile haben.
- Aktuelle Version der Xcode Command Line Tools (siehe https://developer.apple.com/xcode/downloads/) herunterladen und installieren, denn diese legt den Ordner /usr/includes an bzw. aktualisiert dessen Inhalte und bringt u.a. die PHP-Quelldateien mit, die für’s Erstellen der gettext-Erweiterung erforderlich sind.
- Aktuelle gettext-Version herunterladen (siehe http://ftp.gnu.org/pub/gnu/gettext/ – aktuelle Version im Oktober 2014: 0.19.2) – dafür habe ich den Ordner /SourceCache angelegt – und entpacken.
- Ins gettext-Verzeichnis wechseln und ./Configure, make und sudo make install durchführen.
- Von OS X verwendete PHP-Version herunterladen und entpacken; hier: PHP 5.5.14
- Im entpackten PHP-Ordner zu ext/gettext wechseln und dort die Befehle phpize, ./Configure, make und sudo make install eingeben. Die Erweiterung wird dann in /usr/libexec/php/extensions/non-debug-non-zts-20121212 abgelegt.
- Diesen Ordner muss man noch in der /etc/php.ini referenzieren. Dazu folgende Zeilen am Ende der Datei hinzufügen:
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20121212" [gettext] extension=gettext.so
- Apache neu starten und fertig.
Ich hoffe, der Artikel gefällt, und freue mich auf Kommentare!
Klappt sehr gut allerdings bekomm ich nun immer „Fatal error: Cannot redeclare _() in “
Irgendeine Idee woran das liegen könnte ?
Gruß
G.
Nach dem, was ich anderswo so lese, hört sich das nach einem Fehler im PHP-Code an, indem z.B. eine Klasse mit include_once oder require_once versehentlich mehrfach eingebunden wurde.