PHP gettext für OS X Yosemite Server

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.

  1. 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.
  2. 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.
  3. Ins gettext-Verzeichnis wechseln und ./Configure, make und sudo make install durchführen.
  4. Von OS X verwendete PHP-Version herunterladen und entpacken; hier: PHP 5.5.14
  5. 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.
  6. 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
  7. Apache neu starten und fertig.

Ich hoffe, der Artikel gefällt, und freue mich auf Kommentare!

3 Antworten auf „PHP gettext für OS X Yosemite Server“

  1. Klappt sehr gut allerdings bekomm ich nun immer „Fatal error: Cannot redeclare _() in “

    Irgendeine Idee woran das liegen könnte ?

    Gruß
    G.

    1. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Ich stimme der Datenschutzerklärung zu

WordPress Cookie Hinweis von Real Cookie Banner