phpinfo () e php -v mostra uma versão diferente do PHP


18

Eu queria saber qual phpversão estou usando, então escrevi o script padrão:

phpinfo();

O que me dá

PHP version 5.6.10

A versão correta do PHP necessária para o meu aplicativo. Quando eu tentei no terminal:

php -i

ou

php -v

Isso me mostra:

PHP version 5.3.2

Do que eu não preciso. Então eu tentei com:

which php

Isso me mostra:

/usr/bin/php

Agora estou confuso qual versão do PHP estou usando. Os arquivos são carregados no site de hospedagem e não posso fazer alterações nos arquivos de configuração como httpd.confou php.ini.

Respostas:


22

Resposta mais curta.

Não entre em pânico! Se você está preocupado com a versão do PHP que seu servidor Apache está usando, a saída de phpinfo()é sempre o que você deve prestar atenção. O módulo PHP Apache e o binário da linha de comando PHP são duas coisas diferentes que não interferem uma na outra.

De fato, você pode compilar e carregar várias versões do PHP que deseja trabalhar com o Apache, desde que você ajuste o Apache para carregá-lo corretamente. A interface da linha de comandos do PHP nunca entrará em ação no caso do Apache analisando páginas do PHP.

A versão de linha de comando do PHP está lá simplesmente para tarefas específicas da linha de comando e o módulo PHP para Apache nunca tocará, usará ou precisará disso.

Resposta mais longa.

Você diz o seguinte:

Eu queria saber qual phpversão estou usando, então escrevi o script padrão:

phpinfo();

O que me dá a versão PHP 5.6.10 - a versão correta do PHP necessária para o meu aplicativo. Quando eu tentei no terminal:

php -i or php -v   

Ele me mostra a versão 5.3.2 do PHP, da qual não preciso.

A versão do PHP disponível na linha de comando não tem 100% a ver com a versão do PHP carregada como um módulo. Essas são coisas completamente separadas.

Portanto, se você está preocupado com a versão do PHP que seu aplicativo da Web está usando, se phpinfo()mostra a versão 5.6.10 e é isso que você deseja / precisa, 100% adequado.

A versão da linha de comando do PHP é um item do sistema completamente separado. Então a única coisa que importa é a saída de phpinfo().

Se, por algum motivo, você quiser usar uma versão diferente do PHP com Apache, tudo o que você precisa fazer é instalar o módulo PHP Apache compilado em algum lugar e adicionar - ou ajustar - esta linha na 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 libphp5.so- que é o que o Apache usa para analisar o PHP - depois reinicie o Apache e você estará no negócio.

Por exemplo, em um ponto, tive que compilar o PHP versão 5.1.6 a partir da fonte (com suporte à biblioteca GD) para uso em uma máquina Ubuntu 12.04 executando o PHP 5.3.5. No módulo PHP do servidor, carregando o arquivo aqui:

/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 libphp535.soe a outra libphp516-gd.soé descomentada? O que fiz foi renomear o libphp5.somódulo padrão do PHP 5.3.5 Apache para libphp535.socom o número da versão no nome para que eu pudesse tê-lo lá para referência e, em seguida, nomeei o módulo PHP 5.1.6 (com suporte à biblioteca GD) libphp516-gd.sopara que eu saiba o que isso é também. Dessa forma, eu tenho os dois disponíveis lado a lado no sistema.

E - como eu disse no início - a versão PHP usada na linha de comando não tem absolutamente nada a ver com o módulo PHP Apache. Portanto, você pode ter diversas versões diferentes dos módulos PHP do Apache no sistema prontas para uso; basta ajustar uma configuração e reiniciar o Apache, e você deve estar no negócio para usar a versão PHP especificada pelo Apache.


23

Se você tiver esse problema ao atualizar do PHP5 para o PHP7 no Ubuntu 14.04 com Apache, aqui está o que me ajudou (o crédito aqui ):

Desative o módulo PHP5 no Apache:

sudo a2dismod php5

Agora ative o PHP7:

sudo a2enmod php7.1

Para refletir as alterações, é necessário reiniciar o Apache:

sudo systemctl restart apache2

este pode falhar o projeto se php.ini são diferentes
KawaiKx

2

Se você está tentando executar o código PHP no seu servidor da Web, a versão que você está usando é a relatada por phpinfo()= 5.6.10 .

Aparentemente, seu servidor possui várias versões do PHP instaladas e, quando você faz login e executa phpna linha de comando, está obtendo a versão mais antiga instalada em / usr / bin / php.

Um servidor pode ter muitas versões do PHP, e a sua parece ter.

Se você precisar executar manualmente o mesmo PHP que seu servidor da Web, precisará encontrar a outra versão. Tente executar estes comandos:

/usr/local/bin/php -v
/opt/local/bin/php -v
/opt/bin/php -v

Um deles pode revelar um PHP com a mesma versão do seu servidor da Web e, quando você descobrir qual é, poderá usá-lo em vez do padrão.


0

Se posso adicionar meus 2 centavos ...

Eu estava atualizando minha versão do Nextcloud. Quando executo o procedimento de atualização, tenho que "sudo php" como usuário do apache, mas ele se recusou a executar porque a versão da CLI do php executada por padrão pelo usuário do apache era muito antiga. No entanto, phpinfo (); no meu servidor exibiu a versão mais recente do php instalada.

Percebi que é porque a variável PATH no arquivo /home/apache/.bashrc foi definida como a primeira versão do php que eu havia instalado no meu servidor e nunca foi atualizada novamente (eu sempre compilo / instalo o php da fonte no Github )

A solução:

Quando você atualiza o php no servidor da web e deseja garantir que a versão do php da CLI usada seja a mais atual quando você faz o sudo como usuário apache, não esqueça de alterá-lo no arquivo .bashrc desse usuário, desta forma:

PATH=$PATH:/var/www/html: /usr/local/php7.1.32/bin export PATH


-1

Passos para corrigir isso. Primeiro de tudo qual versão do PHP está mostrando a você.

php -v

Agora você precisará de um caminho PHP. Se não souber, entre em contato com o suporte de hospedagem para o caminho PHP. No meu caso foi

/opt/php71/bin/php

Agora, é hora de executar este comando no terminal.

alias php='/opt/php71/bin/php'

Isso mudará sua versão do PHP para PHP 7.1. Se você quiser alterá-la para 7.2, pode tentar

alias php='/opt/php72/bin/php'

Você terminou. Verifique com

php -v

-3

Crie um caminho de variável de ambiente para a versão mais recente do php ex: C: \ wamp64 \ bin \ php \ php7.2.4 Agora altere a pasta da versão php anterior .php5.6.35 para outro número php5.6.354 .. Em seguida, verifique php -v your wamp servidor e cli php será o mesmo

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.