PHPファイルが保存できない
WordPressでfunctions.phpなどのPHPファイルを更新しようとした際、「致命的なエラーをチェックするためにサイトと通信できないため、PHPの変更は取り消されました。SFTPを使うなど、他の手段で PHP ファイルの変更をアップロードする必要があります。」というエラーが表示されて、変更を保存することができないことがあります。
WordPressのバージョンが古い(5.4以下)場合はバグとして存在するらしく、5.5以上にバージョンを上げることで改善するはずなのですが、今回私の場合は「6.2.2」で症状が発生しました。
こういう謎エラー本当にやめて欲しい・・・
ネットを色々調べて、解決法をいくつか見つけたので挙げていきます。
1.ベーシック認証を外す
私の場合はこれが原因でした。
どうやらWordPressはPHPファイル更新の際、自身のサイトにアクセスしてなんやかんやしているらしく、自サイトへのアクセスが阻害されることで表題のエラーが出るようです。
「テスト環境にはベーシック認証をかけておこう!」と思ったのが仇になったようでした。
2.プラグインを停止してみる
前述の通り自サイトへのアクセス阻害が原因になるので、プラグインが悪さをしている場合もあるようです。
怪しいプラグインを一つずつ無効化して切り分けしていきましょう。
なお以下のプラグインが原因になっていたケースが確認できました。
SiteGuard WP Plugin
このプラグインが入っている場合、「管理ページアクセス制限」がONになっている場合に表題のエラーが出るようです。
またWAF(Web Application Firewallの略:セキュリティ対策用のファイアウォールです)が原因になるケースもあるようなので、「WAFチューニングサポート」のON・OFFも併せてチェックした方が良さそうです。
Password Protected
このプラグインについても、「許可する権限」で「管理者を許可する」にチェックが入っていないとエラーが出るようです。
3..htaccessでアクセス制限を掛けていないかチェックする
.htaccessでIP制限などしている場合は、自サイトへのアクセス阻害になってエラーが出る用です。
4.サーバのWAFを無効にする
レンタルサーバ自体のWAF機能がONになっていると、表題のエラーが出ることがあるようです。
レンタルサーバ各社のコントロールパネルにアクセスし、WAF設定を確認しましょう。
上記で大抵の場合は改善するかと思います。
「file.phpを修正する」という情報もありましたが、これは恐らくWordPressのバージョンが古い場合だけかと思います。
WordPressさんももうちょっと具体的に「何がダメ!」ってエラーに表示してくれたらいいんですけどね・・・。