KUSANAGI 9 + PHP8のWordPress設定時にDB接続でエラーが発生してハマったけどAshleyが助けてくれた
KUSANAGI 9が提供されたと聞いて
諸事情から開店休業状態だったブログを書く必要が出てきたので、久々にConoHa VPSを覗いたところ、どうやらKUSANAGI 9が提供され始めたようでした。
どうせブログの記事もないし、環境初期化して入れてみるかと思い、入れました。
やるなら全部最新版っていうことで、nginx1.21 + PHP8.1 + MariaDB 10.5という陣容で導入。
途中までは順調でした。この手順までは。
情報が少なすぎるエラー
上の手順で言うところの2番で、プロビジョニング時に使ったデータを利用していざ送信、としたところで、以下が表示されました。
(゜ホ ゜)...
nginxのログを見てみる
しばし画面の前で固まったのち、入力ミスったかなーと思って何回も試しますが一向に無理。
ということでnginxのログをとりあえず見てみることに。
ログが/var/log
になくて/home/kusanagi/<プロファイル名>/log/nginx
にあるという罠に多少げんにょりしながらも見てみると
[error] 30717#0: *17 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught mysqli_sql_exception: Unknown column 'wp_' in 'field list' in /home/kusanagi/hoge/DocumentRoot/wp-includes/wp-db.php:2056
なるほど...わからん。
ログを元にググる
ログを元にげんにょりしながらググってみると、なんととれたてほやほやのStackOverflowが。
そしてAshleyの、この解答。
wp-includes/wp-db.phpの1630行目の次の行に
mysqli_report(MYSQLI_REPORT_OFF);
を足せばいけるよ。
なるほど...やってみよう。
そして
ということで、ダメ元でAshleyを信用して言われた通りに編集しました。
(略)
1630 if ( $this->use_mysqli ) {
1631 mysqli_report(MYSQLI_REPORT_OFF);
1632 $this->dbh = mysqli_init();
(略)
結果...
きたーーーー!!!
からの...
Thank you Ashleeeeeeeeeeeeeeeeey!!!!!!!!!
...だがこんなやり方で後々歪みが発生しないか微妙に心配。
AshleyはWordPress5.9で実装される内容から安心やでとは言っているものの、試す方は自己責任で。
結論
stackoverflowは神域。
Ashleyは神。
KUSANAGIさんはお外でバケツ持って反省してください。(8.1使えるっていうからさー...)
Discussion