2025年現在、さくらインターネットではPHP 8.3が利用可能になっています。私はこれまでPHP 7.3を使っていましたが、セキュリティ面と速度改善を考慮してPHP 8.3にアップデートしました。
しかし、思わぬトラブルに遭遇。WordPressが動かなくなったのです。
現象:ユーザー側ページが「重大なエラー」で真っ白に
PHPのバージョンを8.3に変更後、WordPressの管理画面は問題なく表示されていたのですが、ユーザーがアクセスするページに限って以下のエラーが表示されました。
このサイトで重大なエラーが発生しました。
WordPress のトラブルシューティングについてはこちらをご覧ください。
原因を探るために wp-config.php にデバッグコードを追加
WordPressがなぜ落ちているのか調査するため、wp-config.php
に以下のコードを追記し、エラーを画面に表示させるようにしました。
define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', true);
すると、詳細なエラーが画面に出るようになりました。
原因は wp-social-bookmarking-light プラグイン
画面に表示されたエラーは以下の通り:
Deprecated: realpath(): Passing null to parameter #1 ($path) of type string is deprecated
in /wp-content/plugins/wp-social-bookmarking-light/vendor/twig/twig/lib/Twig/Loader/Filesystem.php on line XX
このエラーが大量に出ており、PHP 8.3の仕様変更に対してプラグイン側のTwigライブラリが古すぎることが原因でした。
対処法:プラグインを無効化したら直った
問題となっていた wp-social-bookmarking-light
プラグインを無効化したところ、サイトは正常に動作するようになりました。
無効化の手順(FTPなどで対応)
wp-content/plugins/
にアクセスwp-social-bookmarking-light
フォルダをwp-social-bookmarking-light_old
などにリネーム- ブラウザでサイトを再読み込みして確認
結論と教訓
- WordPress本体や管理画面が動いていても、表示系のプラグインがPHPバージョンに対応していないとユーザー向けページが落ちる
- PHP 8.3では古いライブラリの非推奨関数が原因でエラーになるケースが多い
wp-social-bookmarking-light
のような古いプラグインはメンテナンスされておらず、今後の運用には不安が残る
今後の対応方針
wp-social-bookmarking-light
の代替として、現在は以下のプラグインが人気・安定しています:
- AddToAny Share Buttons
- Sassy Social Share
- Shared Counts
これらはPHP 8.3対応済みで、機能面・表示速度の面でもおすすめです。
最後に
PHPのバージョンを上げる際には、一部プラグインが原因でサイトが落ちるリスクがあるため、事前にローカル環境やステージング環境でテストすることを強くおすすめします。