Resposta mais curta.
Não entre em pânico! Se você está preocupado sobre qual versão do PHP seu servidor Apache está usando, a saída de phpinfo()
—via o servidor web Apache - é sempre o que você deve prestar atenção. O módulo PHP do Apache e o binário da linha de comando do PHP são duas coisas diferentes que não interferem uns com os outros.
Na verdade, você pode compilar e carregar várias versões do PHP que você deseja trabalhar com o Apache, desde que você ajuste o Apache para carregá-lo corretamente. A interface de linha de comando do PHP nunca será usada no caso do Apache analisar páginas PHP.
Resposta mais longa.
Você diz isso:
But if I use
php -v
orphpinfo
in my site get always old version PHP 5.4:PHP 5.4.26 (cli) (built: Apr 8 2014 10:05:18)
A versão do PHP disponível a partir da linha de comando tem 100% nada a ver com a versão do PHP carregada como módulo. Estas são coisas completamente separadas.
Então, se você está preocupado com qual versão do PHP seu aplicativo da Web está usando, se phpinfo()
mostrar a versão PHP 5.5.29 e é isso que você quer / precisa, isso é 100% bom.
A versão de linha de comando do PHP é um item de sistema completamente separado. Então, a única coisa que importa é a saída de phpinfo()
.
Se você ainda não verificou a versão do PHP que está sendo usada pelo Apache usando phpinfo()
, é fácil. Na raiz da web do seu servidor, basta criar um arquivo chamado phpinfo.php
como este; usando nano
neste exemplo:
nano phpinfo.php
Agora basta adicionar isso ao arquivo e salvá-lo:
<?php
phpinfo();
?>
Carregue então esse phpinfo.php
através de um URL do navegador da Web como este:
http://hostname/phpinfo.php
E verifique a saída retornada. Deve haver toneladas de detalhes de configuração apresentados, mas a principal coisa que você quer verificar é o cabeçalho que deve dizer algo como “PHP Versão 5.4.26” ou “PHP Versão 5.5.29.” Isso é o número da versão que você quer prestar atenção.
Se por algum motivo você quisesse usar uma versão diferente do PHP com o Apache do que isso, tudo que você precisa fazer é instalar o módulo PHP Apache compilado ( libphp5.so
) em algum lugar e adicionar - ou ajustar - essa linha configuração do Apache do seu sistema:
LoadModule php5_module /path/to/php/and/the/module/for/apache2/libphp5.so
E apenas ajuste o caminho para o libphp5.so
- que é o que o Apache usa para analisar o PHP - e então reinicie o Apache e você está no negócio.
Por exemplo, em um ponto eu tive que compilar a versão 5.1.6 do PHP a partir do código fonte (com suporte à biblioteca GD) para uso em uma máquina Ubuntu 12.04 rodando o PHP 5.3.5. No arquivo de carregamento do módulo PHP do servidor aqui:
sudo nano /etc/apache2/mods-available/php5.load
Eu tinha linhas como esta:
# LoadModule php5_module /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516-gd.so
Observe como uma linha é comentada por libphp535.so
e a outra por libphp516-gd.so
não está comentada? O que fiz foi renomear o módulo padrão do PHP 5.3.5 libphp5.so
do Apache para libphp535.so
com o número da versão no nome para que eu pudesse tê-lo ali como referência e então nomear o PHP 5.1.6 (com suporte à biblioteca GD) módulo libphp516-gd.so
então eu sei o que é isso também. Dessa forma, eu tenho os dois disponíveis para mim lado a lado no sistema.
E - como eu disse no início - a versão do PHP usada na linha de comando não tem nada a ver com o módulo PHP do Apache. Assim, você pode ter qualquer número de diferentes versões dos módulos PHP do Apache disponíveis no sistema, prontos para serem executados; apenas ajuste uma configuração e reinicie o Apache e você deve estar no negócio para usar qualquer versão do PHP que você especificou que o Apache deve usar.
Encontrando o novo arquivo PHP 5.5 libphp5.so
.
Se você não tem certeza de onde o novo arquivo PHP 5.5 libphp5.so
é, faça o seguinte. Primeiro, instale locate
no seu sistema, se ainda não estiver instalado:
sudo apt-get install locate
Depois de instalado, force locate
a atualizar o banco de dados da seguinte forma:
sudo updatedb
Aguarde que locate
reconstrua o banco de dados do sistema de arquivos; Basicamente é como o Spotlight no Mac OS X, mas para o Linux. Agora, com isso feito, faça uma pesquisa de locate
para libphp5.so
da seguinte forma:
locate libphp5.so
Deve haver algumas linhas na sua configuração que são retornadas:
/usr/lib/apache2/modules/libphp5.so
/path/to/the/php5.5/location/of/libphp5.so
O primeiro caminho é o PHP padrão 5,4 libphp5.so
, mas o outro é o caminho para o módulo PHP 5.5 libphp5.so
do Apache. Depois de conhecer esse caminho, abra o arquivo php5.load
desta forma:
sudo nano /etc/apache2/mods-available/php5.load
Ajuste o caminho para o caminho para o módulo PHP 5.5 libphp5.so
do Apache. Em seguida, reinicie o Apache assim:
sudo service apache2 restart
Verifique a URL phpinfo.php
novamente por meio de um URL do navegador da Web como este:
http://hostname/phpinfo.php