Google Cloud Platform に立ち上げた WordPress (→ドメインとサーバーの管理をGoogle DomainsとGoogle Cloud Platformに引っ越した )をアップデートしたら、サイトヘルスなる機能が追加されていて、ダッシュボードで「PHPの更新が必要です」と脅される警告されるようになりました。実用上の問題は少なそうですが、パフォーマンスが最適化されてないですし、何よりセキュリティ上あまりよろしくないので更新してみることにしました。
GCP のメニューから Deployment Manager > デプロイ詳細を開き、SSHにアクセス。入力したコマンドは次の通り:
sudo apt-get update
sudo apt-get install php7.4
sudo a2dismod
sudo a2enmod
apt-cache search php7.4
sudo apt-get -y install php7.4-mysql php7.4-curl php7.4-mbstring php-imagick php7.4-zip php7.4-gd
sudo systemctl restart apache2
何をしているかというと:
- apt を更新
- PHP7.4 をインストール
- Apache の PHP7.0 モジュールを無効化(どのモジュールを無効化するか聞かれるので、
php7.0
と入力) - Apache の PHP7.4 モジュールを有効化(どのモジュールを有効化するか聞かれるので、
php7.4
と入力) - PHP7.4 で利用可能なモジュールを確認
- 必要なモジュールを選択してインストール
- Apache を再起動
これでサイトヘルスは「良好」に変わりました。
わかったこと
- Google Click to Deploy でデプロイされるインスタンスの OS は Debian という
- apt は Debian のパッケージ管理コマンド
- Red Hat 系の Apache と違って、Debian の Apache は設定ファイルやモジュールの導入方法が異なり、必要なものだけ有効化する思想(参考:よちよち歩きのLinux)
- なので PHP のバージョン毎に必要なモジュールをインストールして有効化する必要がある
GCPがどうこうというよりは、Debian 上の Apache の取り扱いさえわかっていれば単純な話だったようです。仮想環境上の Apache は一瞬で再起動するので、PHP のバージョンを切り替えてテストするのも簡単そうです。