web-dev-qa-db-ja.com

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

PHPバージョンを7から5.6に戻そうとしていますが、PHP 7を削除してからPHP 5.6をインストールしましたが、まだバージョン7を実行しているようです。

Apache、phpMyAdmin、coが適切に設定されているPHPバージョンを移動する簡単な方法はありますか?

PHPの現在のバージョンをその場で、さらにはサイトごとに変更する簡単な方法は素晴らしいでしょう。

165
dibs

更新
今日、php7.0 Apacheモジュールを無効にしているにもかかわらず、PHP 7の実行に問題がありました:phpinfoはfastCGIを使用してphp 7を表示していました.
...したがって、以下の指示に従ってこの状況に直面した場合、proxy_fcgi Apacheモジュールを無効にする必要があります。

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-ubunt

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

libapache2-mod-phpがApacheで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。 Switch PHP version

  • 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
      
316
Postadelmaga

Ubuntu 16.04にはphp 7.0が付属しており、一部のphpアプリケーションはphp 7.0で失敗する場合があります。そのため、場合によっては、php 7.0php 5.x。これにより、いつでも必要に応じて使用するバージョンを選択できます。

あなたはそうすることができます:

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

私の場合、両方のphp5.6 & php7.0のインストールは問題ありませんでした。問題などの不満はありません。

php 5.6からphp 7.0に切り替えるには、2つのことを行う必要があります。

# 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

またはphp7.0から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

Php -vを実行して、使用しているものをすばやく確認することもできます。

あなたの質問には重要な詳細が欠けているので、私はより広く答えます。

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

  1. Apache2は、Apache2パッケージを使用するlibapache2-mod-php7.0 SAPIまたはphp7.0-fpmmod_proxy_fcgiを使用するFPM SAPIを使用するように構成できます。

  2. Ubuntu 16.04のリポジトリにはPHP 7.0のみがあります。ppa:ondrej/phpを使用して、PHP 5.6のサポートを追加できます。同様の命名方式(_libapache2-mod-php5.6またはphp5.6-fpm)。

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

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

  5. PHP(MySQLなど)にバンドルされているモジュールの命名規則はphpX.Y-<ext>(fe php7.0-mysqlおよびphp5.6-mysql)ですが、外部PECLモジュール(fe APCu 、mongodb、...)ただphp-<ext>(fe php-apcuphp-mongodb)です。インターネットで質問する前に、システムでapt-cache search php <ext>を実行して正しいパッケージ名を検索することをお勧めします。

11
oerdnj

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