クライアントのサーバー保守をしてるとPHP7.3までのサーバー以外と多いんですよね。
現時点で、wordpressのPHP対応バージョンはPHP7.4からが奨励になっており、PHP7.3で使えなくなるプラグインが出てくる
のがわかったのでPHP8に移行しました。
PHP8にするとコードのエラーが増える
PHP8にすると今まで動いてたコードでエラーが表示されるようになり書き換える必要が出てきます。
ま、これはエラー内容で調べてコードを書き換えて対応できたんですよ。
touchがサーバーで使えないという絶望
で、辛かったのが、
CRITICAL Uncaught Error: Call to undefined function touch()
と表示されて、プラグインが動かなかった時。
phpinfo()で調べたらtouchがdisable_functionsになってました。
touch()使えないとプラグインがエラーで動かないやんってことで、サーバー会社に問い合わせ。
すると、セキュリティ対策のため、touchは使えるようにできないという回答。
エラー直すためにどうしたらいいのか絶望したよね
touchがサーバーで使えないときにした対応
「touchの代わりになる関数教えて」とAIのbardに聞いて、functions.phpに下記のコードを入れて対応しました。
if (!function_exists('touch')) { function touch($file) { $handle = fopen($file, 'w'); fwrite($handle, ''); fclose($handle); }
}
終わりに
wordpressをPHP7からPHP8に対応するのは時間がかかるので早めに対応した方がいいですぜ。
PHP8が使えないサーバーは引っ越す必要があるのでなおさら。
引っ越さないとハッキングされて、なるはや対応させられる地獄で、泣きをみる未来がうっすら見えますね〜。