Vraag Hoe kan ik downgraden van PHP 7 naar PHP 5.6 op Ubuntu 16.04? [duplicaat]


Deze vraag heeft hier al een antwoord:

Ik probeer mijn PHP-versie terug te zetten naar 5.6 van 7 en hoewel ik PHP 7 heb verwijderd en vervolgens PHP 5.6 heb geïnstalleerd, lijkt het er nog steeds op dat ik versie 7 gebruik.

Is er een eenvoudige methode om door PHP-versies te gaan waar apache, phpMyAdmin en co op de juiste manier zijn geconfigureerd?

Een eenvoudige manier om de huidige versie van PHP on the fly en zelfs site per site te veranderen zou geweldig zijn.


157
2018-04-24 09:21


oorsprong


Ik schijn 5.6 geïnstalleerd te hebben maar al mijn php wordt nu weergegeven als tekst. - dibs
wat de output van 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
Ik zie sommige php7-pakketten daar waar ze mee worden verwijderd aptitude purge php7.0-common php7.0-json php7.0-xml  ik wil ook weten wat je bedoelt all my php is rendering as text now - storm
het betekent dat je mist libapache2-mod-php5.6 pakket ... zie mijn antwoord hieronder, je hoeft het niet te verwijderen php7.0 - Postadelmaga


antwoorden:


Bijwerken
Vandaag kreeg ik weer problemen met PHP 7 draaien ondanks dat ik uitgeschakeld was php7.0 apache module: phpinfo liet php 7 zien met fastCGI ...
... Dus als u na het volgen van de onderstaande instructies deze situatie onder ogen ziet, moet u mogelijk de proxy_fcgi apache module:

sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart

1. Installeer PHP 5.6 opnieuw 

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 te verwijderen php7.0, je kunt php5.6 samen installeren (ook omdat je een afhankelijkheidsprobleem hebt met phpmyadmin pakket dat php7.0 vereiste)

Ervan uitgaand libapache2-mod-php is een geschikte manier om PHP in Apache voor u in te schakelen, u kunt op deze manier doorgaan:

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. Wissel van PHP-versie:

  • Van php5.6 tot 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 tot 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



je hebt gelijk, bedankt, ik heb de commando's opgelost :) - Postadelmaga
@Postadelmaga Het werkt om de PHP-versie voor de web-apps te veranderen. Hartelijk bedankt! Maar de CLI draait nog steeds PHP7. Weet jij ook hoe je dat moet veranderen naar PHP5.6? - John Linhart
De beste manier om dit te doen is door php-pakketten te verwijderen, Ondrej ppa toe te voegen en vervolgens php7 en php5.6 te installeren, onthoud dat je phpenmod -v 5.6 hebt om een ​​php5.6-module en phpenmod -v 7.0 in te schakelen om een ​​php 7.0-module in te schakelen, meer info hier disqus.com/home/discussion/serversforhackers/... - razor7
De post heeft mijn dag bewaard. - Shoaib Nawaz
@Daenu dat omdat php -v je de php cli-versie laat zien ... het voorgestelde commando is voor Apache ... als je een phpinfo() op een webpagina ziet u het verschil. - Postadelmaga


Ubuntu 16.04 wordt geleverd met php 7.0, en een beetje php toepassingen kunnen nog steeds falen php 7.0 . Daarom is het in sommige gevallen verstandig om beide te hebben php 7.0 en php 5.x, zodat u op elk gewenst moment kunt kiezen welke versie u wilt gebruiken voor uw behoeften.

U kunt dit doen met:

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 installeren php5.6 & php7.0 was schoon in mijn geval: geen klachten over problemen, etc.

Overschakelen van php 5.6 naar php 7.0 je moet twee dingen doen:

# 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

of van php7.0 tot 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

U kunt ook snel controleren welke van u gebruikt door php -v uit te voeren.


48
2018-05-02 09:29



Gebruik sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart om ervoor te zorgen dat de volgende opdrachten alleen worden uitgevoerd als de eerstvolgende slaagt. Voorgestelde een bewerking van dit antwoord. - Videonauth
Dit is het beste antwoord voor degenen die beide willen installeren php5.6 en php7.0 op ubuntu 16.04 - Amine Jallouli
Werkte als een charme. Ik wou dat ik het meerdere keren kon overstemmen. - shiva


Uw vraag mist belangrijke details, dus ik zal meer in het algemeen antwoorden.

Ervan uitgaande dat u pakketten gebruikt, zijn er enkele belangrijke details:

  1. Apache2 kan worden geconfigureerd om een ​​van beide te gebruiken apache2 SAPI gebruiken libapache2-mod-php7.0 pakket of FPM SAPI gebruiken php7.0-fpm met mod_proxy_fcgi.

  2. Ubuntu 16.04 heeft alleen PHP 7.0 in de repositories, die je kunt gebruiken ppa:ondrej/php om ondersteuning voor PHP 5.6 toe te voegen met behulp van een vergelijkbaar naamgevingsschema (bijv. libapache2-mod-php5.6 of php5.6-fpm).

  3. Als u Apache2 SAPI gebruikt (libapache2-mod-php*), moet u PHP 7.0 uitschakelen nadat u het hebt geïnstalleerd libapache2-mod-php5.6 door rennen a2dismod php7.0 en activeer PHP 5.6 door te draaien a2enmod php5.6.

  4. Als u FPM SAPI gebruikt (php*-fpm) dan moet je FPM unix socket van veranderen /run/php/php7.0-fpm.sock naar /run/php/php5.6-fpm.sock.

  5. Onthoud dat voor modules gebundeld met PHP (zoals MySQL) de naamgevingsconventie is phpX.Y-<ext> (F.E. php7.0-mysql en php5.6-mysql), maar voor externe PECL-modules (bijv. APCu, mongodb, ...) is het gewoon php-<ext> (F.E. php-apcu, php-mongodb). Ik raad aan om te rennen apt-cache search php <ext> op uw systeem om naar de juiste pakketnaam te zoeken voordat u een vraag op internet stelt.


11
2018-04-24 10:04



Kun je iets vertellen over hoe je de FPM-unix-socket zou kunnen veranderen? - myol


Ik denk dat je je php-pakketten moet verwijderen en php5.6 moet installeren. U kunt als volgt verder gaan:

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

U kunt dan de versie van uw php controleren om zeker te zijn. Het is gedaan zoals hieronder te zien:

php -v

5
2018-04-24 09:38



Ik hoop dat het feit dat je je huidige php-pakketten verwijdert en php vers installeert, van grote hulp voor je zal zijn. - Yufenyuy Veyeh Dider
Je hoeft geen grep-awk-magie te doen zoals alle pakketten afhankelijk zijn php5-common, zo simpel: apt-get purge php5-common zal alle php5-pakketten van je systeem verwijderen. - oerdnj