Sto cercando di riportare la mia versione di PHP alla 5.6 dalla 7 e anche se ho rimosso PHP 7 e poi ho installato PHP 5.6 sembra che stia ancora eseguendo la versione 7.
C'è un metodo semplice per spostarsi attraverso le versioni di PHP dove apache, phpMyAdmin e co sono configurati in modo appropriato?
Un modo semplice per cambiare la versione corrente di PHP al volo e anche sito per sito sarebbe fantastico.
Aggiornamento
Oggi ho avuto di nuovo un problema con PHP 7 in esecuzione nonostante abbia disabilitato il modulo apache php7.0
: phpinfo
mostrava php 7 usando fastCGI ...
... Quindi se dopo aver seguito le istruzioni qui sotto ti trovi di fronte a questa situazione, potresti aver bisogno di disabilitare il modulo apache proxy_fcgi
:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
1. Re-installare PHP 5.6
Quello che ha funzionato per me è stata questa guida: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
In realtà non è necessario rimuovere php7.0
, puoi installare php5.6 insieme (anche perché avrai problemi di dipendenza con il pacchetto phpmyadmin
che richiede php7.0)
Assumendo che libapache2-mod-php
sia un modo adatto a te per abilitare PHP in Apache, puoi procedere in questo modo:
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. Cambia versione di PHP:
Da 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
Da 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
La tua domanda manca di dettagli importanti, quindi ti risponderò in modo più ampio.
Supponendo che tu stia usando dei pacchetti, ci sono alcuni dettagli importanti:
Apache2 può essere configurato per usare sia apache2
SAPI usando il pacchetto libapache2-mod-php7.0
o FPM SAPI usando php7.0-fpm
con mod_proxy_fcgi
.
Ubuntu 16.04 ha solo PHP 7.0 nei repository, puoi usare ppa:ondrej/php
per aggiungere il supporto per PHP 5.6 usando uno schema di denominazione simile (per esempio libapache2-mod-php5.6
o php5.6-fpm
).
Se stai usando Apache2 SAPI (libapache2-mod-php*
), devi disabilitare PHP 7.0 dopo aver installato libapache2-mod-php5.6
eseguendo a2dismod php7.0
e abilitare PHP 5.6 eseguendo a2enmod php5.6
.
Se stai usando FPM SAPI (php*-fpm
) allora devi cambiare il socket unix di FPM da /run/php/php7.0-fpm.sock
a /run/php/php5.6-fpm.sock
.
Ricorda che per i moduli in bundle con PHP (come MySQL) la convenzione di denominazione è phpX.Y-<ext>
(ad esempio php7.0-mysql
e php5.6-mysql
), ma per i moduli PECL esterni (ad esempio APCu, mongodb, ...) è semplicemente php-<ext>
(ad esempio php-apcu
, php-mongodb
). Raccomando di eseguire apt-cache search php <ext>
sul tuo sistema per cercare il nome corretto del pacchetto prima di fare domande su Internet.
Penso che dovresti rimuovere i tuoi pacchetti php e installare php5.6. Puoi procedere come segue:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
Puoi poi controllare la versione del tuo php per essere sicuro. Si fa come si vede qui sotto:
php -v