phpinfo () e php -v mostra diferentes versões do PHP

14

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

phpinfo();

O que me dá

PHP version 5.6.10

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

php -i

ou

php -v

Isso me mostra:

PHP version 5.3.2

Qual eu não preciso. Então eu tentei com:

which php

Isso me mostra:

/usr/bin/php

Agora estou confuso com qual versão do PHP estou usando. Os arquivos são enviados para o site de hospedagem e não posso fazer alterações nos arquivos de configuração, como httpd.conf ou php.ini .

    
por Gabf Hann 08.09.2015 / 10:31

4 respostas

15

Resposta mais curta.

Não entre em pânico! Se você está preocupado com qual versão do PHP seu servidor Apache está usando, a saída de phpinfo() é 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 entre si.

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.

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

Resposta mais longa.

Você diz isso:

I wanted to know which php version I am using so I wrote the standard script:

phpinfo();

Which gives me PHP version 5.6.10- the correct PHP version needed for my application. When I tried in terminal:

php -i or php -v   

It shows me PHP version 5.3.2 which I don’t need.

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 5.6.10 e é isso que você quer / precisa, isso é 100% bem.

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 por algum motivo você quisesse usar uma versão diferente do PHP com o Apache, tudo que você precisa fazer é instalar o módulo PHP Apache compilado em algum lugar e adicionar - ou ajustar - essa 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 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:

/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.

    
por 12.09.2015 / 02:34
14

Se você tiver esse problema ao atualizar do PHP5 para o PHP7 no Ubuntu 14.04 com o Apache, veja 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, o reinício do Apache é necessário:

sudo systemctl restart apache2
    
por 20.03.2017 / 14:06
2

Se você está tentando executar o código PHP a partir do seu servidor web, então a versão que você está usando é a reportada por phpinfo() = 5.6.10 .

Seu servidor aparentemente tem múltiplas versões do PHP instaladas, e quando você logar e executar php na linha de comando, você está obtendo a versão mais antiga que está instalada em / usr / bin / php.

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

Se você precisar executar manualmente o mesmo PHP que o seu servidor web, então você precisa 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 web, e quando você descobre qual ele é, você pode usá-lo em vez do padrão.

    
por 03.06.2016 / 00:57
-1

Crie um caminho de variável de ambiente para a última versão do php ex: C: \ wamp64 \ bin \ php \ php7.2.4 Agora mude sua pasta anterior da versão php .php5.6.35 para algum outro número php5.6.354 .. Então verifique php -v seu servidor wamp e o cli php será o mesmo

    
por 31.07.2018 / 21:05

Tags