Ik probeer mijn PHP-versie van 7 terug te zetten naar 5.6 en hoewel ik PHP 7 heb verwijderd en vervolgens PHP 5.6 heb geïnstalleerd, lijkt het erop dat ik nog steeds versie 7 gebruik.
Is er een eenvoudige methode om door PHP versies heen te gaan waarbij apache, phpMyAdmin en co op de juiste manier zijn geconfigureerd?
Een eenvoudige manier om de huidige versie van PHP te wijzigen op de vlieg en zelfs site per site zou geweldig zijn.
Update
Vandaag heb ik weer een probleem met PHP 7 ondanks dat ik php7.0
apache module heb uitgeschakeld: phpinfo
gaf aan dat php 7 fastCGI gebruikte ...
... Dus als na het volgen van de onderstaande instructies u geconfronteerd met deze situatie, moet u wellicht de proxy_fcgi
apache module uit te schakelen:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
1. Herinstalleer PHP 5.6
Wat voor mij werkte was deze gids: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Eigenlijk is het niet nodig om php7.0
te verwijderen, u kunt php5.6 samen installeren (ook omdat u een afhankelijkheidsprobleem zult hebben met phpmyadmin
pakket dat php7.0 vereist)
Ervan uitgaande dat libapache2-mod-php
een geschikte manier is om PHP in Apache voor u te activeren, kunt u op deze manier verder gaan:
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. Verander van PHP versie:
Van php5.6 naar 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
Van php7.0 naar 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
In uw vraag ontbreken belangrijke details, dus ik zal een ruimer antwoord geven.
Ervan uitgaande dat u packages gebruikt, zijn er enkele belangrijke details:
Apache2 kan geconfigureerd worden om ofwel apache2
SAPI te gebruiken met libapache2-mod-php7.0
package of FPM SAPI met php7.0-fpm
met mod_proxy_fcgi
.
Ubuntu 16.04 heeft alleen PHP 7.0 in de repositories, u kunt ppa:ondrej/php
gebruiken om ondersteuning voor PHP 5.6 toe te voegen met behulp van een vergelijkbaar naamgevingsschema (bijv. libapache2-mod-php5.6
of php5.6-fpm
).
Als u Apache2 SAPI (libapache2-mod-php*
) gebruikt, moet u PHP 7.0 uitschakelen nadat u libapache2-mod-php5.6
heeft geïnstalleerd door a2dismod php7.0
uit te voeren en PHP 5.6 inschakelen door a2enmod php5.6
uit te voeren.
Als u FPM SAPI (php*-fpm
) gebruikt, dan moet u de FPM unix socket veranderen van /run/php/php7.0-fpm.sock
in /run/php/php5.6-fpm.sock
.
Onthoud dat voor modules gebundeld met PHP (zoals MySQL) de naamgevingsconventie phpX.Y-<ext>
is (bijv. php7.0-mysql
en php5.6-mysql
), maar voor externe PECL modules (b.v. APCu, mongodb, ...) is het gewoon php-<ext>
(b.v. php-apcu
, php-mongodb
). Ik raad aan apt-cache search php <ext>
op uw systeem uit te voeren om naar de juiste pakketnaam te zoeken voordat u een vraag op het Internet stelt.
Ik denk dat u uw php-pakketten moet verwijderen en php5.6 moet installeren. U kunt als volgt te werk gaan:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
U kunt dan voor de zekerheid de versie van uw php controleren. Het wordt gedaan zoals hieronder te zien is:
php -v