Frage Wie kann ich auf Ubuntu 16.04 von PHP 7 auf PHP 5.6 herunterstufen? [Duplikat]


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.


157
2018-04-24 09:21


Ursprung


Ich habe anscheinend 5.6 installiert, aber mein ganzes PHP wird jetzt als Text gerendert. - dibs
was die Ausgabe von dpkg -l | grep php| awk '{print $2}' |tr "\n" " " ? - storm
DH-php libapache2-mod-php5 PHP-common php-json php-pear PHP-xml php5-cli php5-common php5-json php5-Readline- php5.6 php5.6-bz2 php5.6-cli php5.6-common php5.6-curl php5.6-dev php5.6-fpm php5.6-gd php5.6-json php5.6-mcrypt php5.6-mysql php5.6-opcache php5.6-readline- php7.0-common php7.0-json php7.0-xml pkg-php-tools - dibs
Ich sehe einige php7-Pakete dort mit ihnen entfernen aptitude purge php7.0-common php7.0-json php7.0-xml  Ich möchte auch wissen, was Sie meinen all my php is rendering as text now - storm
es bedeutet, dass du vermisst libapache2-mod-php5.6 Paket ... sehe meine Antwort unten, Sie müssen nicht entfernen php7.0 - Postadelmaga


Antworten:


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:

    • 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 bis 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
      

296
2018-04-25 02:58



Du hast recht, danke, ich habe die Befehle behoben :) - Postadelmaga
@Postadelmaga Es funktioniert, um die PHP-Version für die Web-Apps zu ändern. Danke vielmals! Aber die CLI läuft immer noch PHP7. Weißt du, wie man das auch auf PHP5.6 umstellt? - John Linhart
Der beste Weg, es zu tun ist stock PHP-Pakete zu entfernen, Ondrej ppa hinzufügen und dann php7 installieren und php5.6, erinnern Sie haben phpenmod -v 5.6 php5.6 Modul zu ermöglichen und phpenmod -v 7.0 ein PHP 7.0-Modul zu ermöglichen, mehr Infos hier disqus.com/home/discussion/serversforhackers/... - razor7
Der Beitrag hat meinen Tag gerettet. - Shoaib Nawaz
@Daenu, dass, weil php -v Sie die PHP cli Version zeigen ist ... der Befehl für Apache vorgeschlagen ist ..., wenn Sie ein tun phpinfo() Auf einer Webseite sehen Sie den Unterschied. - Postadelmaga


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.


48
2018-05-02 09:29



Benutzen sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart um sicherzustellen, dass die folgenden Befehle nur ausgeführt werden, wenn der vorhergehende erfolgreich ist. Schlug eine Bearbeitung dieser Antwort vor. - Videonauth
Dies ist die beste Antwort für diejenigen, die beide installieren möchten php5.6 und php7.0 auf ubuntu 16.04 - Amine Jallouli
Lief wie am Schnürchen. Ich wünschte, ich könnte es mehrmals verbessern. - shiva


Ihre Frage enthält keine wichtigen Details, daher werde ich ausführlicher antworten.

Angenommen, Sie verwenden Pakete, gibt es einige wichtige Details:

  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.


11
2018-04-24 10:04



Können Sie ein wenig darüber nachdenken, wie Sie die FPM-Unix-Buchse ändern würden? - myol


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

5
2018-04-24 09:38



Ich hoffe, dass die Tatsache, dass du deine aktuellen PHP-Pakete entfernst und php neu installierst, eine große Hilfe für dich sein wird. - Yufenyuy Veyeh Dider
Sie müssen nicht grep-awk Magie tun, da alle abgepackten abhängen php5-common, so einfach: apt-get purge php5-common löscht alle php5-Pakete von Ihrem System. - oerdnj