
PHPを7.4から8.3に上げ、WordPress本体とプラグインもまとめて更新したら、トップページも管理画面も「500エラー」。直そうと手を動かすうちに、今度は「403 Error」に変わった。この記事は、いまちょうどその状態にいるWordPressサイトの持ち主に向けて、どこから確かめれば元に戻せるかを順に書いたものです。
題材にしたのは、WordPress日本語フォーラムに寄せられた相談です(2026年11月2日にエラーが発生したと書かれています)。相談者はロリポップを使っていて、上に書いたとおりの順番で更新し、500エラーが出たあと、いろいろ試すうちに403エラーになりました。回答者は、原因の見立てと戻し方の方向を短く示しています。この記事はその2つの投稿と、WordPress公式・ロリポップ公式の資料だけをもとに組み立てています。
いま出ている403エラーは、最初の500エラーと同じ問題なのか
別の問題が上に重なっている、と考えたほうが早く片付きます。 500と403は、サーバーが「なぜ表示できないか」を伝える番号で、意味がまったく違うからです。
500は「プログラムが途中で止まった」、403は「サーバーが見せるのを断った」
500エラー(Internal Server Error)は、ページを作るプログラムが途中で動けなくなったときに出ます。WordPressの場合、テーマやプラグインが新しいPHPに対応しておらず止まる、というのが典型です。PHPは、WordPressを動かしているプログラムの言語のことです。
403エラー(Forbidden、アクセス禁止)は性質が違います。プログラムが動く前の段階で、サーバーが「このファイルは見せられない」と断っている状態です。原因としては主に、ファイルに付いている読み書きの許可(パーミッション)や、ファイルの持ち主(所有者)、.htaccess の中身が考えられます。.htaccess は、サイトのフォルダに置く「サーバーへの指示書」のような小さなファイルです。
つまり、500の原因を探す前に、まず403を消す必要があります。403が出ているあいだは、WordPressがそもそも動いていないので、プラグインを止めてもPHPを戻しても画面は変わらないことが多いです。
相談の中で、500から403に変わるまでに何をしたか
フォーラムの相談者が試したことを、順番に並べると次のとおりです。
| 順番 | したこと | 結果 |
|---|---|---|
| 1 | PHPを7.4から8.3(モジュール版)へ変更 | — |
| 2 | WordPress本体を最新版へ更新 | — |
| 3 | プラグインを更新 | トップと管理画面が500エラー |
| 4 | バックアップのWordPress本体ファイルをFTPで上書き | 改善せず |
| 5 | プラグインとテーマ(Cocoon)のフォルダ名を変えて停止 | 改善せず |
| 6 | PHPを7.4(CGI版)に戻す | 改善せず |
| 7 | .htaccess の名前を変える | 404エラーになったので元に戻す |
| 8 | データベースのパスワードを変え、wp-config.php も更新 | 改善せず |
| 9 | wp-config.php にデバッグ設定を追加 | debug.log が作られない |
| 10 | サーバーのサポートの案内で .htaccess を744から604へ | 403エラーに変わる |
「モジュール版」「CGI版」は、サーバーがPHPを動かすやり方の違いです。FTPは、パソコンからサーバーへファイルを送る仕組みのことです。

回答者が注目したのは4番です。バックアップから戻しても直らなかったのは、FTPで上げたファイルのオーナー(所有者)・グループ・パーミッションが、Webサーバーに合わない状態になったためではないか、と書いています。そして、戻したあとにそれらを直せば、ひとまず元に戻せるかもしれない、とも。

バックアップから戻したのに、どうして余計に悪くなるんですか?
中身は前と同じファイルのはずなのに。

中身は同じでも、ファイルに付いている「誰のものか」「誰が読めるか」の札が変わることがあります。
フォーラムの回答者も、そこがずれたのではと見ています。
403エラーを消すには、どこから確かめればよいのか
パーミッション、所有者、.htaccess の3つを、この順で確かめます。 どれもFTPソフトか、サーバー会社のファイル管理画面(ロリポップなら「ロリポップ!FTP」)から見られます。
フォルダとファイルのパーミッションを、サーバーの指定値に揃える
パーミッションは「705」「604」のような3桁の数字で表され、持ち主・同じグループ・それ以外の人それぞれが、読めるか・書けるか・実行できるかを示します。この数字はサーバー会社ごとに推奨値が違うのが厄介なところです。
| 対象 | ロリポップの推奨 | WordPress公式の目安(共有サーバーのうち suexec 方式の環境) |
|---|---|---|
| フォルダ(ディレクトリ) | 705 | 755 または 750 |
| HTML・画像などのファイル | 604 | 644 または 640 |
.htaccess | 604 | 644 |
wp-config.php | (表に記載なし) | 440 または 400 |
ロリポップでは、同社のマニュアルにある推奨値に合わせます。ほかのサーバー会社なら、その会社のマニュアルで「パーミッション」を調べてください。
見る場所は次のとおりです。
- FTPソフトかロリポップ!FTPで、サイトのフォルダを開く
- 一覧の「属性」や「パーミッション」の列で、フォルダが705、
.htaccessが604になっているかを見る wp-admin、wp-includes、wp-contentのフォルダも同じように見る。フォルダに「実行」の許可が無いと、中のファイルが見えなくなり403の原因になる- 違う数字があれば、右クリックの「属性の変更」などから推奨値へ直す
- 1つ直すたびに、ブラウザでトップページを開き直して変化を見る
PHPのファイルに付けるべき値は、ロリポップの表に専用の行がありません。迷ったら、変える前にサポートへ確かめたほうが安全です。

FTPで上書きしたファイルの「所有者」がずれていないか確かめる
所有者は、そのファイルが「どのアカウントのものか」という情報です。WordPress公式の資料は、共有サーバーではファイルを自分のFTPアカウントの持ち物にしておき、サイトを表示するサーバーのプログラム自身の持ち物にはしない、と書いています。
FTPソフトによっては、一覧に「所有者」「グループ」の列を出せます。上書きしたファイルだけ持ち主が違っていないか、上書きしていないファイルと並べて比べてください。
共有のレンタルサーバーでは、所有者は利用者の側から変えられないことがあります。ここがずれていそうなら、自分で手を出すより、サポートに「FTPで上書きしたあとから403になった。所有者とパーミッションを確認してほしい」と頼むほうが確実です。
.htaccess の中身を、WordPressの標準の記述と見比べる
.htaccess の名前を変えたら404に変わった、というのが相談者の7番です。404は「ページが見つからない」で、.htaccess が無くなったことで、記事のURLをWordPressへ受け渡す指示が消えたためと考えられます。ファイル自体が403の原因かどうかは、中身を見ないと分かりません。
確かめ方です。
.htaccessをパソコンへダウンロードして、控えとして残す- メモ帳などで開き、
# BEGIN WordPressから# END WordPressまでの部分を探す - その部分を、WordPress公式資料に載っている標準の書き方と見比べる
- その外側に、PHPのバージョンを指定する行や、アクセスを制限する行(
DenyやRequireで始まる行)が残っていないかを見る
海外のサーバー会社(VeeroTech)の解説には、PHPのバージョンを強制する .htaccess の行が403のいちばんの原因だと書かれています。PHPを何度も切り替えた今回のような場面では、管理画面での切り替えと .htaccess の古い指定が食い違っている可能性があります。

.htaccess の中身なんて、読んでも分からない気がします……。

全部を理解しなくて大丈夫です。
「BEGIN WordPress」の外に何か書いてあるか、だけ見てください。あれば、その行をサポートに見せれば話が進みます。
403が消えたあと、最初の500エラーの原因はどう突き止めるのか
PHPを「前に動いていた版」に戻し、プラグインとテーマを1つずつ有効にして、どれで止まるかを見ます。 回答者の見立ては、500の原因は「それまでのテーマやプラグインがPHP 8.3では動かなかった」というものでした。
PHPを一度、以前動いていた7.4に戻してから確かめる
相談者は6番でPHPを7.4に戻していますが、それは4番のFTPでの上書きより後です。回答者の見立てどおりなら、上書きで所有者やパーミッションがずれた状態のまま7.4に戻していた可能性があります。403が消えた状態でもう一度、7.4で表示されるかを確かめ直すと、原因の切り分けがやり直せます。
PHPの切り替え方と、切り替える前に控えておく項目は、WordPressのPHPを更新すると壊れる?変更前の確認と、表示されなくなったときの戻し方にまとめてあります。ここでは繰り返しません。
ただし、7.4はPHPを作っている側の更新がすでに終わった古い版です(2022年11月28日にサポート終了)。動くことを確かめたら、そこで止まらず、8.3で動くように中身を入れ替える段階に進みます。
プラグインとテーマは、1つずつ戻してどれで止まるかを見る
フォルダ名を変えて全部止めた状態から、1つずつ元に戻します。
- テーマのフォルダ名を元に戻し、表示されるか見る
- 止まるなら、そのテーマが更新されていない古い版でないかを確かめる
- 表示されたら、プラグインのフォルダを1つだけ元の名前に戻す
- トップページと管理画面を開き直す
- 500になったら、直前に戻したプラグインが原因の候補。名前を控えて、もう一度止める
- 残りのプラグインも同じように1つずつ進める
全部を一度に戻すと、どれが原因か分からなくなります。手間でも1つずつ。管理画面に入れなくなったときの止め方そのものは、WordPressの管理画面にログインできないときに、上から順に試すことにあります。
debug.log が作られなかったのは、WordPressより手前で止まっていた可能性
相談者は、まだ500エラーが出ていた9番の時点で、wp-config.php にデバッグ設定(WP_DEBUG、WP_DEBUG_LOG、WP_DEBUG_DISPLAY)を足しましたが、debug.log は作られませんでした。
これは当方の見方ですが、WordPressの記録が残らなかったということは、500エラーの段階ですでに、WordPressが記録を書き始める前、つまりサーバーやファイルの許可の段階で止まっていた可能性があります。その場合に頼りになるのは、WordPressの記録ではなく、サーバー会社が持っているエラーの記録です。サポートに問い合わせるときに「サーバー側のエラーログを見てほしい」と添えてください。
次にPHPやWordPressを上げるとき、何を変えればよいのか
バックアップを取ってから、1つずつ上げる。 回答者の助言は、ほぼこれに尽きます。
回答者はこう推測しています。相談者は、相当長い期間、PHPもWordPressもテーマもプラグインも更新してこなかったのではないか。その状態で一気に全部を更新すると、どれがトラブルの原因か分からなくなる。だから、最初に「UpdraftPlus: WP Backup & Migration Plugin」などでバックアップを取り、少しずつ進めるのが「しあわせの道」だ、と。UpdraftPlusは、対応するPHPとWordPressのバージョンの幅が広く使いやすい、とも紹介しています。
今回の相談の流れに当てはめた、当方の進め方の例です。WordPress公式の案内も、PHPを上げる前にバックアップを取り、WordPress本体・テーマ・プラグインを更新して動作を確かめてから、PHPに進む順番を示しています。
- バックアップを取る(ファイルとデータベースの両方)
- PHPは上げずに、プラグインとテーマだけを新しくする
- 表示を確かめる
- WordPress本体を上げる
- 表示を確かめる
- 最後にPHPを上げる
- 表示を確かめる
各段階のあいだに「表示を確かめる」を挟むのが要点です。壊れたときに、直前の1手だけを疑えば済みます。WordPressの更新がここ最近立て続けに出ている事情は、WordPressの更新が最近多いのはなぜ?で書きました。更新を溜めるほど、一度に上げる量が増えて今回のようになりやすくなります。

何年も触っていなかったから、まとめて済ませようと思ったんですよ。

気持ちは分かります。ただ、溜まっているほど1つずつのほうが早く終わります。
途中で止まっても、どこまで進んだかが分かるからです。
サーバー会社のサポートには、何を伝えれば話が早いのか
「何をした順番」「いま出ている表示」「いまの設定」の3つを1通にまとめて送ります。 相談者はロリポップのサポートから .htaccess を604にする案内を受けていますが、その直後に403へ変わっています。案内に従ったあと状態が変わったことも含めて伝えてください。伝える材料が揃っているほど、やり取りの回数が減ります。
書いておくと良い項目です。
- エラーが最初に出た日時(例: 2026年11月2日14時45分)
- 更新した順番(PHPの版の変更、本体の更新、プラグインの更新)
- 自分で試したことと、そのたびの結果(上の表のような形で)
- いまのPHPの版と種類(モジュール版かCGI版か)
- いまの
.htaccessのパーミッションの値 - FTPでファイルを上書きしたかどうか
- 頼みたいこと: 「所有者とパーミッションの確認」「サーバー側のエラーログの確認」
ここで大事なのは、自分の推測ではなく、した事実を並べることです。原因の見当はサポートの側でつけてもらえます。
自分で直しきれないときは、どこに頼めばよいのか
ここまで試しても戻らないときは、無理に続けないでください。手を動かすほど、どの変更が効いたのかが分からなくなります。今回の相談も、直そうとした操作が403を呼び込んだ可能性があります。
当方は、こうした更新後の不具合の対応を行っています。ただ、緊急の対応を頼めるようにしておくなら、保守契約は原則として必要だと考えています。スポットの緊急対応も有償でお受けしますが、順番は保守契約をいただいているサイトが先になります。そして多くの場合、壊れてから頼むより、保守契約で定期的に更新しておくほうが安く、安全です。今回のように更新を長く溜めることも起きません。
保守そのものが負担なら、WordPressをやめて静的なサイト(更新の要るプログラムを持たないサイト)へ移す方法もあります。保守には今のうちに入っておくか、静的サイト化を検討しておく。どちらかを決めておくと、次に同じ画面を見ずに済みます。

順番が分かったので、まずはパーミッションの数字から見てみます。
- 表示されないサイトを見てほしい: 不具合・修正対応
- 更新を任せて、溜めないようにしたい: 月額保守
- PHPを上げる前に確かめること: WordPressのPHPを更新すると壊れる?変更前の確認と、表示されなくなったときの戻し方
出典
- WordPress更新後に500エラーが発生し、現在は403エラーになっている(WordPress日本語フォーラム): https://ja.wordpress.org/support/topic/wordpress%e6%9b%b4%e6%96%b0%e5%be%8c%e3%81%ab500%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%8c%e7%99%ba%e7%94%9f%e3%81%97%e3%80%81%e7%8f%be%e5%9c%a8%e3%81%af403%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ab%e3%81%aa/#post-11694696
- パーミッションの設定(ロリポップ!マニュアル): https://lolipop.jp/manual/hp/permission/
- File Permissions(WordPress Advanced Administration Handbook): https://developer.wordpress.org/advanced-administration/server/file-permissions/
- Apache HTTPD / .htaccess(WordPress Advanced Administration Handbook): https://developer.wordpress.org/advanced-administration/server/web-server/httpd/
- (13) Permission Denied(Apache HTTP Server Wiki): https://cwiki.apache.org/confluence/display/HTTPD/13PermissionDenied
- 403 forbidden error what to do if you see this error(VeeroTech): https://www.veerotech.net/kb/403-forbidden-error-what-to-do-if-you-see-this-error/
- Supported Versions(PHP公式): https://www.php.net/supported-versions.php
- Unsupported Branches(PHP公式): https://www.php.net/eol.php
- Get the latest PHP version(WordPress.org): https://wordpress.org/support/update-php/
同じことでお困りでしたら
記事のとおりに進めるのが難しいときは、次のご相談で承っています。
- 修正・トラブル対応表示が崩れた、エラーが出る、フォームが届かない。原因を調査し、直せる形でご報告・修正します。
- 月額保守・管理WordPress本体・プラグインの更新、稼働の確認、軽微な修正、毎月のご報告まで。月々の定額で任せられます。
どれにあたるか分からないときは、ホームページの自己点検(15の質問・2分)で、いまの状態からお確かめいただけます。



