Saya mencoba untuk kembali saya versi PHP 5.6 dari 7 dan meskipun saya dihapus PHP 7 dan kemudian diinstal PHP 5.6 saya tampaknya masih akan menjalankan versi 7.
Ada sebuah metode sederhana untuk bergerak melalui versi PHP yang mana apache, phpMyAdmin dan co dikonfigurasi dengan tepat?
Cara sederhana untuk mengubah versi PHP pada terbang dan bahkan situs dengan situs akan menjadi besar.
Update
Hari ini saya mendapat lagi masalah dengan PHP 7 berjalan meskipun saya telah dinonaktifkan php7.0
modul apache: phpinfo
menunjukkan php 7 menggunakan fastCGI ...
... Jadi, jika setelah anda mengikuti petunjuk di bawah ini anda menghadapi situasi ini, anda mungkin perlu menonaktifkan proxy_fcgi
modul apache:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
1. Re-Install PHP 5.6
Apa yang bekerja untuk saya adalah panduan ini: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Benar-benar tidak diperlukan untuk menghapus php7.0
, anda dapat menginstal php5.6 bersama-sama ( juga karena anda akan memiliki masalah ketergantungan dengan phpmyadmin
paket yang diperlukan php7.0)
Dengan asumsi libapache2-mod-php
adalah cara yang cocok untuk mengaktifkan PHP pada Apache untuk anda, anda dapat melanjutkan dengan cara ini:
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. Switch versi PHP:
sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
sudo update-alternatives --set php /usr/bin/php7.0
sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
sudo update-alternatives --set php /usr/bin/php5.6
Ubuntu 16.04 dilengkapi dengan php 7.0
, dan beberapa php
aplikasi mungkin masih gagal dengan php 7.0
.Oleh karena itu, dalam beberapa kasus, itu mungkin masuk akal untuk memiliki php 7.0
dan php 5.x
, sehingga anda dapat memilih versi yang mana untuk digunakan untuk kebutuhan anda setiap saat.
Anda dapat melakukannya dengan:
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
Menginstal kedua php5.6 & php7.0
bersih dalam kasus saya, saya tidak mengeluh masalah, dll.
Untuk beralih dari php 5.6
ke php 7.0
anda perlu melakukan dua hal:
# 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
atau dari php7.0 untuk 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
Anda juga dapat dengan cepat memeriksa anda adalah menggunakan dengan menjalankan php -v.
Pertanyaan anda tidak memiliki rincian penting, jadi saya akan menjawab secara lebih luas.
Dengan asumsi anda menggunakan paket ini, ada beberapa rincian penting:
Apache2 dapat dikonfigurasi untuk menggunakan apache2
SAPI menggunakan libapache2-mod-php7.0
paket atau FPM SAPI menggunakan php7.0-fpm
dengan mod_proxy_fcgi
.
Ubuntu 16.04 hanya PHP 7.0 dalam repositori, anda dapat menggunakan ppa:ondrej/php
untuk menambahkan dukungan untuk PHP 5.6 serupa dengan menggunakan skema penamaan (misalnya libapache2-mod-php5.6
atau php5.6-fpm
).
Jika anda menggunakan Apache2 SAPI (libapache2-mod-php*
), anda perlu menonaktifkan PHP 7.0 setelah anda menginstal libapache2-mod-php5.6
dengan menjalankan a2dismod php7.0
dan mengaktifkan PHP 5.6 dengan menjalankan a2enmod php5.6
.
Jika anda menggunakan FPM SAPI (php*-fpm
) maka anda perlu mengubah FPM unix soket dari /run/php/php7.0-fpm.kaus kaki
ke /run/php/php5.6-fpm.kaus kaki
.
Harap diingat bahwa untuk modul dibundel dengan PHP (seperti MySQL) konvensi penamaan adalah phpX.Y-<ext>
(f.e. php7.0-mysql
dan php5.6-mysql
), tapi untuk eksternal PECL modul (f.e. APCu, mongodb, ...) it's hanya php-<ext>
(f.e. php-apcu
, php-mongodb
). Saya sarankan menjalankan apt-cache search php <ext>
pada sistem anda untuk mencari yang benar nama paket sebelum mengajukan pertanyaan di Internet.
Saya pikir anda harus menghapus anda paket php dan menginstal php5.6. Anda dapat melanjutkan sebagai berikut:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
Anda kemudian dapat memeriksa versi php anda untuk memastikan. Hal ini dilakukan seperti yang terlihat di bawah ini:
php -v