open_basedir 制限エラーの修正方法

無料の WP STAGING plugin で Staging サイトを作成すると、PHP が open_basedir 制限のエラーで処理を停止することがあります。このメッセージは、PHP が固定されたディレクトリのリスト内でのみ読み書きするように設定されており、WP STAGING が Staging コピーを構築しようとしているフォルダがそのリストに含まれていないことを意味します。解決するには、php.ini ファイル(または Hosting の PHP 設定)の open_basedir 行に WordPress のディレクトリを追加し、PHP を再起動します。本記事では、PHP が実際に読み込むファイルを見つける方法、それを安全に編集する方法、そしてエラーが解消しない場合に確認すべき点を解説します。

注意: WP Staging Pro で既定の Staging サイトを作成しようとしてこのエラーが発生する場合は、詳細設定 を使って「wp-content」のサブフォルダ内に Staging サイトを作成できます。そうすれば、ここから先は読まなくても問題ありません。

open_basedir 制限エラーの見え方

open_basedir は、ファイルアクセスを承認済みのディレクトリのリストに限定する PHP のセキュリティ設定です。WP STAGING を含む任意のスクリプトがそのリスト外のパスにアクセスしようとすると、PHP はそれを拒否し、警告をログに記録します。サーバーや WordPress のデバッグログでは、通常次のように表示されます。

Warning: open_basedir restriction in effect.
File(/var/www/html/staging) is not within the allowed path(s):
(/var/www/html/) in /var/www/html/... on line ...

WP STAGING が bootstrap ファイルを読み込めなかったというメッセージで、その原因の一つとして open_basedir を挙げている場合に、このページにたどり着くこともあります。どちらも同じ根本的な問題を指しています。WP STAGING が必要とするディレクトリが、許可されたパスの外にあるということです。メッセージに表示される正確なファイルパスから、どのディレクトリを許可リストに追加すべきかがわかります。

なぜ open_basedir が WP STAGING をブロックするのか

open_basedir ディレクティブは php.ini ファイルで設定され、PHP のファイルアクセスを指定したディレクトリに制限します。既定では、WP STAGING は WordPress ルートのサブディレクトリに Staging サイトを作成します。そのルート、または書き込もうとするサブディレクトリが open_basedir でカバーされていない場合、PHP は書き込みをブロックし、Staging サイトを作成できません。WordPress のディレクトリを許可リストに追加すれば、セキュリティ設定をオフにすることなくブロックが解除されます。

open_basedir 制限エラーの修正方法

open_basedir 制限のエラーを解決し、WP STAGING で Staging サイトを正常に作成するには、以下の手順を順番に実行してください。

ステップ 1: PHP が実際に読み込む php.ini ファイルを見つける

php.ini ファイルは PHP の設定ファイルで、その場所は Hosting 環境によって異なります。サーバーには複数の php.ini が存在することがあり、間違ったファイルを編集してしまうことが、修正しても何も変わらないように見える最も一般的な原因です。実際に有効になっているファイルを見つけるには、WordPress ルートに次の内容の phpinfo.php という小さなファイルを作成し、ブラウザで開いて Loaded Configuration File の値を確認します。

<?php phpinfo(); ?>

シェルアクセスがある場合は、php --ini でコマンドラインから同じパスを表示できます。パスがわかったら、サーバーの詳細が露出するため phpinfo.php ファイルは削除してください。php.ini をまったく見つけられない、または編集できない場合は、下記の php.ini に直接アクセスできない Hosting についてのセクションに進んでください。

ステップ 2: open_basedir ディレクティブを変更する

php.ini ファイルを見つけたら、Staging サイトを作成したいディレクトリを含めるように編集します。php.ini ファイルをテキストエディタで開き、open_basedir で始まる行を探してください。WordPress ルートディレクトリ(およびそのサブディレクトリ)への完全パスを、既存のリストに追加します。複数のパスは、Linux ではコロン :、Windows ではセミコロン ; で区切ります。

たとえば、WordPress が /var/www/html/wordpress にインストールされており、php.ini の open_basedir 設定行が次のようになっている場合、

ShellScript
open_basedir = "/var/www/html/"

これを WordPress のディレクトリを含むように修正する必要があります。

ShellScript
open_basedir = "/var/www/html/:/var/www/html/wordpress/"

すでに存在していたパスは残してください。既存のパスを削除して空きを作ると、そのパスに依存するサイトの他の部分が動作しなくなる可能性があります。

ステップ 3: ウェブサーバーまたは PHP-FPM を再起動する

php.ini ファイルの変更を保存した後、変更を反映させるために PHP を再起動する必要があります。サイトが Apache の組み込みモジュールを通じて PHP を実行している場合は、Apache を再起動するだけで十分です。PHP-FPM(Nginx や多くのマネージド Hosting で一般的)で実行している場合は、ウェブサーバーだけでなく PHP-FPM サービスも再起動する必要があります。そうしないと、古い設定がメモリに残ったままになります。正確な再起動コマンドについては、Hosting コントロールパネルまたは Hosting プロバイダのドキュメントを参照してください。

ステップ 4: Staging サイトの作成を再試行する

PHP の再起動後、WP STAGING で Staging サイトの作成を再度試してください。open_basedir 制限のエラーは解消され、作成処理が問題なく進むはずです。新しい設定が有効になっていることを確認するには、ステップ 1 の phpinfo() ページを再読み込みし、open_basedir の値に WordPress のディレクトリが含まれていることを確認してください。

php.ini を直接編集できない場合

共有 Hosting やマネージド Hosting では、php.ini に直接アクセスできないことがよくあります。その場合は、Hosting コントロールパネルの PHP 設定パネル(たとえば cPanel の「MultiPHP INI Editor」や「Select PHP Version」画面)を探して open_basedir を設定するか、Hosting プロバイダに WordPress のパスを許可リストに追加してもらうよう依頼してください。サーバー設定をまったく触りたくない場合は、この記事の冒頭の注意にあるとおり、WP STAGING は既に書き込み可能なフォルダ内に Staging サイトを構築できます。

open_basedir エラーがまだ表示される場合

php.ini を編集して PHP を再起動してもエラーが解消しない場合は、次のよくある原因を順に確認してください。

  • PHP が読み込まない php.ini を編集した。ステップ 1 の Loaded Configuration File を再確認し、その正確なファイルを編集してください。
  • ウェブサーバーは再起動したが PHP-FPM は再起動していない。PHP-FPM サービスも再起動してください。
  • パスの区切り文字が間違っている。Linux ではコロン、Windows ではセミコロンを使用し、末尾に空のエントリを伴う区切り文字を残さないでください。
  • Hosting が open_basedir を一元的に強制しており、変更が無視される。サポートに連絡し、パスを追加してもらってください。
  • 手っ取り早い方法として、WP STAGING の詳細設定を使い、既に書き込み可能な wp-content のサブフォルダ内に Staging サイトを作成してください。

まとめ

open_basedir 制限は重要なセキュリティ機能ですが、WordPress サイトの Staging 環境の作成といった正当な処理を妨げることもあります。PHP が実際に読み込む php.ini ファイルを編集し、WordPress のディレクトリを許可リストに追加して PHP を再起動すれば、サーバーのセキュリティを弱めることなくエラーを解消できます。変更前には必ず php.ini ファイルの Backup を取り、自分で編集することに不安がある場合は Hosting プロバイダにご相談ください。

関連記事

Updated on 7月 28, 2026

Rene Hermenau

著者: Rene Hermenau

著者について: René Hermenau は WP STAGING の創設者です。WordPress のバックアップ、ステージング、移行、データベース処理、安全なデプロイメントワークフローに取り組んでいます。