Comment installer PHP 5.3 sur CentOS?


9

Je dois installer PHP 5.3 sur mon serveur CentOS. Si je le fais yum install php, le référentiel de base installe 5.1.6 qui est trop ancien pour les applications que j'ai besoin d'installer. J'ai donc essayé d'utiliser le référentiel IUS , en suivant les instructions officielles d'IUS:

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-2.ius.el5.noarch.rpm

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm

root@linuxbox ~]# rpm -Uvh ius-release*.rpm epel-release*.rpm

D'ACCORD. Maintenant, je fais simplement yum install php53, etc. pour tout ce dont j'ai besoin ... mais je reçois cette erreur:

Running rpm_check_debug
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

Error Summary
-------------

Je n'ai aucune idée de comment résoudre ce problème. Je pense que je dois supprimer les packages de base. Cependant, en tant que nouveau venu sur Linux, je ne sais pas comment faire ça.

Réponses:


8

Mise à jour : apparemment RHEL 5.6 inclut PHP 5.3 , donc cela apparaîtra nativement pour CentOS bientôt.

file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

Le problème ici est que les packages que vous installez ont un nom différent (php53 au lieu de php), mais ils tentent d'installer les mêmes fichiers ... d'où les conflits. Ce n'est pas nécessairement la meilleure façon de rassembler les packages, mais je ne sais pas si de meilleurs packages sont disponibles, nous l'ignorerons donc.

Pour supprimer vos packages actuellement installés:

# yum remove php-cli php-common php

Donc, en général, yum remove <list of packages>supprimera les packages. Et bien sûr, yum list installedpour voir une liste des packages installés (ou rpm -qa).


hm ouais supprimer pourrait être mieux qu'effacer, car l'effacement supprime également les dépendances. Essayez d'abord de supprimer, si cela échoue, essayez d'effacer.
Phil Hollenback

2
removeet erasesont des synonymes, selon la yumpage de manuel sous CentOS et les versions récentes de Fedora.
larsks

Merci! Cela a fonctionné, même si je n'ai pas eu à supprimer php mais les deux premiers de cette liste. Pour installer php 5.3, je dois seulement installer correctement php53? Il y a beaucoup de packages répertoriés, mais je pense que c'est le seul important, non?
fivelitresofsoda

Certainement des synonymes. Regardez yumcommands.pysi vous en doutez. :)
mattdm

Probablement. Vous seul savez si votre application nécessite l'un des modules supplémentaires (par exemple, la prise en charge xml, la prise en charge LDAP, les bases de données, etc.).
larsks

4

La réponse à cette question a changé depuis le 13 janvier 2011. Red Hat a publié la version 5.6, et cela inclut PHP version 5.3 en tant que package séparé ( php53).

Vous devez supprimer l'ancien PHP puis installer PHP 5.3 séparément. Cela ressemble à votre package du référentiel IUS, mais maintenant c'est officiel.

Pour plus d'informations, consultez les notes de publication de Red Hat .

Notez que cela vient de sortir de Red Hat et qu'il y aura un peu de temps avant que cela ne soit disponible dans CentOS. La mise à jour RHEL 5.6 semble relativement mineure, donc je ne dois pas m'attendre à ce qu'elle soit trop longue.


oui. et 4 mois plus tard. ce n'est toujours pas dans les dépôts centos. :(
Stann


Il est disponible à partir d'avril 2011. Ouf. Voir les notes de mise à jour de CentOS 5.6
Stefan Lasiewski

2

Essayez de supprimer les anciennes versions des packages avant d'installer les nouvelles:

miam effacer php-cli php-comon

puis essayez votre installation yum.

Avertissement : consultez la liste des modifications que yum souhaite apporter avant de valider, pour vous assurer que vous ne supprimez pas d'autres packages importants.


2

Vous avez raison, vous devez d'abord désinstaller les packages php par défaut. Avant de continuer, gardez à l'esprit que d'autres packages peuvent avoir des dépendances spécifiques sur les versions de base. Il y a de fortes chances que vous iriez bien, mais sachez que vous devrez peut-être répondre à d'autres préoccupations plus tard.

Vous devriez pouvoir le faire en émettant

yum erase php-common php-cli

Suivi par votre

yum install php53


1
  1. J'ai dû supprimer php-cli, php-commonet php-devavec quelques dépendances mais rien d'autre (MySQL, etc. étaient intacts.)
  2. J'ai installé les mêmes packages dans la version PHP 5.3 avec des dépendances et maintenant tout est opérationnel. phpinfoconfirme que j'utilise PHP version 5.3.3.
  3. J'ai redémarré Apache et le site, exécutant Joomla, fonctionne très bien.

0

J'ai eu le même problème où "yum update php" me donnerait des erreurs de conflit.

L'exécution de "yum update" (tout mettre à jour) a cependant fonctionné pour moi. Essayez ça.

De plus, sachez que si vous exécutez "yum erase php" ou "yum remove php", cela peut supprimer tous les packages qui dépendent de PHP ... qui inclurait probablement votre panneau de contrôle Plesk ou CPanel si vous l'avez installé. Si je ne me trompe pas, vous devrez réinstaller ceux-ci, ce qui pourrait être pénible.


2
Oui, j'ai exactement ce problème. Pour mettre à jour PHP, yum veut supprimer Drupal, ce qui n'est pas vraiment une dépendance: cela nécessite PHP pour fonctionner, mais peu importe quelle version de PHP, car c'est une source PHP et non un programme compilé. Est-il possible de désinstaller PHP5.2 et de laisser Drupal tranquille?
bart

0

Je viens de résoudre ce problème après de nombreuses recherches, à savoir l'installation de PHP 5.3.10 sur CentOS 5.3. J'avais essayé d'utiliser plusieurs dépôts, y compris le dépôt Atomicorp , mais ce plesk s'est cassé

J'ai finalement trouvé les étapes suivantes un régal, pensais-je partager.

COMMENCER

Téléchargez et activez les référentiels REMI et EPEL

cd ~
wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

vi /etc/yum.repos.d/remi.repo

Remplacez "enabled = 0" par "enabled = 1" sous la rubrique "[remi]"

Vous devez supprimer php-sqlite2 ou vous obtiendrez une erreur de dépendance

yum remove php-sqlite2

Mettez à jour PHP vers la dernière version 5.3.10 dans ce cas

yum update php

Sauvegardez php.ini et activez la version nouvellement installée

mv /etc/php.ini /etc/php.ini.old
mv /etc/php.ini.rpmnew /etc/php.ini

Sauvegardez my.cnf et activez la version nouvellement installée

mv /etc/my.cnf /etc/my.cnf.old
mv /etc/my.cnf.rpmnew /etc/my.cnf

Installer la dernière version de l'extension ioncube

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -xvf ioncube_loaders_lin_x86-64.tar.gz
mv ioncube/* /usr/lib64/php/modules/

echo 'zend_extension=/usr/lib64/php/modules/ioncube_loader_lin_5.3.so' > /etc/php.d/ioncube-loader.ini

Vous devrez peut-être également installer des extensions php, dans ce cas, j'avais également besoin d'installer l'extension SOAP:

yum install php-soap

Redémarrez les services pour que les modifications prennent effet

service mysqld restart
service httpd restart

TERMINÉ

À votre santé; marque

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.