最近、さまざまなWebサーバーの構成とWordPressなどのPHPアプリケーションの操作に関連するさまざまなテーマについて話し合いました。 OpenLiteSpeedなどのWebサーバーでは、WebAdmin Consoleを使用してバージョンを変更できますが、Apacheを使用している場合は、LinuxでPHPのバージョンを切り替える方法を次に示します。
PHPバージョン
LinuxでPHPのバージョンを確認するにはどうすればよいですか?
まず、現在インストールおよび構成されているPHPのバージョンを確認します。このデモにはDebian11を使用しています。この記事に記載されているすべての手順は、Linuxディストリビューションで問題なく動作します。
切り替えようとしているバージョンが正しくインストールされていることを覚えておいてください。
php -v
特定のPHPバージョンのインストール
LinuxAndUbuntuには、DebianおよびUbuntuベースのLinuxディストリビューションにPHP8.xをインストールする方法に関する詳細なガイドがあります。 PHP 7.4などの以前のバージョンをインストールする場合は、リポジトリを追加する必要はありません。
sudo apt install php7.4
PHPバージョンの変更
複数のPHPバージョンをインストールしたら、a2dismodおよびa2enmodスクリプトを使用して、PHPバージョンを無効にし、別のPHPバージョンを有効にすることができます。これらのスクリプトはどちらも、apacheモジュールを有効または無効にできます。
現在のPHPバージョンを無効にする
現在PHP8.1がデフォルトのPHPバージョンとして設定されていると仮定して、これを無効にする方法は次のとおりです–
sudo a2dismod php8.1
これで、a2enmodを使用してインストール済みのPHPバージョンに切り替えることができます–
sudo a2enmod php7.4
PHPのバージョンを切り替えた後、Apacheサーバーを再起動することを忘れないでください。
sudo service apache2 restart
a2enmodの一般的なエラー
一部のユーザーは「bash:a2dismod:コマンドが見つかりません」エラーが発生する場合があります。
[email protected]:~$ a2dismod php8.1 bash: a2dismod: command not found
ほとんどの場合、エラーはsudoまたはrootなしでコマンドを実行すると発生します。
コマンドを正常に実行したときに得られる出力は次のとおりです–
[email protected]:~$ sudo a2dismod php8.1 Module php8.1 disabled. To activate the new configuration, you need to run: systemctl restart apache2を実行する必要があります。
同じことがa2enmodにも当てはまります。 sudoまたはrootユーザーとして実行します。
ユーザーが遭遇する可能性のあるもう1つのエラーは、「エラー:モジュールphp7.3が存在しません!」です。
[email protected]:~$ sudo a2enmod php7.3 ERROR: Module php7.3 does not exist!
このエラーは、アクティブ化しようとしているPHPバージョンのユーザーがインストールされていないことを意味します。この場合、php7.3はインストールされていません。
a2enmodの正常な実行は次のようになります–
[email protected]:~$ sudo a2enmod php7.4 Considering dependency mpm_prefork for php7.4: Considering conflict mpm_event for mpm_prefork: Considering conflict mpm_worker for mpm_prefork: Module mpm_prefork already enabled Considering conflict php5 for php7.4: Enabling module php7.4. To activate the new configuration, you need to run: systemctl restart apache2