Como alterar qual versão do PHP Apache2 usa?

25

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

Acabei de descobrir que estou usando a versão errada do PHP para um aplicativo de CRM. Depois que eu descobri como criar um phpinfo()script simples para me dizer o que o Apache2 está usando, tentei alterar o php.inital que meu servidor da web usaria o PHP que eu quero. Bem, este é o meu problema. Não tenho certeza de como fazer isso.

Eu compilei a versão do PHP que eu quero /etcaqui:

/etc/php-5.2.8/

Dentro disso, havia um php.ini-recommendedarquivo no qual eu fiz algumas alterações e renomeei para php.inique o PHP o usasse. Mas quando abri meu navegador, limpei meu histórico e fui para o http://localhost<CRM dir>/install.phpendereço, o assistente ainda diz que não estou usando a versão correta do PHP.

Com base neste post, o que devo fazer para alterar a versão do PHP exibida após a execução do meu test.phpscript? Em outras palavras, phpinfo()diz que estou executando o PHP 5.3.2, mas quero alterá-lo para minha versão compilada 5.2.8 localizada em /etc.

nicorellius
fonte

Respostas:

8

Dependendo do seu servidor, você deve observar o Apache, não o PHP.

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

Você verá que seu módulo PHP é modules/libphp5.so.

AddHandler php5-script .phpdiz ao Apache para executar o PHP em qualquer arquivo com a extensão .php.

Se você estiver usando um sistema operacional baseado em RPM, provavelmente será mais fácil desinstalar (supondo que você possa fazer isso) a versão atual do PHP e reinstalar a versão que você está procurando.

rpm -qa | grep php

irá mostrar qual versão do PHP está instalada atualmente.

grufftech
fonte
3
Vale ressaltar que você deve devolver o Apache depois de alterar a configuração para que ela seja captada.
precisa saber é o seguinte
Eu realmente gostaria que fosse assim tão fácil. O único php.iniarquivo que tenho no diretório do servidor é, /etc/apache2/php.inimas não é o que você sugere. Este arquivo não possui os seguintes componentes: LoadModule, AddHandler, AddType, etc. #
nicorellius
interessante. Em que tipo de sistema operacional você está executando? Foi configurado via YUM, APT-Get ou YAST, (ou algum outro gerenciador de pacotes)?
grufftech
Ubuntu 10.04. A nova versão do PHP (5.3.2) pode ser facilmente instalada sem ser enviada apt-get, o que eu fiz. Mas o PHP 5.2.8 e 5.2.13 eu compilei, usando arquivos de php.net/releases . Na verdade, eu desisti de tentar fazer com que a versão mais antiga do PHP fosse executada. Penso que abordagens alternativas são necessárias por uma questão de brevidade. Obrigado pela vossa ajuda, no entanto ...
nicorellius
42

Se você já instala outra versão do php, você só precisa alterar o módulo php * usado pelo apache.

por exemplo, eu tenho php5 e php7.0. quando eu quero que o apache use php7.0, eu só preciso habilitar seu módulo e desabilitar o módulo php5.

sudo a2dismod php5
sudo a2enmod php7.0
hubert
fonte