1. 第25回 【WordPress】 GCP PHP7.0→PHP7.4へアップグレードとモジュール追加
環境:Debian 9 PHP 7.0 Apache 2.4.25 MySQL 5.7 Cocoon
目的:PHP7.0→PHP7.4 バージョンアップ
気をつけたいこと
何かが上手くいかなかった時に、下記画面のようになりました。新規投稿ページ作成画面が大変なことになりました。WordPressの根幹に関わるような設定変更は必ずバックアップを取ってから行いましょう。
今回は「PHP 7.0 → PHP 7.4」へバージョンアップを行ないますが、基本的なことさえ抑えて覚えると、バージョンアップ、バージョンダウンの両方ともできるようになります。
例えばですが、
バージョンアップしたものの、色々と投稿したり、設定変更したりした後、利用していたテーマやプラグインがうまく動作しないことに気がついちゃった時。「バージョンダウン」がとても良い対処方法だと思います。
- GCPSSHでコマンド起動
- GCPSSHで「PHP 7.4」をインストール
- WordPressサイトヘルス確認
- GCPSSHで「PHP 7.0」をアンインストール
1.1 「GCP」で「SSH」を起動
- 「メニュー」「VMインスタンス」「SSH」の順番にクリックして次へ進みます。
1.2 事前準備 アップデート
- 現在のパッケージを更新します。
$ sudo apt-get update
- 途中でアップデートしていいか聞かれたら「y」を入力して「Enter」を押して次へ進みます。
1.3 事前準備 アップグレード
$ sudo apt-get upgrade
- 途中で「MySQL」のことを聞かれることがあります。今回は触れないようにします。聞かれなければスルーです。
- 現在の「MySQL」バージョンを選択して保持するようにします。「o」を入力して「Enter」を押して次へ進みます。
1.4 認証キーとアクセス先を追加①
- aptでインストールするため認証キーとアクセス先を追加します。
これは、どこかの会社のパクリだと思うんですが、今探しても何を参考にしたか出てこないのでごめんなさい。ただ一つ言えることは「GCP」の「SSH」では「sudo」を必ずつけるようにしてください。
$ sudo apt-get install apt-transport-https lsb-release ca-certificates
1.5 認証キーとアクセス先を追加②
$ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
1.6 認証キーとアクセス先を追加③
- ここではなぜか「sudo」を付けないようにします。あまり深いことはわかりません。経験則です。
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
1.7 「PHP7.4」をインストール
$ sudo apt-get install php7.4
- 例、「PHP 7.2」へバージョンアップをしたい時は、下記コードです。他のバージョンでも同様です。
$ sudo apt-get install php7.2
途中でインストールサイズが表示され、続けてもいいか聞かれるので「y」を入力して次へ進みます。
1.8 「y」のあとは長い
- 少し時間がかかりますが、終わるまで触れないようにします。
1.9 「PHP7.4」の関連ライブラリをインストール
$ sudo apt install php7.4-cli php7.4-common php7.4-curl php7.4-mbstring php7.4-mysql php7.4-xml
- 例、「PHP 7.2」へバージョンアップをしたい時は、下記コードです。他のバージョンでも同様です。
$ sudo apt install php7.2-cli php7.2-common php7.2-curl php7.2-mbstring php7.2-mysql php7.2-xml
- 途中でインストールサイズが表示され、続けてもいいか聞かれるので「y」を入力して次へ進みます。
1.10 「y」のあとは長い
1.11 PHPのバージョンを確認
$ php -v
- GCPサーバー側が「PHP 7.4」になっていることを確認して次へ進みます。
1.12 WordPressに「PHP 7.4」を反映させる
- 使用するPHPモジュールを7.0から7.4に変更します。
- 今まで利用してきた「PHP 7.0」を無効にします。
$ sudo a2dismod php7.0
1.13 モバイルレイアウト問題③
- 次にこれから利用する「PHP 7.4」を有効にします。
$ sudo a2enmod php7.4
- 「PHP 7.4」が「Enable」(有効)になったら「Apache 2」を再起動します。忘れがちです。反映していない時の半分は再起動忘れだと思います。
$ sudo service apache2 restart
1.14 「WordPress」でバージョン確認
- 「WordPress管理画面」「Cocoon設定」「テーマ情報」タブ、の順番でクリックします。
- 「PHPバージョン」が「GCP」の「SSH」で確認したバージョンと同一かどうかを確認して、次へ進みます。
1.15 「phpMyAdmin」でバージョンを確認
- 「phpMyAdmin」でバージョン確認します。下記参考にしてください。
第10回 【WordPress】 GCP phpMyAdminのログインURLを変更する セキュリティ対策
1.16 別の問題発生
- 「Media Library Folders」で表示されていた「PHP 7.2」にしろ、というエラーは消えましたが新たな問題(下の赤枠)で画像が表示されなくなりました。
1.17 WordPressのサイトヘルスを確認
- 「WordPress管理画面」にはアクセスができる。でも、何かしらの問題が発生している時にはサイトヘルスステータスを確認すると、どんな問題が発生しているかが確認できます。
- 下記画面では「1つ以上の必須モジュールが存在しません」というエラーです。
- 「PHP 7.0」の時には問題なく画像が表示されていましたが、表示されなくなってしまったのは、このモジュールの関係でした。
1.18 モジュールの追加
- 「PHP 7.4」にバージョンアップをしたので、対応するためにモジュールの追加をします。
$ sudo apt install php-imagick php-gd
1.19 「y」のあとは長い
- インストールが終了するまで待ちます。
1.20 3つ目のエラーへ対応
- エラーは3つありました。「imagick」「zip」「gd」です。
- 「imagick」「gd」のインストールはネットで調べたらわかりました。調べた通りに行なうとエラーは消えましたが、「zip」のエラーは消えませんでした。
- 私は「zip」のエラーは消えませんでした。上記と同様に「zip」モジュールもできるかも知れないと思って打ち込んだコマンドが下記です。
$ sudo apt install php-zip
1.21 「zip」モジュール完了
- 上記のコマンドを推測で入力したものの「できちゃいました。」
- 「Apache 2」再起動、忘れちゃだめです。
$ sudo service apache2 restart
1.22 サイトヘルスを確認
- 「WordPress管理画面」「Cocoon設定」「サイトヘルス」の順番でクリックしてサイトヘルスステータスを確認します。
- 「致命的な問題」がなくなっていて解決です。
1.23 「PHP 7.0」をアンインストール
「PHP 7.0」をアンインストールします。
sudo apt remove php7.0
関連ライブラリをアンインストール。
- 関連ライブラリをアンインストール
sudo apt remove php7.0-cli php7.0-common php7.0-curl php7.0-mbstring php7.0-mysql php7.0-xml
- アンインストールした後も再起動を忘れずに。
$ sudo service apache2 restart
1.24 さいごに
コードの数字を変更するだけで、「バージョンアップ」も「バージョンダウン」も自由自在です。とにかく再起動を忘れずに。
「SSH」コマンドの実行はものすごく苦手です。バックアップを取ったり、記録を取ったりしながら設定をしてみると、少しだけですが身近に感じ始めたかもなぁー、と思うことがなくもないんです。つまりは微妙っていうことですね。
【コメント】 ※「メールアドレス不要」