
今年に入ってある日プラグインやテーマなどの更新作業などをしていたところサイトが表示されなくなってしまった。
Safariでは画面真っ白。辛うじて開発者モードで500errorであることがわかる。
「Failed to load resource: the server responded with a status of 500 ()」
原因と解決方法の結論からいうと、表示非表示になってしまうのはAll in One SEOを有効化無効化を切り替えたタイミングで500エラーとなり、phpメモリの設定変更をすることで自分の場合は無事表示されることになった。
解決に至るまでの流れ
エラー発生時safariの他のブラウザでは真っ黒になったり、原因を探るため試行錯誤してるうちにやはりプラグインの更新のタイミングだろうということで干渉しているのか、有効化無効化を繰り返してサイトの表示非表示の閾値を探る。
するとどうやらAll in One SEOを無効化するとサイトが通常表示されることがわかった。原因と解決方法を探っていくと似たQAは存在するものの続きを彼らの公式HP内で移動して行われたりとピンとくるものがなく決め手にかけた。
ベタな解決策としてWPのバージョンやPHPのバージョン変更などはあるものの当時の最新版かもしくは比較的新しいバージョン、推奨とされるレベルのものをつかっている自分のケースには当てはまらなかった。
で、探しているとプラグインではなくWordPressがそもそも500エラーになる時の要因として
- 不適切なプラグイン
- テーマの問題
- PHPメモリ不足
- 不適切な.htaccessファイル
- データベース接続エラー
- PHPバージョンの互換性
- ファイルのアップロード制限
- パーミッションの問題
- サーバーの障害
- WordPressのコアファイルの破損
などが挙げられる。そのうち、All in One SEOでもPHPメモリについて言及しているスレッドがあったなあということで試すことにした。
ただ、ロリポップの管理画面でphp設定画面ではメモリを直接変える項目はない。
そこでphp.iniの変更可能項目のうち「php_value, php_flag」をONにする。
そして該当WordPressのhtaccessファイルに以下を追記。
#php_value, php_flagをonにし、以下設定
php_value memory_limit 256M
他にも設定が可能。
参照:https://pasonal.com/lolipop-phpini-limit-customize/
アップデートの初期不良やphpバージョン変更などで最近バタバタしてるようだったので少し様子見をすることにしていたけれど実際のところはphp・サーバー側の設定が関係しておりそれらとは関係がなかった。
プラグイン間の干渉など使用を疑問視する声も少し増えているもののなんだかんだ便利でもある。
日本語ではあまりなかった情報なのと、新しめの情報がなかったのでもし他にお困りの方がいた場合念の為メモ。