extension intl (php, symfony)

extension intl (php, symfony) - PHP - Programmation

Marsh Posté le 11-12-2012 à 15:54:43    

Bonjour,
 
je suis en train d'installer mamp sur un mac avec symfony2. j'en suis à activer l'extension intl.
 
C'est apparemment une vraie galère non encore résolue, en tout cas sous mac.
 
J'ai installé macport, importé les paquets de intl, copié le intl.so du macport dans le dossier d'extensions de MAMP, ajouté la ligne dans le php.ini de MAMP, de MAMP Pro... rien n'y fait. :??:  
 
l'erreur que j'obtiens semble être lié au fait que le .so a été compilé à l'extérieur du php de mamp:

Code :
  1. PHP Warning:  PHP Startup: intl: Unable to initialize module
  2. Module compiled with module API=20090626
  3. PHP    compiled with module API=20100525


 
je suis à 2 doigts de lâcher mon mac tellement ce problème m'agace  :fou: , sachant que j'y ai déjà passé la journée.
 
Merci d'avance de vos conseils avisés :jap:  
 
Possum3D

Reply

Marsh Posté le 11-12-2012 à 15:54:43   

Reply

Marsh Posté le 13-12-2012 à 11:21:35    

En réalité c'est pas vraiment Mac le problème, mais MAMP.
 
En effet, le fait que tu compiles ton extensions intl à partir de MacPorts fait qu'elle n'est pas compilé avec le même numéro module API que ton PHP fourni avec MAMP.
 
Mon conseil avisé serait que tu arrêtes d'utiliser MAMP.
 
Personnellement, j'utilise homebrew, une alternative à MacPorts.
 
Aucun problème à signaler pour installer PHP, un serveur web si nécessaire (je me sers personnellement du serveur web intégré à PHP 5.4 qui fait très bien le job), un serveur mysql, etc.
 
Si jamais t'as envie de tenter le coup : http://mxcl.github.com/homebrew/


---------------
Mon Feedback !
Reply

Marsh Posté le 16-12-2012 à 23:11:55    

En fait c'est un phénomène assez fréquent lorsque tu utilises des modules sous la forme de bibliothèques partagées (.so). Ces modules ont vraisemblablement été compilés pour une version de PHP diférente de la tienne.
 
Le mieux est de recompiler à la mano ton PHP avec les différents modules dont tu as besoin (en static, donc), surtout si t'es sur mac donc sur une base linux.
Ca te fait un PHP custom avec uniquement les modules dont tu as besoin, et de plus chargés en statique, donc plus rapides.
 

Code :
  1. PHP_VERSION='5.4'
  2. sudo mkdir -p /usr/local/src
  3. cd /usr/local/src
  4. sudo rm   -fr   php$PHP_VERSION*
  5. sudo wget -O    php$PHP_VERSION.tar.gz "http://snaps.php.net/php$PHP_VERSION-latest.tar.gz"
  6. sudo tar  -xvzf php$PHP_VERSION.tar.gz
  7. sudo rm   -fr   php$PHP_VERSION.tar.gz
  8. cd              php*
  9. sudo make clean
  10. sudo rm -fr configure autom4te.cache
  11. sudo ./buildconf --force
  12. # sudo ./configure --help List all options
  13. sudo ./configure CFLAGS='-O3 -unroll2 -march=native' \
  14.                  CXXFLAGS='-O3 -unroll2 -march=native' \
  15.                  --prefix=/usr/local/php \
  16.                  --enable-fpm \
  17.                  --disable-dba \
  18.                  --disable-short-tags \
  19.                  --disable-sysvshm \
  20.                  --enable-exif \
  21.                  --enable-ftp \
  22.                  --enable-gd-native-ttf \
  23.                  --enable-mbstring \
  24.                  --enable-soap \
  25.                  --enable-sockets \
  26.                  --enable-xmlreader \
  27.                  --with-curl \
  28.                  --with-curlwrappers \
  29.                  --with-fpm-user=www-data \
  30.                  --with-gd \
  31.                  --with-gettext \
  32.                  --with-iconv=/usr/lib/ \
  33.                  --with-mcrypt \
  34.                  --with-mysql=mysqlnd \
  35.                  --with-mysqli=mysqlnd \
  36.                  --with-openssl \
  37.                  --with-pdo-mysql=mysqlnd \
  38.                  --with-pdo-sqlite \
  39.                  --with-tidy \
  40.                  --with-zlib
  41. #--with-iconv=/usr/lib/ \
  42. #--with-apxs2=/usr/local/apache/bin/apxs \
  43. sudo make
  44. #sudo make test
  45. sudo make install


 
A toi de moduler les options (with/without/enable/disable) selon tes besoins, mais ça te fait déjà une bonne base pour commencer :)


Message édité par CyberDenix le 16-12-2012 à 23:14:54

---------------
Directeur Technique (CTO)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed