Pertanyaan Bagaimana saya bisa melakukan downgrade dari PHP 7 ke PHP 5.6 pada Ubuntu 16.04? [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

Saya mencoba mengembalikan versi PHP saya ke 5.6 dari 7 dan meskipun saya menghapus PHP 7 dan kemudian menginstal PHP 5.6 saya sepertinya masih menjalankan versi 7.

Apakah ada metode sederhana untuk bergerak melalui versi PHP di mana apache, phpMyAdmin, dan rekan dikonfigurasi dengan benar?

Cara sederhana untuk mengubah versi PHP saat ini dengan cepat dan bahkan situs demi situs akan sangat bagus.


157
2018-04-24 09:21


asal


Saya tampaknya memiliki 5.6 terinstal tetapi semua php saya adalah render sebagai teks sekarang. - dibs
apa output dari dpkg -l | grep php| awk '{print $2}' |tr "\n" " " ? - storm
dh-php libapache2-mod-php5 php-umum php-json php-pear php-xml php5-cli php5-umum php5-json php5-readline php5.6 php5.6-bz2 php5.6-cli php5.6-umum 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-umum php7.0-json php7.0-xml pkg-php-tools - dibs
Saya melihat beberapa paket php7 di sana menghapusnya aptitude purge php7.0-common php7.0-json php7.0-xml  Saya juga ingin tahu apa yang Anda maksud all my php is rendering as text now - storm
itu berarti kamu rindu libapache2-mod-php5.6 paket ... lihat jawaban saya di bawah, Anda tidak perlu menghapus php7.0 - Postadelmaga


Jawaban:


Memperbarui
Hari ini saya mendapat masalah lagi 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 menonaktifkannya proxy_fcgi modul apache:

sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart

1. Instal Ulang PHP 5.6 

Apa yang berhasil bagi saya adalah panduan ini: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu

Sebenarnya tidak diperlukan untuk menghapus php7.0, Anda dapat menginstal php5.6 bersama (juga karena Anda akan memiliki masalah ketergantungan dengan phpmyadmin paket yang membutuhkan php7.0)

Asumsi libapache2-mod-php adalah cara yang cocok untuk mengaktifkan PHP di 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. Ganti versi PHP:

  • Dari php5.6 hingga 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
      
  • Dari php7.0 hingga 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



Anda benar, terima kasih, saya telah memperbaiki perintahnya :) - Postadelmaga
@Postadelmaga Berfungsi untuk mengubah versi PHP untuk aplikasi web. Terima kasih banyak! Tetapi CLI masih menjalankan PHP7. Apakah Anda tahu cara mengubahnya ke PHP5.6 juga? - John Linhart
Cara terbaik untuk melakukannya adalah dengan menghapus paket php, tambahkan Ondrej ppa dan kemudian instal php7 dan php5.6, ingat Anda memiliki phpenmod -v 5.6 untuk mengaktifkan modul php5.6 dan phpenmod -v 7.0 untuk mengaktifkan modul php 7.0, info lebih lanjut di sini disqus.com/home/discussion/serversforhackers/… - razor7
Posting itu menyelamatkan hariku. - Shoaib Nawaz
@Daenu itu karena php -v akan menunjukkan versi php cli ... perintah yang disarankan adalah untuk Apache ... jika Anda melakukan phpinfo() di halaman web Anda akan melihat perbedaannya. - Postadelmaga


Ubuntu 16.04 dilengkapi dengan php 7.0, dan beberapa php aplikasi mungkin masih gagal php 7.0 Oleh karena itu, dalam beberapa kasus, mungkin masuk akal untuk memiliki keduanya php 7.0 dan php 5.x, sehingga Anda dapat memilih versi yang akan digunakan untuk kebutuhan Anda kapan saja.

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

Memasang keduanya php5.6 & php7.0 bersih dalam kasus saya: tidak ada keluhan masalah, dll.

Untuk beralih dari php 5.6 untuk 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 hingga 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 yang Anda gunakan dengan menjalankan php -v.


48
2018-05-02 09:29



Menggunakan sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart untuk memastikan perintah berikut hanya berjalan ketika yang sebelumnya berhasil. Mengusulkan pengeditan untuk jawaban ini. - Videonauth
Ini adalah jawaban terbaik untuk yang ingin menginstal keduanya php5.6 dan php7.0 di ubuntu 16.04 - Amine Jallouli
Bekerja seperti pesona. Seandainya saya dapat menaikkannya beberapa kali. - shiva


Pertanyaan Anda tidak memiliki detail penting, jadi saya akan menjawab lebih luas.

Dengan asumsi Anda menggunakan paket, ada beberapa detail penting:

  1. Apache2 dapat dikonfigurasi untuk digunakan apache2 SAPI menggunakan libapache2-mod-php7.0 paket atau FPM SAPI menggunakan php7.0-fpm dengan mod_proxy_fcgi.

  2. Ubuntu 16.04 hanya memiliki PHP 7.0 di repositori, yang dapat Anda gunakan ppa:ondrej/php untuk menambahkan dukungan untuk PHP 5.6 menggunakan skema penamaan serupa (mis. libapache2-mod-php5.6 atau php5.6-fpm).

  3. Jika Anda menggunakan Apache2 SAPI (libapache2-mod-php*), Anda perlu menonaktifkan PHP 7.0 setelah Anda menginstal libapache2-mod-php5.6 dengan berlari a2dismod php7.0 dan aktifkan PHP 5.6 dengan menjalankan a2enmod php5.6.

  4. Jika Anda menggunakan FPM SAPI (php*-fpm) maka Anda perlu mengganti soket unix FPM dari /run/php/php7.0-fpm.sock untuk /run/php/php5.6-fpm.sock.

  5. Harap diingat bahwa untuk modul yang dipaketkan dengan PHP (seperti MySQL), konvensi penamaannya adalah phpX.Y-<ext> (f.e. php7.0-mysql dan php5.6-mysql), tetapi untuk modul PECL eksternal (misalnya, APCu, mongodb, ...) hanya saja php-<ext> (f.e. php-apcu, php-mongodb). Saya merekomendasikan untuk berlari apt-cache search php <ext> pada sistem Anda untuk mencari nama paket yang benar sebelum mengajukan pertanyaan di Internet.


11
2018-04-24 10:04



Bisakah Anda menguraikan sedikit tentang bagaimana Anda akan mengubah soket unix FPM? - myol


Saya pikir Anda harus menghapus paket php Anda dan menginstal php5.6. Anda dapat melanjutkan sebagai berikut:

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

Anda kemudian dapat memeriksa versi php Anda untuk memastikan. Ini dilakukan seperti yang terlihat di bawah ini:

php -v

5
2018-04-24 09:38



Saya berharap bahwa fakta bahwa Anda akan menghapus paket php Anda saat ini dan menginstal php baru akan sangat membantu Anda. - Yufenyuy Veyeh Dider
Anda tidak perlu melakukan sihir grep-awk karena semua paket bergantung pada php5-common, jadi sederhananya: apt-get purge php5-common akan membersihkan semua paket php5 dari sistem Anda. - oerdnj