Comment changer la version de PHP Apache2 utilisée?

25

Ubuntu 10.04, MySQL 5.1, Apache 2.2 et PHP 5.2 / 5.3:

Je viens de découvrir que j'utilise la mauvaise version de PHP pour une application CRM. Une fois que j'ai compris comment créer un phpinfo()script simple pour me dire ce qu'Apache2 utilise, j'ai essayé de changer le pour php.inique mon serveur web utilise le PHP que je veux. Eh bien, c'est mon problème. Je ne sais pas comment faire ça.

J'ai compilé la version de PHP que je veux /etcici:

/etc/php-5.2.8/

À l'intérieur de cela, il y avait un php.ini-recommendedfichier dans lequel j'ai apporté des modifications et renommé afin php.inique PHP l'utilise. Mais lorsque j'ai ouvert mon navigateur et effacé mon historique et http://localhost<CRM dir>/install.phpque je suis allé à l' adresse, l'assistant dit toujours que je n'utilise pas la bonne version de PHP.

Sur la base de ce post, que dois-je faire pour changer la version de PHP qui s'affiche après avoir exécuté mon test.phpscript? En d'autres termes, phpinfo()dit que j'utilise PHP 5.3.2, mais je veux le changer pour ma version 5.2.8 compilée située dans /etc.

nicorellius
la source

Réponses:

8

Selon votre serveur, vous devriez regarder Apache, pas PHP.

(Pour RHEL / CentOS) regardez /etc/httpd/conf.d/php.ini

#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated web pages.
#
LoadModule php5_module modules/libphp5.so
#
# Causes the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

Vous verrez que votre module PHP l'est modules/libphp5.so.

AddHandler php5-script .phpindique à Apache d'exécuter PHP sur n'importe quel fichier avec l'extension .php.

Si vous utilisez un système d'exploitation basé sur RPM, il est probablement plus facile de désinstaller (en supposant que vous puissiez le faire) la version actuelle de PHP et de réinstaller la version que vous recherchez.

rpm -qa | grep php

vous montrera quelle version de PHP est actuellement installée.

grufftech
la source
3
Il convient de mentionner que vous devez rebondir Apache après avoir modifié la configuration afin qu'elle soit récupérée.
Ben Pilbrow
Je souhaite vraiment que ce soit aussi simple. Le seul php.inifichier que j'ai dans le répertoire du serveur n'est /etc/apache2/php.inipas là où vous le suggérez. Ce fichier ne contient pas les composants dont vous parlez: LoadModule, AddHandler, AddType, etc.
nicorellius
intéressant. Sur quelle saveur d'OS travaillez-vous? A-t-il été configuré via YUM, APT-Get ou YAST (ou un autre gestionnaire de packages)?
grufftech
Ubuntu 10.04. La nouvelle version de PHP (5.3.2) peut facilement être installée sans le faire apt-get, ce que j'ai fait. Mais j'ai compilé PHP 5.2.8 et 5.2.13, en utilisant les fichiers de php.net/releases . En fait, j'ai en quelque sorte renoncé à essayer d'exécuter une ancienne version de PHP. Je pense que d'autres approches s'imposent par souci de concision. Merci pour votre aide, néanmoins ...
nicorellius
42

Si vous installez déjà une autre version de php, il vous suffit de changer le module php * utilisé par apache.

par exemple, j'ai php5 et php7.0. quand je veux qu'apache utilise php7.0, il me suffit d'activer son module et de désactiver le module php5.

sudo a2dismod php5
sudo a2enmod php7.0
hubert
la source