2016-08-18 1 views
2

J'ai suivi les instructions décrites ici:Installer PHP 7.0 l'extension Internationalisation (Intl) sur XAMPP Mac

Install PHP Internationalization extension (Intl) on XAMPP on Mac

Ran sudo pecl install intl sélectionné les fichiers corrects de la Cave

alors ce erreur s'est produite:

/private/tmp/pear/temp/intl/intl_error.h:24:10: fatal error: 'ext/standard/php_smart_str.h' file not found

include

^1 error generated. make: *** [php_intl.lo] Error 1 ERROR: `make' failed 

Peu importe, a fait quelques recherches et a constaté que PHP 7.0.8 d eprecated php.smart_str.h à php.smart_string.h

Donc, étant donné ma connaissance peu de C++ j'ai copié smart_string.h à smart_str.h et renommé tous les en-têtes d'une corde à .....

re-ran pecl - pas de chance .... plus d'erreurs ...... sans savoir où sont les fichiers .c et refaire php (pas vraiment intéressé d'aller aussi loin) puisque de toute façon j'utilise XAMPP pour que ça finisse option.

Je php 5.5 sur mon mac, profondément dans le dossier usr/local/bin donc la prochaine étape était d'obtenir PECL d'utiliser ces fichiers et générer un fichier intl.so ....

Est-ce que .... J'ai le fichier intl.so donc le mettre dans le dossier 'extensions' dans XAMPP (pour référence:/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012)

php Ran et est venu avec cette erreur:

Warning: PHP Startup: Unable to load dynamic library '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so' - dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so, 9): Symbol not found: _zval_used_for_init Referenced from: /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so Expected in: flat namespace in /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so in Unknown on line 0

J'imagine qu'il doit faire avec différentes Versions ent?

Dans tous les cas je ne peux pas obtenir pecl pour installer intl sans une erreur make dans PHP 7.0.8 sur XAMPP. Il n'y a pas de documentation à ce sujet et vous pensez que si vous dépréciez un fichier header.h vous mettriez à jour toutes les extensions?

S'il vous plaît me aider à installer intl.so en PHP 7

Répondre

1

Ainsi, il semble bien que l'extension intl.so pour php est livré avec php et doit être compilé avec php (intl --enabled). XAMPP ne supporte pas cela (oct. 2016), MAMP le fait. Je ne sais pas pour les autres distributions. Cependant, si vous êtes prêt à recompiler PHP 7, cela vaut la peine de le faire et de l'activer lors de la compilation.

Alors .... J'ai couru avec MAMP. Puis j'ai décidé que j'installerais simplement Apache 2.4 et PHP 7 et Mysql sans la pile et le rebut qui vient avec MAMP ou XAMPP et tout fonctionne comme un charme ... donc si vous avez besoin d'utiliser CakePHP ou intl support etc ... il suffit de déposer XAMPP/MAMP et aller avec une installation standard. J'ai utilisé homebrew (MacOS) et tout fonctionne bien.

Mise à jour: En ce qui concerne Windows, XAMPP ne le fait pas par défaut, mais vous pouvez ajouter le module (dll) dans php.ini et fonctionne comme un charme