webentwicklung-frage-antwort-db.com.de

Wie installiert man gettext unter MacOS X?

Wie installiere ich gettext auf einem Mac?

Ich bekomme diesen Fehler auf einer meiner PHP-Seiten:

Fatal error: Call to undefined function bindtextdomain()

und es liegt daran, dass ich gettext nicht installiert habe.

Ich kann keine guten Anweisungen zur Installation finden. Ich habe versucht mit:

brew install gettext

und es stellt einige Dateien hier:

/usr/local/Cellar/gettext/0.18.2

aber ich weiß nicht, was ich damit anfangen soll.

Update: Anstatt Homebrew zu verwenden, habe ich diese Methode nun mit wget erfolglos ausprobiert:

Mit wget herunterladen

cd ~/Downloads
wget http://ftp.gnu.org/gnu/gettext/gettext-0.18.2.tar.gz
tar -zxvf gettext-0.18.2.tar.gz
cd gettext-0.18.2
./configure
make

make check ist optional, um Selbsttests auszuführen

make check

Fehler, die ich bekam:

make [3]: *** [check-TESTS] Fehler 1

make [2]: *** [check-am] Fehler 2

make [1]: *** [check-recursive] Fehler 1

Sudo make install

Das installiert es hier: /Usr/local/share/gettext

Und die Dokumentation hier: /Usr/local/share/doc/gettext

aber wie kann ich meine PHP-Seiten dazu nutzen, gettext und die Funktion bindtextdomain () zu verwenden?

21
aharris88

Ich habe es endlich verstanden. Sie müssen PHP neu konfigurieren, also habe ich ein Upgrade von 5.3.15 auf 5.4.12 durchgeführt. Diese Websites waren sehr hilfreich:

http://mac.tutsplus.com/tutorials/server/upgrading-the-native-php-installation-on-os-x-mountain-lion/

http://mansion.im/2011/php-with-intl-and-gettext-on-osx-lion/

#Install dependencies
brew install libjpeg
brew install pcre
brew install libxml2
brew install mcrypt

#Get autoconf just because
brew install autoconf

#Install Intl extension
#Install ICU
#Download from http://site.icu-project.org/download/48#ICU4C-Download
cd ~/Downloads
tar xzvf icu4c-4_8_1-src.tgz
cd icu/source
./runConfigureICU MacOSX
make
Sudo make install

cd ~/Downloads/php-5.4.12/ext/intl
phpize
./configure --enable-intl
make
Sudo cp modules/intl.so /usr/lib/php/extensions/no-debug-non-zts-20090626/

#Install gettext
#Download from http://ftp.gnu.org/gnu/gettext/
cd ~/Downloads
tar xzvf gettext-0.18.1.1.tar.gz
cd gettext-0.18.1.1
./configure
make
Sudo make install

cd ~/Downloads/php-5.4.12/ext/gettext
phpize
./configure 
make
Sudo cp modules/gettext.so /usr/lib/php/extensions/no-debug-non-zts-20090626/

#Add intl and get text to php.ini
cd ~/Downloads/php-5.4.12
nano php.ini-development
#Add these lines
extension=intl.so
extension=gettext.so

#Download PHP source files from php.net
cd ~/Downloads
tar xzvf php-5.4.12.tar.bz2
cd php-5.4.12

./configure \
--prefix=/usr \
--with-gettext \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--sysconfdir=/private/etc \
--with-apxs2=/usr/sbin/apxs \
--enable-cli \
--with-config-file-path=/etc \
--with-libxml-dir=/usr \
--with-openssl=/usr \
--with-kerberos=/usr \
--with-zlib=/usr \
--enable-bcmath \
--with-bz2=/usr \
--enable-calendar \
--with-curl=/usr \
--enable-dba \
--enable-exif \
--enable-ftp \
--with-Gd \
--enable-Gd-native-ttf \
--with-icu-dir=/usr \
--with-iodbc=/usr \
--with-ldap=/usr \
--with-ldap-sasl=/usr \
--with-libedit=/usr \
--enable-mbstring \
--enable-mbregex \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--without-pear \
--with-pdo-mysql=mysqlnd \
--with-mysql-sock=/var/mysql/mysql.sock \
--with-readline=/usr \
--enable-shmop \
--with-snmp=/usr \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-tidy \
--enable-wddx \
--with-xmlrpc \
--with-iconv-dir=/usr \
--with-xsl=/usr \
--enable-Zip \
--with-imap=/usr/local/imap-2007 \
--with-kerberos \
--with-imap-ssl \
--enable-intl \
--with-pcre-regex \
--with-pgsql=/usr \
--with-pdo-pgsql=/usr \
--with-freetype-dir=/usr/X11 \
--with-jpeg-dir=/usr \
--with-png-dir=/usr/X11

make test
Sudo make install

#Restart Apache
Sudo apachectl restart
8
aharris88

Sie können brew verwenden, um Gettext nach der Installation zu verknüpfen

brew install gettext
brew link --force gettext
70

Ich habe eine einfachste funktionierende Lösung gefunden, die immer noch für Einzelgänger funktioniert. Hier ist es: https://stackoverflow.com/a/11792640/512504

0
mbritto

Wenn die Neuinstallation von PHP akzeptabel ist, versuchen Sie, die gewünschte PHP-Version von here herunterzuladen und zu installieren.

In meinem Fall habe ich die Version 7.0 verwendet. Schritte zur Neuinstallation:

  1. Terminal öffnen und curl -s https://php-osx.liip.ch/install.sh | bash -s 7.0 ausführen
  2. Die installierte PHP-Datei befindet sich unter /usr/local/php5-7.0.31-20180903-120321/lib (Ich bin nicht sicher, warum der Verzeichnisname php5-7xxxx ist, aber die installierte PHP-Version ist 7.0).

  3. Bearbeiten Sie die Apache2-Konfiguration unter /private/etc/Apache2/httpd.conf (erstellen Sie ggf. ein Backup).

  4. Ersetzen Sie LoadModule php7_module libexec/Apache2/libphp7.so durch LoadModule php7_module /usr/local/php5-7.0.31-20180903-120321/libphp7.so (vergessen Sie nicht, das "#" - Symbol zu kommentieren), speichern Sie dann und beenden Sie das Programm.

  5. Führen Sie schließlich apachectl restart aus, um den Apache-Server neu zu starten.

 enabled_gettext

0
Francis