この簡単なチュートリアルでは、UbuntuLinuxとその派生物で複数のPHPバージョンを切り替える手順について説明します。このガイドは、Ubuntu18.04LTSサーバーエディションで正式にテストされています。他の古いバージョンまたは新しいバージョンのUbuntuでも動作する可能性があります。
はじめに
インストールされているパッケージの最新バージョンが期待どおりに機能しない場合があります。アプリケーションは更新されたパッケージと互換性がなく、特定の古いバージョンのパッケージのみをサポートしている可能性があります。
このような場合、問題のあるパッケージをすぐに以前の動作バージョンにダウングレードできます。 Ubuntuとそのバリアントでパッケージをダウングレードする方法については、古いガイドを参照してくださいこちら ArchLinuxとその派生物でパッケージをダウングレードする方法こちら 。
状況によっては、問題のあるパッケージをダウングレードする必要はありません。 Linuxでは、同じパッケージの複数のバージョンを同時に並べて使用できます。
たとえば、LAMPスタックでPHPアプリケーションをテストしているとします。 Ubuntu18.04LTSにデプロイされています。しばらくすると、アプリケーションはPHP 5.6では正常に機能しましたが、PHP 7.2では機能しなかったことがわかりました(Ubuntu 18.04LTSはデフォルトでPHP7.xをインストールします)。
PHPまたはLAMPスタック全体を再インストールしますか?必要ありません。
PHPを以前のバージョンにダウングレードする必要はありません。数分で以前のPHPバージョンに切り替えることができます。
1。複数のPHPバージョンを切り替える
コマンドを使用して、デフォルトでインストールされているPHPのバージョンを確認しましょう:
$ php -v
出力例:
PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Jul 4 2018 16:55:24) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.7-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies
ご覧のとおり、インストールされているPHPのバージョンは7.2.7です。
アプリケーションを数日間テストした後、アプリケーションがPHP7.2をサポートしていないことがわかりました。その場合は、PHP5.xバージョンとPHP7.xバージョンの両方を用意して、サポートされているバージョンをいつでも簡単に切り替えることができるようにすることをお勧めします。
PHP 7.xを削除したり、LAMPスタックを再インストールしたりする必要はありません。 PHP5.xと7.xの両方のバージョンを一緒に使用できます。
システムにphp5.6をまだアンインストールしていないと思います。念のため、すでに削除しているので、以下のようなPPAを使用して再度インストールできます。
PPAからPHP5.6をインストールできます:
$ sudo add-apt-repository -y ppa:ondrej/php $ sudo apt update $ sudo apt install php5.6
1.1。 PHP7.xからPHP5.xに切り替えます
1.1.1 まず、コマンドを使用してPHP7.2モジュールを無効にします。
$ sudo a2dismod php7.2
出力例:
Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2を実行する必要があります。
1.1.2。 次に、PHP5.6モジュールを有効にします。
$ sudo a2enmod php5.6
1.1.3 次のコマンドを使用して、PHP5.6をデフォルトバージョンとして設定します。
$ sudo update-alternatives --set php /usr/bin/php5.6
1.1.4。 または、次のコマンドを実行して、デフォルトで使用するPHPのシステム全体のバージョンを設定することもできます。
$ sudo update-alternatives --config php
1.1.5。 選択番号を入力してデフォルトバージョンとして設定するか、Enterキーを押して現在の選択を保持します。
1.1.6。 他のPHP拡張機能をインストールしている場合は、それらもデフォルトとして設定します。
$ sudo update-alternatives --set phar /usr/bin/phar5.6
1.1.7。 最後に、ApacheWebサーバーを再起動します。
$ sudo systemctl restart apache2
ここで、PHP5.6がデフォルトバージョンであるかどうかを確認します。
$ php -v
出力例:
PHP 5.6.37-1+ubuntu18.04.1+deb.sury.org+1 (cli) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
2。 PHP5.xからPHP7.xに切り替えます
同様に、次のコマンドを次々に実行することで、PHP5.xからPHP7.xバージョンに切り替えることができます。
$ sudo a2enmod php7.2
$ sudo a2dismod php5.6
$ sudo update-alternatives --set php /usr/bin/php7.2
$ sudo systemctl restart apache2
注意事項:
最終的な安定したPHP5.6バージョンは、アクティブサポートの終了に達しました。 2017年1月19日現在。ただし、PHP 5.6は、2018年12月31日まで、重大なセキュリティ問題のサポートを受け続けます。したがって、すべてのPHPアプリケーションをできるだけ早くPHP7.xと互換性があるようにアップグレードすることをお勧めします。
今後PHPが自動的にアップグレードされないようにする場合は、次のガイドを参照してください。
- Ubuntuでパッケージが自動的にインストール、アップグレード、または削除されないようにする方法
そして、今のところこれですべてです。これがお役に立てば幸いです。