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?
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://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
Sie können brew
verwenden, um Gettext nach der Installation zu verknüpfen
brew install gettext
brew link --force gettext
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
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:
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.0
ausführenDie 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).
Bearbeiten Sie die Apache2-Konfiguration unter /private/etc/Apache2/httpd.conf
(erstellen Sie ggf. ein Backup).
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.
Führen Sie schließlich apachectl restart
aus, um den Apache-Server neu zu starten.