Como mudar o PHP 5.5 em vez do PHP 5.4 em Bitnami

1

Detalhes:

Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:        12.04
Codename:       precise
Bitnami used in AWS

Eu quero instalar o PHP 5.5, então eu faço o próximo passo:

php -v
PHP 5.4.26 (cli) (built: Apr  8 2014 10:05:18)

sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php5

Reading package lists... Done
Building dependency tree
Reading state information... Done

php5 is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Quando eu uso o comando:

sudo apt-cache policy php5

Eu chego em seguida:

php5:
  Installed: 5.5.29+dfsg-1+deb.sury.org~precise+3
  Candidate: 5.5.29+dfsg-1+deb.sury.org~precise+3
  Version table:
 *** 5.5.29+dfsg-1+deb.sury.org~precise+3 0
        500 http://ppa.launchpad.net/ondrej/php5/ubuntu/ precise/main amd64 Packages
        100 /var/lib/dpkg/status
     5.3.10-1ubuntu3.19 0
        500 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     5.3.10-1ubuntu3 0
        500 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

Eu verifico arquivos por:

locate bin/php

/opt/bitnami/php/bin/php
/opt/bitnami/php/bin/php-cgi
/opt/bitnami/php/bin/php-cgi.bin
/opt/bitnami/php/bin/php-config
/opt/bitnami/php/bin/php.bin
/opt/bitnami/php/bin/phpize
/opt/bitnami/php/sbin/php-fpm
/usr/bin/php
/usr/bin/php-cgi
/usr/bin/php-config
/usr/bin/php-config5
/usr/bin/php5
/usr/bin/php5-cgi
/usr/bin/phpize
/usr/bin/phpize5
/usr/lib/cgi-bin/php
/usr/lib/cgi-bin/php5
/usr/sbin/php5-fpm
/usr/sbin/php5dismod
/usr/sbin/php5enmod
/usr/sbin/php5query

which php

/opt/bitnami/php/bin/php

Também encontro o arquivo /home/bitnami/.bashrc no próximo PATH:

PATH="/opt/bitnami/varnish/bin:/opt/bitnami/sqlite/bin:/opt/bitnami/php/bin:/op$
export PATH

Então, se eu usar o comando /usr/bin/php -v , recebo minha última versão PHP 5.5:

PHP 5.5.29-1+deb.sury.org~precise+3 (cli) (built: Sep  8 2015 12:58:11)

Mas se eu usar php -v ou phpinfo no meu site, obtenha sempre a versão antiga do PHP 5.4:

PHP 5.4.26 (cli) (built: Apr  8 2014 10:05:18)

Como posso mudar a versão do PHP para 5.5? O que eu preciso fazer? O que eu preciso escrever nas configurações para ativar o PHP 5? ou o que precisa mudar nas configurações do Apache?

    
por Brotheryura 24.09.2015 / 01:46

1 resposta

2

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 or phpinfo 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
    
por 24.09.2015 / 03:00