web-dev-qa-db-fra.com

Comment installer PHP extension intl sur CentOS?

Je ne sais pratiquement rien sur l'installation de packages. J'ai réussi à installer Zend Framework 1 avec yum il y a quelque temps en suivant un tutoriel très spécifique.

Maintenant, j'ai besoin de l'extension PHP intl et je ne sais pas comment l'installer.

J'ai fait

yum list php*intl

et a vu qu'il y en avait un disponible. J'ai donc fait

yum install php-intl

et a obtenu le message d'erreur suivant:

Error: Package: php-intl-5.3.3-14.el6_3.x86_64 (updates)
       Requires: php-common = 5.3.3-14.el6_3
       Installed: php-common-5.3.17-2.el6.remi.x86_64 (@remi)
           php-common = 5.3.17-2.el6.remi
       Available: php-common-5.3.3-3.el6_2.8.x86_64 (base)
           php-common = 5.3.3-3.el6_2.8
       Available: php-common-5.3.3-14.el6_3.x86_64 (updates)
           php-common = 5.3.3-14.el6_3
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Je n'ai pas essayé les suggestions mentionnées dans le message parce que je ne savais pas ce qu'elles feraient et j'ai peur de casser quelque chose. C'est une machine de production et je n'ai pas d'autre machine pour tester. J'ai essayé de trouver un rpm à télécharger qui était la même version que mon PHP, mais je n'ai pas eu de chance.

Que font ces deux suggestions et sont-elles sûres à essayer? Que puis-je faire d'autre pour installer l'extension intl?

22
toxalot

Comme vous avez php-commom à partir des dépôts remi, vous devez également obtenir php-intl à partir de remi.

Ajouter --enable-repo option comme suit:

yum --enablerepo=remi install php-intl
27

Si vous avez une version supérieure PHP comme 5.6, vous devez activer à la fois remi et remi-php56 repos pour installer toutes les dépendances supplémentaires:

yum --enablerepo=remi,remi-php56 install php-intl
9
Christos Lytras

J'ai réussi à installer INTL via pecl en suivant les étapes suivantes.

1) installez icu & libs:

yum -y install icu libicu libicu-devel

2) paquet php-devel et phpize:

yum -y install php-devel phpize

3) et bien sûr gcc:

yum -y install gcc gcc-cpp gcc-c++

Cela fonctionne pour moi. Ma version PHP est 5.6.12

2
Faisal

pour php 7.0 en utilisant

#list all options    
$ Sudo yum list php7*intl

#install
$ Sudo yum install php70-intl
1
Fernando Valler

Yum génère une erreur car nous tentons de mettre à jour plusieurs packages vers des versions en conflit. Votre sortie yum indique que php-intl nécessite une version spécifique de php-common. Suppression de tous les déchets:

Requires 5.3.3-14
Installed 5.3.17-2
Available 1st Option: 5.3.3-3
Available 2nd Option: 5.3.3-14

Cela nous indique que vous avez déjà installé une version plus récente de php-common (5.3.17-2) que celle autorisée par php-intl.

Je pense que vous avez deux options. (En tant que débutant moi-même, je ne tenterais pas cela sans pratiquer dans un environnement de développement.)

1) Supprimer les packages remi

Citant une question similaire sur Super User. "Essayez de supprimer tous les paquets remi php, désactivez le dépôt remi et installez les paquets centos 6 php 5.3.3 par défaut."

https://superuser.com/questions/505340/centos-6-how-to-install-php-mysql-when-php-common-remi-is-present

2) Rétrograder php-common vers la version 5.3.3-14

yum downgrade php-common

Je ne sais pas si vous rencontrez plus de problèmes de dépendance et devez rétrograder d'autres packages. J'ai trouvé plus de détails ici.

https://www.centos.org/modules/newbb/viewtopic.php?topic_id=40567&forum=56

D'autres sites Stack Exchange présentent des questions similaires.

https://serverfault.com/search?q=centos+error+package (370 résultats)

https://unix.stackexchange.com/search?q=centos+error+package (57 résultats)

1
jtherkel