
開発環境におけるこれまでの作業において、特にPHP7化に伴う問題が見当たらなかったことから、いよいよ本番サイトで以前よりオファーを受けていた ロリポップ! ライトプラン の 無料アップデート を適用して、モジュール化PHPによる高速化を図りたいと思います。
管理画面にログインすると表示されるアップデードへのリンクをクリックすると、その利点について詳しく説明がありますが、ストレージ容量などは既にアップグレード相当の容量が適用されています。どちらかと言うと、WordPressのセキュリティやパフォーマンスの点から、さすがにそろそろPHP7にしなければ、と言うのが主目的です。
データベースパスワードの確認
次項でPHP7へアップデートするとmysqlデータベースのパスワード保存形式が変わる可能性があることから、現在のパスワードを今一度確認しておきます(ロリポップサポートページ参照)。
PHP5からPHP7へ
ライトプランの無料アップデート前に先にPHPのみをPHP5.6からPHP7.4にしてしまい、自作スクリプトの部分で問題が無いことを確認します。ロリポップ管理画面のPHP設定を開きます。
PHP7.4には従来のCGI版とモジュール版が選べますが、ここでは7.4CGI版に留めておき、作業の最後にモジュール版にセットし直すことにします。
ここで先程確認したmysqlデータベースパスワードを上書き再入力保存します。
ライトプランアップグレード適用
準備は以上です。それでは早速、「アップデートする」ボタンを押してライトプランの無料アップデートを進めましょう。
そしてサイト中のページは403から404のエラー画面になりました。
比較的アクセスの少ない平日深夜寝る前にアップデートを開始し就寝したのですが、大したコンテンツ量でもないことからか、数分で終わったらしいことを、ロリポップからのアップデート完了お知らせメールで知りました。
物理的にサーバ機器を移ったのでグローバルIP変更
注意事項に無かった変更点として、サーバのIPアドレスが変わっていました。と言うのも開発環境と本番環境で接続するデータベースを切り替える仕組みがあり、その切り替え判断に次のサーバ変数を参照していた為に気づいたもので、早速IPアドレス変更を織り込みました。
1 |
$_SERVER['SERVER_ADDR'] |
Crayon Syntax HighlighterプラグインがPHP7.4未対応
WordPressの当ブログが途中までしか表示されなくなりました。自作のスクリプトと違い、WordPressは開発環境の無いぶっつけ本番なので盲点でした。
プラグインを全て無効にすると問題なく表示されることから、少しずつ有効にしながら様子をみていると犯人は見つかりました。
調べてみると実はもう何年もメンテナンスされていないCrayon Syntax Highlighterプラグイン、代替探そうとも思ったのですがコードを見せることも多い当ブログでは使用頻度も高いので、幸いPHPファイルを修正すれば直るようなので、使い続けることにします。
編集は、crayon_langs_class.phpの340行目、正規表現内のハイフンをエスケープで逃がせます。
1 2 3 4 |
// 修正前 return preg_replace('/[^\w-+#]/msi', '', $id); // 修正後 return preg_replace('/[^\w\-+#]/msi', '', $id); |
PHP7.3以降のpreg_replace内にある正規表現の仕様変更によるもののようです。大した修正でもないので、ロリポップ管理画面のWebベースFTP上で修正を済ませました。
他に問題が無いことを確かめたらPHPをCGI版からモジュール版にして、開発環境のアップグレードに始まる一連の作業はようやく完結です。