Ubuntu 16.04でPHP 7からPHP 5.6にダウングレードするにはどうすればいいですか?

PHPのバージョンを7から5.6に戻そうとしているのですが、PHP7を削除してからPHP5.6をインストールしたにもかかわらず、まだバージョン7が動作しているようです。

apacheやphpMyAdminなどが適切に設定されている状態で、PHPのバージョンを移行する簡単な方法はありますか?

現在のPHPのバージョンをその場で、さらにはサイトごとに変更できる簡単な方法があれば最高です。

ソリューション

**アップデート 今日、apacheモジュールのphp7.0を無効にしたにもかかわらず、PHP 7が動作するという問題が再び発生しました。PHP7.0を無効にしているにもかかわらず、PHP 7が動作するという問題が再び発生しました。 ...phpinfo is indicate php 7 using fastCGI ... ... 以下の手順に従った後にこのような状況に直面した場合、apacheモジュールの proxy_fcgi を無効にする必要があるかもしれません。

sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart

**1.PHP 5.6を再インストールする。

私がうまくいったのは、このガイドです。http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu

実際には、php7.0を削除する必要はなく、php5.6を一緒にインストールすることができます(また、php7.0を必要とするphpmyadminパッケージとの依存関係に問題があるため)。

ApacheでPHPを有効にする方法として、libapache2-mod-phpが適切であると判断した場合、この方法で進めることができます。

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.PHPのバージョンを切り替える

  • php5.6から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
  • php7.0から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
解説 (21)

あなたの質問には重要な点が欠けていますので、大まかにお答えします。

パッケージを使用していると仮定すると、いくつかの重要な詳細があります。

1.Apache2 は、libapache2-mod-php7.0 パッケージを使用した apache2 SAPI、または mod_proxy_fcgi を使用した php7.0-fpm FPM SAPI のいずれかを使用するように設定できます。

2.2. Ubuntu 16.04 のリポジトリには PHP 7.0 しかありませんが、 ppa:ondrej/php を使用して同様の命名法で PHP 5.6 のサポートを追加することができます (例: libapache2-mod-php5.6 または php5.6-fpm)。

3.3. Apache2 SAPI (libapache2-mod-php*) を使用している場合は、 libapache2-mod-php5.6 をインストールした後、 a2dismod php7.0 を実行して PHP 7.0 を無効にし、 a2enmod php5.6 を実行して PHP 5.6 を有効にする必要があります。

4.4. FPM SAPI (php*-fpm) を使用している場合は、FPM の unix ソケットを /run/php/php7.0-fpm.sock から /run/php/php5.6-fpm.sock に変更する必要があります。

5.5. PHP にバンドルされているモジュール (MySQL など) の命名規則は phpX.Y- であることに注意してください (例: php7.0-mysqlphp5.6-mysql) ですが、外部の PECL モジュール (APCu, mongodb, ...) については、単に php- (php-apcu,php-mongodb) となります。 インターネットで質問する前に、システム上でapt-cache search php ` を実行して、正しいパッケージ名を検索することをお勧めします。

解説 (1)

phpパッケージを削除して、php5.6をインストールする必要があると思います。以下のように進めてください。

sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6

その後、念のためにphpのバージョンを確認してください。これは以下のように行います。

php -v
解説 (2)