XserverでPHPのバージョンを5.6から7.2にあげました

はじめに

Xserverで動かしているWordpressにて、PHPのバージョンアップを行ったのでその手順を紹介します。

ざっくりと上記の流れで対応しました。今回はPHPのバージョンあげただけで、WordPressプラグインWordPressのバージョンはあげていません。 テスト環境がない場合は手元で環境をつくるよいと思います。 Local by Flywheelなどがお手軽に環境を作れて便利です。 自分はテスト環境で上記の作業をして問題がないことを確認してから本番で作業を行いました。

1. プラグインおよびテーマファイルがPHP7に対応しているかチェック

PHP Compatibility CHeckerを使いました。 プラグインがPHP7.2に対応しているか、テーマがPHP7.2に対応しているかのチェックを行ってくれます。 はまりどころとしては、テスト環境でPHP Compatibility Checker が動かない問題がありました。

  • wp-cronが動かないと動かない
  • wp-cronが動かない理由はベーシック認証がかかっているため動かない

解決策は、htaccessに特定のサーバーのIPアドレスを許可することで解決できました。(XserverとかであればそのサーバーのIPアドレス)

書き方

Satisfy any →これがあると特定のIPアドレスが正しい or BASIC認証できたユーザーのどちらかという意味。

order deny,allow
allow from 111.22.333.44 ← サーバーのIPアドレス

deny from all

AuthUserFile "/home/.htpasswd"
AuthName "Input ID and Password"
AuthType BASIC
require valid-user

2. DBのバックアップを取る

バックアップをとりましょう。Xserverなら管理画面からphpmyadminにアクセスして取得できます。 無理ならsshでサーバーに接続してdumpファイルを取得します。

3. サイトのバックアップを取る。

zipコマンドでバックアップを取っておきます。

zip -rq  ZIPファイル名 バックアップしたいフォルダ/* -x "*.png*" "*.jpg*" 

pngやjpgファイルがあるとバックアップ量が膨大になるので、-xオプションで除外しています。

4. エラーログを記録できるようにしておく。

実はこの作業は本番環境では、行いませんでした。というのもWordPress エラーログ 記録などで検索すると、 wp-configファイルに下記を記述するようにするといった記事が多かったのですが、WordPress Codexで、WP_DEBUGについて調べると、通常は WordPress の開発環境の wp-config.php ファイル内で true に設定します。と書いてあったからです。

https://wpdocs.osdn.jp/WordPress%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );

5. PHPをバージョンアップ

Xserverの管理画面から行えます。バージョンアップに時間がかかるのではと懸念がありましたが、数秒で切り替わったので問題なく行えました。

6. 動作確認

PHP Compatibility CHeckerでテーマファイル以下のファイルが、PHP7.2に対応しているかどうかのチェックは通っていたのですが、動作確認してみるとcount関数を使用している箇所でいくつかの箇所でwarningが出ていました。適切に変更していくだけなのでそこまで手間ではなかったです。 cruw.co.jp

おわりに

PHP5系は2018年でサポートが切れてしまっているみたいなので、早めにバージョンアップすることをおすすめします。

stocker.jp

PHP7にすると速度もあがるはずです。実際にバージョンアップ前とバージョンアップ後ではPage Speed Insightのスコアも上昇していました。パフォーマンス面においても変わってくるので、バージョンアップやっていきましょう!