サーバーから頻繁に「Wordpressで使ってるデータベースのバージョンをアップして欲しい」とメールが来ていたので連休中になんとかしました。
多分MySQLを自発的にバージョンアップしたことがなかった(このブログ2008年にWP移行してその後一度5.1に上がっているみたいなので一度はアップデートされてるんだけど、たぶんそれはサーバー側の強制アップデートだったと思う)んですけど、今はさくらのコントロールパネルから自動的にデータをバージョンアップしたサーバーの方にコピーしてくれるらしいです。以前そのへんは手動だったようなので、かなり手軽になった気がします。いややったことないのでわかりませんが。
公式サイトにやり方まで載せてくれているので余程の事がなければ間違えない……のですが例によって少し詰まったので自分用にメモを残しておきます。
一番上の「アップグレード設定」のボタンを押すと最新版でないMySQLを使用しているデータベースサーバーのリストが表示され、そこからアップグレードを行うサーバーを選ぶことになります。すぐにアップデートされるわけではなく、指定されたタイミングの中からアップグレードを行う時間を指定する形。この処理をしたタイミングの状態のデータベースが新しい方にコピーされるので、終わるまでブログの更新は行わないようにする。(その他、コピーするに当たりサーバー容量が足りてるか等のチェック項目があるのでそちらも確認)
アップグレードが完了すると以前のデータベースサーバーはそのままで、画像下のmysql57〜のサーバーにデータベースがコピーされる。この状態だとWPは以前のMySQL5.1のデータベースを参照しているので、wp-config.phpの設定を修正する必要がある。
さくらインターネットの公式解説だと
多分MySQLを自発的にバージョンアップしたことがなかった(このブログ2008年にWP移行してその後一度5.1に上がっているみたいなので一度はアップデートされてるんだけど、たぶんそれはサーバー側の強制アップデートだったと思う)んですけど、今はさくらのコントロールパネルから自動的にデータをバージョンアップしたサーバーの方にコピーしてくれるらしいです。以前そのへんは手動だったようなので、かなり手軽になった気がします。いややったことないのでわかりませんが。
こちらのマニュアルでは、データベースアップグレード機能についてご案内しています。コントロールパネルからの操作により、指定した日時に対象のデータベースを現在提供中のバージョンへ簡単にコピーを行う機能です。前提条件ウェブアプリケーションの設定変更はお客様自身で行っていただく必要があり
公式サイトにやり方まで載せてくれているので余程の事がなければ間違えない……のですが例によって少し詰まったので自分用にメモを残しておきます。
さくらインターネットでMySQLをアップグレードする
一番上の「アップグレード設定」のボタンを押すと最新版でないMySQLを使用しているデータベースサーバーのリストが表示され、そこからアップグレードを行うサーバーを選ぶことになります。すぐにアップデートされるわけではなく、指定されたタイミングの中からアップグレードを行う時間を指定する形。この処理をしたタイミングの状態のデータベースが新しい方にコピーされるので、終わるまでブログの更新は行わないようにする。(その他、コピーするに当たりサーバー容量が足りてるか等のチェック項目があるのでそちらも確認)
アップグレードが完了すると以前のデータベースサーバーはそのままで、画像下のmysql57〜のサーバーにデータベースがコピーされる。この状態だとWPは以前のMySQL5.1のデータベースを参照しているので、wp-config.phpの設定を修正する必要がある。
さくらインターネットの公式解説だと
/** MySQL のホスト名 */
define(‘DB_HOST’,’mysql57.アカウント名.sakura.ne.jp‘);
となっているのですが、このサーバー名を指定するとエラーが出る。おかしいな、とおもって色々試してみた所、mysql57〜の下の行に薄いグレーで書かれているmysql○○○.db.sakura.ne.jpという部分を入れたら動きました。
↑こっち。
また、私の場合別のスクリプトでMySQL5.7のデータベースを既に使用していたため、パスワードも書き換える必要がありました。(MySQL5.7のデータベース全体で同じパスワードを共有するらしい)
調べてみた所、『Post-Plugin Library』という『Similar Posts』を呼び出すために使われているプラグインが10年以上更新されておらず、PHP7.2での仕様変更に対応できていないらしい。count関数の中身が0だとエラーを吐くようになったとかなんとか。
解説記事を見ても解らず、途方にくれたりTwitterのフォロワーに修正の仕方を教えてもらったりしていたのですが、最終的に判明したのがこれでした。
↑こっち。
また、私の場合別のスクリプトでMySQL5.7のデータベースを既に使用していたため、パスワードも書き換える必要がありました。(MySQL5.7のデータベース全体で同じパスワードを共有するらしい)
PHPを7.4.15にアップグレード+サイトヘルスチェック
ついでなので放置していたPHPもアップグレードすることに。ついでにずっと出っぱなしだったサイトヘルスチェックもちゃんと確認することに。(1)「Similar Posts」でエラー
PHPのバージョンアップは概ね問題がなかった(アップグレード自体は「スクリプト設定」>「言語のバージョン設定」から可能)のですが、『Similar Posts』を使った関連記事の表示の一部にエラー(概ね表示されているけれど関連作品なしの時にエラーが出る)調べてみた所、『Post-Plugin Library』という『Similar Posts』を呼び出すために使われているプラグインが10年以上更新されておらず、PHP7.2での仕様変更に対応できていないらしい。count関数の中身が0だとエラーを吐くようになったとかなんとか。
最近、開発環境のPHPのバージョンを5.6→7.2に変更しました。PHP5.6 + CakePHP3 + Apache2.2のECサービスからAMP並のTTFBを実現するまでこちらの記事にあるよ…
解説記事を見ても解らず、途方にくれたりTwitterのフォロワーに修正の仕方を教えてもらったりしていたのですが、最終的に判明したのがこれでした。
ほんとだPost-Plugin Library無効化しても普通に動いてる…ってこれかーーー!!!????5年も前………!? pic.twitter.com/e4RVpCGIs9
— うらら (@urarai) May 1, 2021
『Similar Posts』、5年も前から『Post-Plugin Library』不要になってた!!!
というわけで該当するプラグインを削除して解決しました。……いやでも、必要なくなったんなら必要なくなったってもうちょっとわかりやすく教えてほしいかった…いや書いてあっても英語だから気づかなかった可能性が高いんですが…。
検索すると2017年位に断続的に記事の最後の方までちゃんと読むと「必要なくなったらしいですよ」って内容の記事が出てくるには出てくるんですけど。
(2)「バックグラウンド更新が想定通りに動作していません」
続いてヘルスチェック。詳しく見ると“AUTOMATIC_UPDATER_DISABLED 定数は定義され有効化されています。”という文章が入っていました。「wp-config.php」を確認すると、WPの自動バージョンアップを停止するための命令が引っかかっているらしい。
エディタがGutenbergに変わった時に慌てて入れた構文だったような気がする……取り急ぎコメントアウトして様子見。
(3)「夏時間 (dst)は、サイトで使用や表示する時刻に影響する場合があり〜」
こちらはタイムゾーンの設定を「 UTC (協定世界時) 」で指定していると出るらしい。日本はサマータイムが出ないので関係ないな…と思ったけど特に拘る部分でもないので一般設定のタイムゾーンを「UTC+9」から「東京」に変更。(4)「オプションのモジュール imagick がインストールされていないか〜」
エラー文そのままで検索したらさくらインターネットの場合は自分でphp.iniに構文を追加する必要があるらしいです。WordPressで「一つ以上の推奨モジュールが存在しません」「警告 オプションのモジュール imagick がインストールされていないか、無効化されています」と表示された場合の解決方法を紹介します。 初心者でも3分で解決出来る手順です。
あとは使っていないプラグインを削除したりテーマを削除したり。不要なテーマを〜の警告は最初にインストールされている公式のtwenty系は残しておいていいんですね。3年位念の為で残しておいた旧デザイン(子テーマも入れずに作ったせいでアップデートもされてないsandboxテーマ)をこの機会に削除しましたこれまでありがとうございました。