動機は、WordPressで出てくる安全ではないPHPの警告を消そうと思ったからです。うちのウェブサイトはPHPで稼働しているシステムが多く、PHPを更新するとそれらのメンテナンスも併せて発生する可能性が高く腰が重かったのですが、年末休みを機に決行しました。
まずはバックアップのために、UpDraftPlusプラグインをインストールして、DropBoxにバックアップを取りました。いまやWordPressがコンテンツの中枢なので、バックアップ機構は大事です。
それからyumでPHPのアップデートをしたら、さっそく怒られました。
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
調べたところ、CentOS6のサポートが終了していることが原因のようです。さすがにOSを入れ替えるのはしんどいので、こちらのページを参考にしてリポジトリの向け先を変える暫定対処を施しました。
その後はyumでPHPをバージョンアップしました。以下のページを参考にしています。
- https://spirits.appirits.com/role/designer/15627/
- https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0
上記の手順通りにすれば問題なかったのですが、mbstringやmysqlndといったPHP拡張モジュールを別の手順でインストールしたら、パッケージはインストールされたけれど、PHP本体へ組み込まれない現象が発生しました。”php -m”を実行しても、一覧に出てこない状況です。間違えた際の手順が残っていないので正確な原因は不明ですが、おそらくリポジトリの指定が不適切で、組み込まれなかったように思います。
そしてWordPressを5.8.2にアップデートしました。管理画面上から実施したかったので、apacheが操作できるようにWordPress配下の所有者を変更しました。ただ、SCP経由でテーマの上書きしたい場合は、普段利用している一般ユーザーに権限が欲しいので、権限管理が悩ましいところであります。777にしちゃえばいいんでしょうけど、何となく嫌です。
さて、ここまで実行した結果、WordPressのダッシュボードは表示されますが、新規投稿画面が真っ白になります。なので、テーマの更新を行ないます。管理画面からはアップデート案内が出ないので、手動でアップデートします。利用しているテーマであるSimplicity2のダウンロードページから、親テーマと子テーマをダウンロードし、”wp-content/themes”配下に上書きコピーしたら完了です。
後は、自作した写真管理システムが動きません。原因はmysql_系関数でした。使用が非推奨とされ、PHP7系ではついに関数自体が削除されたそうです。代替であるmysqli_系関数への置き換えを行ないました。パラメータの順序が変わっている関数もあるので、単純に一発置換はできませんでした。
最後はpukiwikiです。1.5.0と1.5.3で動いているシステムがあるのですが、前者が動かなくなりました。というわけで、pukiwikiのページから差分パッチを順次適用し、1.5.0→1.5.1→1.5.2→1.5.3とアップデートしました。元々1.4.7に差分パッチを適用して1.5.0にしている環境のせいか分かりませんが、幾つかパッチエラーが出ました。それでもpukiwikiは正しく動作するようになったので、良しとします。1.5.1時点で動くようになったみたいです。
というわけで、一通りの作業が完了しました。いつかOSも更新しないと手詰まりになる時が来るんでしょうねえ。移行しやすいように、サーバで稼働しているシステムの棚卸をしておいた方が良さそうです。このサイト自体20年以上動いているので、旧コンテンツはさすがにメンテを放置しています。