🌟

KUSANAGI 9 + PHP8のWordPress設定時にDB接続でエラーが発生してハマったけどAshleyが助けてくれた

2022/01/23に公開

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が。
https://stackoverflow.com/questions/70087370/unknown-column-wp-in-field-list-when-running-wordpress-on-php-8-1

そして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