Eu estou tentando reverter minha versão do PHP para 5.6 da 7 e embora eu tenha removido o PHP 7 e depois instalado o PHP 5.6 eu ainda pareço estar executando a versão 7.
Existe um método simples para passar pelas versões PHP onde apache, phpMyAdmin e co são configurados apropriadamente?
Uma maneira simples de mudar a versão atual do PHP na mosca e até mesmo site por site seria ótimo.
**Actualização***
Hoje eu tenho novamente um problema com o PHP 7 rodando apesar de ter desabilitado o php7.0
apache module: O phpinfo
estava mostrando o php 7 usando o fastCGI ...
... Portanto, se depois de seguir as instruções abaixo você enfrentar esta situação, você pode precisar desativar o módulo apache proxy_fcgi
:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
**1. Re-instale o PHP 5.6***.
O que funcionou para mim foi este guia: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Na verdade não é necessário remover o php7.0
, você pode instalar o php5.6 junto (também porque você terá problemas de dependência com o pacote phpmyadmin
que requereu o php7.0)
Assumindo que libapache2-mod-php
é uma forma adequada de habilitar o PHP no Apache para você, você pode proceder desta forma:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0
2. Trocar a versão em PHP:
De php5.6 a php7.0:
Apache:
sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
CLI:
sudo update-alternatives --set php /usr/bin/php7.0
De php7.0 a php5.6:
Apache:
sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
CLI:
sudo update-alternatives --set php /usr/bin/php5.6
A sua pergunta carece de detalhes importantes, por isso vou responder de forma mais ampla.
Assumindo que você está usando pacotes, há alguns detalhes importantes:
O Apache2 pode ser configurado para utilizar o apache2
SAPI utilizando o pacote libapache2-mod-php7.0
ou o FPM SAPI utilizando o php7.0-fpm
com o mod_proxy_fcgi
.
Ubuntu 16.04 tem apenas PHP 7.0 nos repositórios, você pode utilizar ppa:ondrej/php
para adicionar suporte ao PHP 5.6 utilizando esquema de nomenclatura similar (por exemplo libapache2-mod-php5.6
ou php5.6-fpm
).
Se você está utilizando o Apache2 SAPI (libapache2-mod-php*
), você precisa desativar o PHP 7.0 após instalar libapache2-mod-php5.6
rodando a2dismod php7.0
e habilitar o PHP 5.6 rodando a2enmod php5.6
.
Se você estiver utilizando FPM SAPI (php*-fpm
) então você precisa mudar o soquete FPM unix de /run/php/php7.0-fpm.sock
para /run/php/php5.6-fpm.sock
.
Lembre-se que para módulos empacotados com PHP (como MySQL) a convenção de nomenclatura é phpX.Y-<ext>
(f.e. php7.0-mysql
e php5.6-mysql
), mas para módulos PECL externos (f.e. APCu, mongodb, ...) it's apenas php-<ext>
(f.e. php-apcu
, php-mongodb
). Eu recomendo rodar apt-cache search php <ext>
no seu sistema para procurar pelo nome correto do pacote antes de fazer uma pergunta na Internet.
Eu acho que você deve remover seus pacotes php e instalar o php5.6. Você pode proceder da seguinte forma:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
Você pode então verificar a versão do seu php para ter certeza. É feito como se vê abaixo:
php -v