Comment installer gettext sur mac?
Je reçois cette erreur sur une de mes pages php:
Fatal error: Call to undefined function bindtextdomain()
et c'est parce que je n'ai pas installé gettext.
Je ne trouve pas de bonnes instructions pour l'installer. J'ai essayé d'utiliser:
brew install gettext
et il met quelques fichiers ici:
/usr/local/Cellar/gettext/0.18.2
mais je ne sais pas quoi faire avec ça.
Mise à jour: Au lieu d'essayer d'utiliser homebrew, j'ai maintenant essayé cette méthode sans succès en utilisant wget:
Télécharger avec wget
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 est facultatif pour exécuter des autotests
make check
Erreurs que j'ai eues:
make [3]: *** [check-TESTS] Erreur 1
make [2]: *** [check-am] Erreur 2
make [1]: *** [check-récursif] Erreur 1
Sudo make install
Cela l'installe ici: /Usr/local/share/gettext
Et la documentation ici: /Usr/local/share/doc/gettext
mais comment faire en sorte que mes pages php puissent utiliser gettext et la fonction bindtextdomain ()?
Je l'ai finalement eu. Vous devez reconfigurer php, alors j'ai fini par passer de 5.3.15 à 5.4.12. Ces sites ont été très utiles:
http://mac.tutsplus.com/tutorials/server/upgrade-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
Vous pouvez utiliser brew
pour lier gettext après l'avoir installé.
brew install gettext
brew link --force gettext
J'ai trouvé une solution de travail plus simple, qui fonctionne toujours sur des francs-tireurs. La voici: https://stackoverflow.com/a/11792640/512504
Si réinstaller php est acceptable, essayez de télécharger et d'installer la version de php que vous voulez depuis ici .
Dans mon cas, j'ai utilisé la version 7.0. Étapes à suivre pour réinstaller:
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.0
Le php installé résidera à /usr/local/php5-7.0.31-20180903-120321/lib
(je ne sais pas pourquoi le nom du répertoire est php5-7xxxx, alors que la version de php installée est la 7.0)
Éditez la configuration Apache2 à /private/etc/Apache2/httpd.conf
(faites une sauvegarde si nécessaire)
Remplacez LoadModule php7_module libexec/Apache2/libphp7.so
par LoadModule php7_module /usr/local/php5-7.0.31-20180903-120321/libphp7.so
(n'oubliez pas de ne pas commenter le symbole "#"), puis enregistrez et quittez.
Enfin, exécutez apachectl restart
pour redémarrer votre serveur Apache.