Diese Frage hat hier bereits eine Antwort:
Ich versuche, meine PHP-Version zu 5.6 von 7 zurückzustellen, und obwohl ich PHP 7 entfernte und dann PHP 5.6 installierte, scheint ich noch Version 7 zu laufen.
Gibt es eine einfache Methode, PHP-Versionen zu durchlaufen, in denen Apache, phpMyAdmin und Co entsprechend konfiguriert sind?
Eine einfache Möglichkeit, die aktuelle Version von PHP on-the-fly und sogar Site für Site zu ändern, wäre großartig.
Aktualisieren
Heute habe ich wieder ein Problem mit PHP 7 laufen obwohl ich deaktiviert habe php7.0
Apache-Modul: phpinfo
zeigte php 7 mit fastCGI ...
... Wenn Sie nach der folgenden Anleitung dieser Situation gegenüberstehen, müssen Sie möglicherweise die Option deaktivieren proxy_fcgi
Apache-Modul:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
1. Installieren Sie PHP 5.6 neu
Was für mich funktionierte, war dieser Leitfaden: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Eigentlich muss nicht entfernt werden php7.0
, Sie können php5.6 zusammen installieren (auch weil Sie ein Abhängigkeitsproblem haben werden mit phpmyadmin
Paket, das php7.0 benötigt)
Angenommen libapache2-mod-php
ist eine geeignete Möglichkeit, PHP in Apache für Sie zu aktivieren, können Sie auf diese Weise vorgehen:
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 bis PHP7.0:
Von PHP7.0 bis PHP5.6:
Ubuntu 16.04 kommt mit php 7.0
, und einige php
Anwendungen können mit noch fehlschlagen php 7.0
Daher kann es in einigen Fällen sinnvoll sein, beides zu haben php 7.0
und php 5.x
, so dass Sie jederzeit auswählen können, welche Version für Ihre Bedürfnisse verwendet werden soll.
Sie können dies tun mit:
xavi@computer# sudo su
root@computer# add-apt-repository ppa:ondrej/php
root@computer# apt-get update
root@computer# apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0 php5.6-curl php5.6-gd php5.6-mcrypt php5.6-xml php5.6-xmlrpc
Beide installieren php5.6 & php7.0
war sauber in meinem Fall: keine Beschwerden über Probleme usw.
Um von zu wechseln php 5.6
zu php 7.0
Sie müssen zwei Dinge tun:
# For php in web apps
sudo a2dismod php5.6 && sudo a2enmod php7.0 && sudo service apache2 restart
# For php-cli in the command line
sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php
oder von php7.0 bis php5.6:
# For php in web apps
sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart
# For php-cli in the command line
sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php
Sie können auch schnell überprüfen, welche von Ihnen verwendet wird, indem Sie php -v ausführen.
Ihre Frage enthält keine wichtigen Details, daher werde ich ausführlicher antworten.
Angenommen, Sie verwenden Pakete, gibt es einige wichtige Details:
Apache2 kann so konfiguriert werden, dass beides verwendet wird apache2
SAPI mit libapache2-mod-php7.0
Paket oder FPM SAPI verwenden php7.0-fpm
mit mod_proxy_fcgi
.
Ubuntu 16.04 hat nur PHP 7.0 in den Repositories, die du verwenden kannst ppa:ondrej/php
Hinzufügen von Unterstützung für PHP 5.6 unter Verwendung eines ähnlichen Benennungsschemas (z. libapache2-mod-php5.6
oder php5.6-fpm
).
Wenn Sie Apache2 SAPI verwenden (libapache2-mod-php*
), müssen Sie PHP 7.0 nach der Installation deaktivieren libapache2-mod-php5.6
durch Laufen a2dismod php7.0
und aktivieren Sie PHP 5.6 durch Ausführen a2enmod php5.6
.
Wenn Sie FPM SAPI verwenden (php*-fpm
) Dann müssen Sie den FPM-Unix-Socket von ändern /run/php/php7.0-fpm.sock
zu /run/php/php5.6-fpm.sock
.
Bitte beachten Sie, dass für Module, die mit PHP gebündelt sind (wie MySQL), die Namenskonvention gilt phpX.Y-<ext>
(z.B. php7.0-mysql
und php5.6-mysql
), aber für externe PECL-Module (zB APCu, mongodb, ...) ist es einfach php-<ext>
(z.B. php-apcu
, php-mongodb
). Ich empfehle zu laufen apt-cache search php <ext>
auf Ihrem System nach dem richtigen Paketnamen suchen, bevor Sie Fragen im Internet stellen.
Ich denke, du solltest deine PHP-Pakete entfernen und php5.6 installieren. Sie können folgendermaßen vorgehen:
sudo aptitude purge dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
Sie können dann die Version Ihres PHP überprüfen, um sicher zu gehen. Es ist wie folgt gemacht:
php -v