J'ai suivi les instructions d' Install Apache / PHP 5.4.10 sur Fedora 17/16, CentOS / RHEL 6.3 / 5.8 avec une légère modification. Cela a pris peut-être 10 minutes. Mes commandes exactes sont présentées ci-dessous. Notez que la première commande a dû être modifiée par rapport à ce qui est indiqué dans l'article. Le changement était de epel-release-6-7.noarch.rpm
à epel-release-6-8.noarch.rpm
.
Comment ajouter un dépôt qui fournit PHP 5.4 en miam?
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm
Cela peut-il remplacer de manière transparente la version PHP actuelle dans CentOS? Pour moi, les commandes suivantes ont fonctionné et aucune de mes pages Web PHP existantes ne s'est cassée. Votre kilométrage peut varier.
yum --enablerepo=remi install httpd php php-common
yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
service httpd restart
Comment puis-je revenir au dépôt officiel lorsqu'il prend en charge PHP5.4? Je n'ai pas testé les commandes pour supprimer et réinstaller PHP à partir des référentiels CentOS, mais cela devrait fonctionner.
# Remove the Remi packages. Note the reversed command order
yum remove php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
yum remove httpd php php-common
# Install the CentOS packages.
yum install httpd php php-common
yum install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
Y aura-t-il un potentiel de rupture des modules PHP que j'utilise actuellement? Oui. En utilisant une version récente de CentOS (6.2?) Avec Zend installé à l'aide du programme d'installation de Zend, la mise à niveau ci-dessus a cassé Zend.
Toutes les commandes ci-dessus ont été exécutées en tant que root
. La meilleure pratique consiste à se connecter en tant qu'utilisateur non privilégié et à l'utiliser sudo
. (Ceci est une machine virtuelle de développement avec un instantané actuel ...)
De plus, n'activez PAS le référentiel Remi par défaut - dans le passé, je suis devenu intelligent et je l'ai activé par défaut et les choses se sont brisées, même avec la priorité du référentiel.
Jeff Benshetler
la source
yum --enablerepo=remi update
et il prend en charge tous les packages php connexes, ressemble à une meilleure solution. Le serveur fonctionne sans problème depuis quelques jours, merci pour toutes les infos.php
à la liste d'installation, ce qui m'a causé beaucoup de problèmes car apache n'a pas servi les fichiers php, alors n'oubliez pas d'ajouter ceci lors de l'utilisationUne amélioration par rapport à l'autre réponse Webtatic:
1 . Utilisation du guide sur http://www.webtatic.com/packages/php54/ :
2. Vous devez d'abord voir ce que les packages installés existants doivent remplacer, vous pouvez le faire en utilisant yum shell pour combiner la suppression de php-common et l'installation de php54w-common en une seule transaction (afin que les dépendances partagées ne soient pas supprimées)
Ne dites pas «y» aux résultats, mais prenez note de tous les packages mentionnés dans «Suppression des dépendances», par exemple
S'il y a d'autres packages que php * dans cette liste, vous ne pouvez pas passer en toute transparence à Webtatic PHP 5.4, mais vous devrez rechercher des alternatives. Webtatic a des packages de remplacement pour tous les packages php de base (voir les packages répertoriés sur la page liée à 1. pour confirmation), donc il ne devrait pas y avoir de problèmes, sauf si vous utilisez d'autres référentiels tiers dont les packages sont installés en fonction de la version php spécifique installée.
Pour le reste de l'installation (toujours dans le shell yum), il vous suffit de supprimer ces packages et d'installer leurs homologues php54w- *:
Vous ne devriez alors voir que les packages que vous avez définis pour être supprimés et installés dans la liste, et vous pouvez confirmer l'installation pour basculer. Tous les services en cours d'exécution avec php chargé devront être redémarrés, par exemple httpd ou php-fpm.
En ce qui concerne la transparence, tout changement de logiciel qui se produit pendant que les utilisateurs peuvent accéder au site Web devrait avoir des conséquences parfaitement comprises. Les bibliothèques partagées qui sont supprimées et ajoutées lorsqu'un processus ne les a pas déjà chargées peuvent potentiellement se charger alors que la bibliothèque partagée n'est pas là. Il est préférable d'effectuer des mises à niveau logicielles comme celle-ci hors ligne, et de préférence testées sur une machine non-production d'abord pour vérifier que le processus fonctionne comme prévu.
3. Pour basculer vers un hypothétique package de base Centp php54 (CentOS 5 utilise le préfixe php53), vous exécutez simplement les étapes ci-dessus en remplaçant la suppression de php par la suppression de php54w et l'installation de php54w avec l'installation de php54, par exemple
Cependant, en ce qui concerne le passage à la base hypothétique php54, il n'y aura probablement pas d'alternative pour certains packages (par exemple, il n'y avait pas d'extension php53-pecl-memcache dans CentOS 5) et Webtatic a des packages qui ne sont pas disponibles dans la base CentOS (par exemple php54w -pecl-zendopcache). S'ils sont manquants, vous n'avez généralement pas d'autre option que d'utiliser pecl directement pour les installer.
4. Toute mise à niveau de PHP peut introduire des bogues et les sites Web doivent être retestés. Ce n'est pas spécifique à Webtatic, mais l'idée générale que les nouvelles fonctionnalités introduisent de nouveaux bugs.
Contrairement au référentiel de Remi dans la réponse acceptée, le référentiel Webtatic EL6 n'utilise jamais les mêmes noms de packages que les référentiels de base CentOS, donc ne remplacera pas l'installation / la mise à niveau des packages vers lesquels vous n'avez pas l'intention de basculer, et en tant que tel, il est activé par défaut.
Avertissement: je suis le propriétaire / mainteneur de Webtatic
la source
vous pouvez trouver php 5.4.9 ici pour l'installation yum:
http://www.webtatic.com/packages/php54/
vous pouvez faire un "rpm -qa | grep php" pour voir tous vos paquets php actuels et un "rpm -e" pour les supprimer. Je ne connais pas vos modules actuels, mais cela vaut la peine d'être testé avant la mise à niveau.
la source