WordPress の Failed to Open Stream エラーを解決する方法

要点: 「failed to open stream」エラーは、PHP が見つかると想定していたファイルを読み取ったり開いたりできなかったことを意味します。最も多い原因は、誤ったファイル権限、ファイルの欠落や削除、ホストの open_basedir 制限、またはサイト移行で残ったハードコードされた絶対パスです。下の判定表を使って、あなたの正確なエラーメッセージに対応する対処法へ直接進んでください。

WordPress の 「Failed to Open Stream」 エラーは、サイトが見つかると想定しているファイルを PHP が開けないときに現れます。エラーログに PHP の警告として現れ、ページ・プラグイン・テーマが正しく読み込まれないことがあります。

「WordPress Failed To Open Stream」エラーを理解する

WordPress またはプラグインがファイルパスに対して PHP の fopen()include()require() を呼び出したとき、操作を完了できないと PHP はこのエラーを返します。WordPress 6.7 以降では、WP_DEBUG_LOG が有効なとき、このエラーには通常 wp-content/debug.log 内のスタックトレースが伴います。

エラーの正確な文言は原因によって異なり、サフィックスが何が問題だったかを正確に教えてくれます。

  • failed to open stream: No such file or directory — そのパスにファイルが存在しません。
  • failed to open stream: Permission denied — ファイルは存在しますが、PHP に読み取りアクセス権がありません。
  • failed to open stream: Operation not permitted — サーバーレベルの open_basedir 制限がアクセスを遮断しています。

WordPress で Failed To Open Stream エラーは何が原因か?

この表を使って、あなたの正確なエラーサフィックスを適切な対処法に対応づけてください。

エラーサフィックス 根本原因 進む先
No such file or directory 欠落または削除されたファイル。古いサーバーからハードコードされた絶対パス 方法4または方法6
Permission denied ファイルまたはディレクトリの権限が厳しすぎる 方法1
Operation not permitted ホストの open_basedir 制限 方法5
明確なサフィックスなし/一般的 プラグインまたはテーマの競合 方法2または方法3

よくある根本原因:

  • 誤ったファイル権限: ファイルは 644、ディレクトリは 755 であるべきです。これより厳しい設定は、PHP が必要なファイルを読み取るのを妨げます。
  • プラグインまたはテーマの競合: もはや存在しないパスを参照するプラグインやテーマ、または同じファイルを互換性のない方法で呼び出す2つのプラグイン。
  • 欠落または破損したファイル: 更新中に削除された、あるいは部分的なアップロードで壊れたファイル。
  • open_basedir 制限: 一部のホストは PHP がアクセスできるディレクトリを制限します。許可されたパスの外への fopen()include() の呼び出しは即座に失敗します。
  • 移行後の絶対パスの不一致: サイトが新しいサーバーに移行された場合、データベースに保存された古い絶対パス(例えば /var/www/old-host/wp-content/... を含むプラグインのオプション)により、それを指すすべての require() が新しいサーバーで失敗します。

エラーを克服する6つの効果的な解決策

WP STAGING のサポートで最もよく見る引き金は、誤ったファイル権限、または移行後に古いファイルパスを保持しているプラグインです。上のあなたのエラーサフィックスに合う方法から始めて、そこから進めてください。

方法1:ファイル権限を確認する

WordPress インストール内のファイルは 644、ディレクトリは 755 であるべきです。FTP クライアントやホストのファイルマネージャーを使って、権限を確認・調整できます。WordPress 6.7+ では、サイトヘルス画面(ツール → サイトヘルス → 情報 → ファイルシステムの権限)を使って、予期しないモードのディレクトリを見つけることもできます。

FileZilla のターゲットディレクトリー
FileZilla のターゲットディレクトリー

方法2:プラグインを無効にする

特定のプラグインで問題に遭遇したら、1つずつ無効にして競合を切り分けます。プラグインを無効にすると、サイトの他の部分に影響を与えずに問題のあるものを特定できます。

プラグインを無効にする方法は次のとおりです。

プラグインの無効化

方法3:デフォルトテーマに切り替える

デフォルトの WordPress テーマ(Twenty Twenty-Five など)に切り替えて、テーマ固有のパスエラーを除外します。切り替え後にエラーが消えたら、有効なテーマが問題の原因です。

やり方は次のとおりです。

方法4:WordPress コアファイルを再インストールする

欠落または破損したコアファイルが原因の場合、WordPress コアを再インストールすると、それらがきれいに置き換わります。まずサイトをバックアップし、その後に下の手順に従ってください。

覚えておいてください: いかなる変更にも取りかかる前に、WordPress サイト全体のバックアップを作成することが極めて重要です。このバックアップにより、すべてのファイルとデータベースのコピーが手元に確保され、再インストール処理中に何か問題が起きた場合の安全網になります。

WordPress コアファイルを再インストールするための重要な準備

WordPress コアファイルを再インストールしてサイトの制御を取り戻すには、次の詳しい手順に従ってください。

手順1:最新の WordPress バージョンをダウンロードする

公式の WordPress サイト(https://wordpress.org)にアクセスし、最新版の WordPress をダウンロードします。インストールパッケージをローカルのコンピューターに保存します。

手順2:WordPress インストールパッケージを展開する

ダウンロードが完了したら、WinRAR や 7-Zip のようなアーカイブツールを使って、WordPress インストールパッケージの中身をコンピューター上に展開します。これで、展開されたファイルを含むフォルダーができます。

手順3:FTP でサイトに接続する

再インストールを進めるには、FTP(File Transfer Protocol)を使ってサイトのサーバーに接続する必要があります。接続の確立には FileZilla のような FTP クライアントを使えます。FTP のログイン情報がすぐに手元にない場合は、ホスティングプロバイダーから取得してください。

FileZilla
手順4:既存の WordPress ファイルを削除する

FTP クライアントのリモートサーバー表示で、WordPress インストールのルートディレクトリーに移動します。「wp-content」フォルダー「wp-config.php」ファイルを除く、すべてのファイルとフォルダーを削除します。この手順により、再インストール処理のためのまっさらな状態が確保されます。

手順5:新しい WordPress ファイルをアップロードする

FTP クライアントのローカル表示で、手順2で展開した WordPress ファイルに移動します。展開したフォルダー内のすべてのファイルとフォルダーを選択し、サーバー上の WordPress インストールのルートディレクトリーへアップロードします。この処理は、インターネット接続の速度によっては少々時間がかかることがあります。

手順6:WordPress のインストールスクリプトを実行する

ファイル転送が完了したら、Web ブラウザーを開いて自分の WordPress サイトにアクセスします。WordPress のインストールスクリプトが表示されます。指示に従って、データベース設定を構成し、管理者アカウントを作成して、インストール処理を完了します。

手順7:確認とテスト

インストール後、WordPress ダッシュボードにログインし、サイトのすべてのコンテンツ・テーマ・プラグインが無事か確認します。さまざまな機能をテストして、すべてがスムーズに動作することを確かめてください。

方法5:open_basedir 制限を解決する

一部の Web ホストは、open_basedir ディレクティブを使って PHP がアクセスできるファイルシステムのディレクトリを制限します。プラグインや WordPress コアが許可されたパスの外のファイルを開こうとすると、ファイル権限が正しいかどうかに関係なく、PHP は failed to open stream: Operation not permitted を発生させます。

直し方:

  1. ホストに連絡し、PHP が到達しようとしているパスを含むよう open_basedir の設定を広げてもらうよう依頼します。エラーログから正確なパスを伝えてください。
  2. ファイルを移動しopen_basedir がすでに許可しているパスに置きます——たとえば、カスタムスクリプトを Web ルートより上のディレクトリではなく wp-content/ に移します。
  3. 自分でサーバーを管理している場合は、php.ini または vhost ごとの設定で open_basedir ディレクティブを編集し、PHP-FPM を再起動します。

方法6:サイト移行後の絶対パスの不一致を修正する

最近 WordPress サイトを新しいサーバーやホスティングプロバイダーに移行した場合、データベースに保存された古い絶対パスがこのエラーを引き起こすことがあります。プラグインがインストール時にファイルパスを保存していることがあり——たとえば /var/www/old-host/wp-content/...——そのパスを指すすべての require()fopen() は、そのディレクトリがもうそこに存在しないため、新しいサーバーで失敗します。

直し方:

  1. デバッグログを有効にします。wp-config.phpdefine('WP_DEBUG', true); define('WP_DEBUG_LOG', true); を追加します。wp-content/debug.log を読んで、PHP が開こうとしている正確な古いパスを見つけます。
  2. 検索置換ツールを使って、データベース全体で保存されたパスを更新します。WP-CLI(多くのマネージドホストで利用可能)では次を実行できます:wp search-replace '/old/absolute/path' '/new/absolute/path' --all-tables。まずステージングのコピーで実行してください。
  3. 置換後はオブジェクトキャッシュをすべてフラッシュして、古いパスを含むキャッシュ済みの値が消去されるようにします。

どの対処法もうまくいかない場合の対応

6つの方法をすべて試してもエラーが続く場合は、このチェックリストを進めてください。

  1. debug.log のエラー行全体を読む — PHP が開こうとしたパスが、どの方法を再試行すべきかを教えてくれます。wp-content/plugins/ 内のパスは方法2を、存在しないディレクトリを指すパスは方法6を示します。
  2. すべてのプラグインを一度に無効にする — 1つずつではありません。エラーが止まったら、ペアで再有効化して競合をより早く絞り込みます。
  3. デフォルトテーマに切り替える — まだなら、Twenty Twenty-Five に切り替えてテーマを原因から除外します。
  4. ホストに尋ねるdebug.log の正確なエラー行を伝えます。ホストは、open_basedir ポリシーやサーバー側の権限変更が原因かどうかを確認できます。
  5. バックアップから復元する — エラーが更新や構成変更の後に始まった場合、WP STAGING の復元ワークフローを使い、根本原因を調べている間、最後に動作していた状態に巻き戻します。

まとめ

「WordPress Failed to Open Stream Error」 を解決するには、wp-content/debug.log でエラーサフィックスを特定し、対応する対処を適用します:ファイル権限を確認する(方法1)、競合するプラグインを無効にする(方法2)、テーマを切り替える(方法3)、コアファイルを再インストールする(方法4)、open_basedir 制限を解決する(方法5)、または移行後の絶対パスの不一致を修正する(方法6)。変更を加える前に、必ずバックアップを作成してください。WP STAGING を無料で試す

関連記事