Ich versuche, meine PHP-Version von 7 auf 5.6 zurückzusetzen, und obwohl ich PHP 7 entfernt und dann PHP 5.6 installiert habe, scheint immer noch Version 7 zu laufen.
Gibt es eine einfache Methode für den Wechsel zwischen PHP-Versionen, bei der Apache, phpMyAdmin und Co. entsprechend konfiguriert sind?
Eine einfache Möglichkeit, die aktuelle PHP-Version während des laufenden Betriebs und sogar Site für Site zu ändern, wäre großartig.
Update
Heute habe ich wieder ein Problem mit PHP 7, obwohl ich das Apache-Modul php7.0
deaktiviert habe: phpinfo
zeigte php 7 mit fastCGI an ...
... Wenn Sie also, nachdem Sie die folgenden Anweisungen befolgt haben, mit dieser Situation konfrontiert werden, müssen Sie möglicherweise das Apache-Modul proxy_fcgi
deaktivieren:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
1. Installieren Sie PHP 5.6 neu
Bei mir hat diese Anleitung funktioniert: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Eigentlich ist es nicht nötig, php7.0
zu entfernen, Sie können php5.6 zusammen installieren (auch weil Sie ein Abhängigkeitsproblem mit dem phpmyadmin
Paket haben werden, das php7.0 benötigt)
Wenn Sie davon ausgehen, dass libapache2-mod-php
für Sie ein geeigneter Weg ist, um PHP im Apache zu aktivieren, können Sie auf diese Weise fortfahren:
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. Wechseln Sie die PHP-Version:
Von php5.6 auf 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
Von php7.0 auf 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 Ihrer Frage fehlen wichtige Details, daher werde ich die Frage etwas allgemeiner beantworten.
In der Annahme, dass Sie Pakete verwenden, gibt es einige wichtige Details:
Apache2 kann so konfiguriert werden, dass er entweder apache2
SAPI mit dem Paket libapache2-mod-php7.0
oder FPM SAPI mit php7.0-fpm
mit mod_proxy_fcgi
verwendet.
Ubuntu 16.04 hat nur PHP 7.0 in den Repositories, Sie können ppa:ondrej/php
verwenden, um Unterstützung für PHP 5.6 mit einem ähnlichen Namensschema hinzuzufügen (z.B. libapache2-mod-php5.6
oder php5.6-fpm
).
Wenn Sie Apache2 SAPI (libapache2-mod-php*
) verwenden, müssen Sie PHP 7.0 nach der Installation von libapache2-mod-php5.6
durch a2dismod php7.0
deaktivieren und PHP 5.6 durch a2enmod php5.6
aktivieren.
Wenn Sie FPM SAPI (php*-fpm
) verwenden, müssen Sie den FPM Unix-Socket von /run/php/php7.0-fpm.sock
auf /run/php/php5.6-fpm.sock
ändern.
Bitte denken Sie daran, dass für Module, die mit PHP gebündelt sind (wie MySQL), die Namenskonvention phpX.Y-<ext>
lautet (z.B. php7.0-mysql
und php5.6-mysql
), aber für externe PECL-Module (z.B. APCu, mongodb, ...) ist es einfach php-<ext>
(z.B. php-apcu
, php-mongodb
). Ich empfehle, apt-cache search php <ext>
auf Ihrem System laufen zu lassen, um nach dem richtigen Paketnamen zu suchen, bevor Sie eine Frage im Internet stellen.
Ich denke, Sie sollten Ihre php-Pakete entfernen und php5.6 installieren. Sie können wie folgt vorgehen:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
Sie können dann die Version von php überprüfen, um sicher zu gehen. Dies geschieht wie unten gezeigt:
php -v