¿Cómo cambiar qué versión de PHP utiliza Apache2?

25

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

Acabo de descubrir que estoy usando la versión incorrecta de PHP para una aplicación CRM. Una vez que descubrí cómo hacer un phpinfo()script simple para decirme qué está usando Apache2, intenté cambiarlo de php.inital manera que mi servidor web usara el PHP que quiero. Bueno, este es mi problema. No estoy seguro de cómo hacer eso.

Compilé la versión de PHP que quiero /etcaquí:

/etc/php-5.2.8/

Dentro de esto, había un php.ini-recommendedarchivo en el que hice algunos cambios y cambié el nombre para php.inique PHP lo usara. Pero cuando abrí mi navegador y borré mi historial y fui a la http://localhost<CRM dir>/install.phpdirección, el asistente todavía dice que no estoy usando la versión correcta de PHP.

Según esta publicación, ¿qué debo hacer para cambiar la versión de PHP que aparece después de ejecutar mi test.phpscript? En otras palabras, phpinfo()dice que estoy ejecutando PHP 5.3.2, pero quiero cambiarlo a mi versión compilada 5.2.8 ubicada en /etc.

nicorellius
fuente

Respuestas:

8

Dependiendo de su servidor, debería estar mirando Apache, no PHP.

(Para RHEL / CentOS) mira /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

Verás que tu módulo PHP es modules/libphp5.so.

AddHandler php5-script .phple dice a Apache que ejecute PHP en cualquier archivo con la extensión .php.

Si está utilizando un sistema operativo basado en RPM, probablemente sea más fácil desinstalar (suponiendo que pueda hacerlo) la versión actual de PHP y reinstalar la versión que está buscando.

rpm -qa | grep php

le mostrará qué versión de PHP está instalada actualmente.

grufftech
fuente
3
Vale la pena mencionar que debe devolver Apache después de cambiar la configuración para que se recoja.
Ben Pilbrow
Realmente desearía que fuera así de fácil. El único php.iniarchivo que tengo en el directorio del servidor es, /etc/apache2/php.inipero no donde sugieres. Este archivo no tiene estos componentes de los que habla: LoadModule, AddHandler, AddType, etc.
nicorellius
interesante. ¿Qué sabor de sistema operativo estás ejecutando? ¿Se configuró a través de YUM, APT-Get o YAST (o algún otro administrador de paquetes)?
grufftech
Ubuntu 10.04. La nueva versión de PHP (5.3.2) se puede instalar fácilmente sin usar apt-get, lo que he hecho. Pero compilé PHP 5.2.8 y 5.2.13, usando archivos de php.net/releases . De hecho, dejé de intentar ejecutar una versión anterior de PHP. Creo que los enfoques alternativos son en aras de la brevedad. Gracias por su ayuda, sin embargo ...
nicorellius
42

Si ya instala otra versión de php, solo necesita cambiar el módulo php * utilizado por apache.

por ejemplo, tengo php5 y php7.0. cuando quiero que apache use php7.0, solo necesito habilitar su módulo y deshabilitar el módulo php5.

sudo a2dismod php5
sudo a2enmod php7.0
Hubert
fuente