Hur kan jag nedgradera från PHP 7 till PHP 5.6 på Ubuntu 16.04?
Jag försöker återställa min PHP-version till 5.6 från 7 och även om jag tog bort PHP 7 och sedan installerade PHP 5.6 verkar jag fortfarande köra version 7.
Finns det en enkel metod för att flytta mellan PHP-versioner där apache, phpMyAdmin och co är konfigurerade på rätt sätt?
Ett enkelt sätt att ändra den aktuella PHP-versionen i farten och till och med från plats till plats skulle vara bra.
168
3
uppdatering Idag fick jag återigen problem med PHP 7 trots att jag har inaktiverat apachemodulen
php7.0
:phpinfo
visade att php 7 använde fastCGI ...... Så om du möter denna situation efter att du följt nedanstående instruktioner kan du behöva inaktivera apachemodulen
proxy_fcgi
:1. Återinstallera PHP 5.6
Det som fungerade för mig var den här guiden: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Det är faktiskt inte nödvändigt att ta bort
php7.0
, du kan installera php5.6 tillsammans (även för att du kommer att få beroendeproblem medphpmyadmin
-paketet som kräver php7.0).Om du antar att
libapache2-mod-php
är ett lämpligt sätt att aktivera PHP i Apache för dig, kan du fortsätta på detta sätt:2. Byt PHP-version:
Från php5.6 till php7.0:
Apache:
CLI:
Från php7.0 till php5.6:
Apache:
CLI:
Din fråga saknar viktiga detaljer, så jag kommer att ge ett mer allmänt svar.
Om du antar att du använder paket finns det några viktiga detaljer:
Apache2 kan konfigureras för att använda antingen
apache2
SAPI med hjälp av paketetlibapache2-mod-php7.0
eller FPM SAPI med hjälp avphp7.0-fpm
medmod_proxy_fcgi
.Ubuntu 16.04 har endast PHP 7.0 i förråden, du kan använda
ppa:ondrej/php
för att lägga till stöd för PHP 5.6 med hjälp av ett liknande namnschema (t.ex.libapache2-mod-php5.6
ellerphp5.6-fpm
).Om du använder Apache2 SAPI (
libapache2-mod-php*
) måste du inaktivera PHP 7.0 efter installationen avlibapache2-mod-php5.6
genom att köraa2dismod php7.0
och aktivera PHP 5.6 genom att köraa2enmod php5.6
.Om du använder FPM SAPI (
php*-fpm
) måste du ändra FPM unix socket från/run/php/php7.0-fpm.sock
till/run/php/php5.6-fpm.sock
.Kom ihåg att för moduler som ingår i PHP (som MySQL) är namnkonventionen
phpX.Y-
(t.ex.php7.0-mysql
ochphp5.6-mysql
), men för externa PECL-moduler (t.ex. APCu, mongodb, ...) är det baraphp-
(t.ex.php-apcu
,php-mongodb
). Jag rekommenderar att du körapt-cache search php
på ditt system för att söka efter rätt paketnamn innan du ställer frågor på Internet.Jag tror att du bör ta bort dina php-paket och installera php5.6. Du kan gå tillväga på följande sätt:
Du kan sedan kontrollera versionen av din php för att vara säker. Det görs enligt nedan: