Poskušam vrniti svojo različico PHP na 5.6 od 7 in čeprav sem odstranil PHP 7 in nato namestili PHP 5.6 Še vedno se mi zdi, da teče različica 7.
Ali obstaja preprosta metoda za premikanje med različicami PHP, kjer so apache, phpMyAdmin in drugi ustrezno konfigurirani?
Preprost način za spreminjanje trenutne različice PHP v teku in celo po posameznih mestih bi bil odličen.
Posodobitev
Danes sem spet dobil težavo s PHP 7, kljub temu da sem onemogočil modul php7.0
apache: phpinfo
je prikazoval php 7 z uporabo fastCGI ...
... Če se po upoštevanju spodnjih navodil soočite s to situacijo, boste morda morali onemogočiti modul apache proxy_fcgi
:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
1. Ponovno namestite PHP 5.6
Zame je deloval ta vodnik: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Pravzaprav ni treba odstraniti php7.0
, php5.6 lahko namestite skupaj ( tudi zato, ker boste imeli težave z odvisnostjo od paketa phpmyadmin
, ki zahteva php7.0)
Če je libapache2-mod-php
za vas primeren način za omogočanje PHP v Apacheju, lahko nadaljujete na ta način:
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. Preklopite različico PHP:
s php5.6 na 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
Iz php7.0 na php5.6:
Apache:
V primeru, da je php7.0, je potrebno ponovno zagnati: sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
CLI:
sudo update-alternatives --set php /usr/bin/php5.6
V vašem vprašanju manjkajo pomembne podrobnosti, zato bom odgovoril širše.
Če domnevamo, da uporabljate pakete, je tu nekaj pomembnih podrobnosti:
Apache2 je lahko konfiguriran za uporabo apache2
SAPI z uporabo paketa libapache2-mod-php7.0
ali FPM SAPI z uporabo paketa php7.0-fpm
z mod_proxy_fcgi
.
Ubuntu 16.04 ima v skladiščih samo PHP 7.0, za dodajanje podpore za PHP 5.6 lahko uporabite ppa:ondrej/php
s podobno shemo poimenovanja (npr. libapache2-mod-php5.6
ali php5.6-fpm
).
Če uporabljate Apache2 SAPI (libapache2-mod-php*
), morate po namestitvi libapache2-mod-php5.6
onemogočiti PHP 7.0 z zagonom a2dismod php7.0
in omogočiti PHP 5.6 z zagonom a2enmod php5.6
.
Če uporabljate FPM SAPI (php*-fpm
), morate spremeniti unix vtičnico FPM iz /run/php/php7.0-fpm.sock
v /run/php/php5.6-fpm.sock
.
Ne pozabite, da je pri modulih, ki so povezani s PHP (kot je MySQL), konvencija poimenovanja phpX.Y-<ext>
(npr. php7.0-mysql
in php5.6-mysql
), za zunanje module PECL (npr. APCu, mongodb, ...) pa samo php-<ext>
(npr. php-apcu
, php-mongodb
). Priporočam, da v svojem sistemu zaženete apt-cache search php <ext>
, da poiščete pravilno ime paketa, preden zastavite vprašanje na internetu.
Mislim, da bi morali odstraniti php pakete in namestiti php5.6. Lahko nadaljujete na naslednji način:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
Nato lahko preverite različico svojega php, da se prepričate. To storite, kot je prikazano spodaj:
php -v