Article ID: 432, created on Jan 27, 2012, last review on Apr 5, 2016

  • Applies to:
  • Plesk for Linux/Unix
  • Plesk 11.5 for Windows

原因

このエラーは、PHP スクリプトがアクセスの許可されていないフォルダに対してアクセスを試みたことにより発生します。セキュリティ上の理由から、Parallels Plesk Panel でホストされるドメインの PHP オプションでは、デフォルトで /tmp フォルダと http(s)docs フォルダへのアクセスのみが許可されています。この制約は、PHP 変数 open_basedir で、各ホストに対して個別に設定されています。

解決策

特定のホストから追加のフォルダへの、PHP スクリプトによるアクセスを許可する必要がある場合は、仮想ホストの 'open_basedir' オプションに新しいパス値を設定します。このとき、フォルダ名はコロンで区切ります。(下記参照)

警告:これにより、サーバが悪用されるリスクが生じる可能性があります。設定の変更によりどのような影響が生じるか理解したうえで行ってください。


Parallels Plesk Panel 10.3 およびそれ以降のバージョン:

PP ウェブインターフェースで行います。以下の KB 記事を参照してください。

113861 [Info] Customizing PHP settings for a particular domain in PP 10.3 and later versions


PP 10.3 より前のバージョン:

この作業を実行できるのは、ドメインの vhost.conf ファイルまたは vhost_ssl.conf ファイル(SSL 仮想ホスト)への root 権限を持つユーザに限られます。詳しくは、Parallels Plesk Panel マニュアルの「Including Directives into Configuration File of Web Serve
」を参照してください。

これらの変更を適用後、Apache の構成ファイルを再作成し、以下のシェルコマンドを使用して Apache サービスを再起動します。vhost(_ssl).conf ファイルが見つかったら、ドメインの httpd.include ファイルに自動的に追加されます。

PP 10.x では次のコマンドを試用します。
~# /usr/local/psa/admin/sbin/httpdmng --reconfigure-all


バージョン 9.x およびそれ以前のバージョンでは、次のコマンドを使用します。
~# /usr/local/psa/admin/sbin/websrvmng -a -v


注記:上のコマンドを実行しないと、vhost.conf または vhost_ssl.conf が Apache 構成に追加されず、変更は適用されません。
 

例:

注:HTTPD_VHOSTS_D は、ドメインのロケーションへの実際のパスに置き換える必要があります。このパスは、OS や Parallels Plesk Panel バージョンに応じて異なります。現在の値は /etc/psa/psa.conf ファイルで確認できます。ADD_PATH は、アクセス権限を付与するフォルダの実際のパスに置き換える必要があります。

HTTPD_VHOSTS_D/domain.com/conf/vhost.conf を作成します。 

---8<---

php_admin_value open_basedir HTTPD_VHOSTS_D/domain.com/httpdocs:/tmp:/ADD_PATH


--->8---

 HTTPD_VHOSTS_D/domain.com/conf/vhost_ssl.conf を作成します。

---8<---

php_admin_value open_basedir HTTPD_VHOSTS_D/domain.com/httpsdocs:/tmp:/ADD_PATH


--->8---

サブドメインに対して、対応する HTTPD_VHOSTS_D/domain.tld/subdomains/subdomain/conf/vhost.conf ファイルを作成します。

---8<---

php_admin_value open_basedir "HTTPD_VHOSTS_D/domain.com/subdomains/subdomain/httpdocs:/tmp:/ADD_PATH"


--->8---

 また、必要な特定のロケーションに対して /etc/php.ini で 'open_basedir' をグローバルに設定することもできます。

---8<---
open_basedir = "/tmp"
--->8---

 php.ini の変更後、Apache を再起動します。

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c 29d1e90fd304f01e6420fbe60f66f838 85a92ca67f2200d36506862eaa6ed6b8 46a8e394d6fa13134808921036a34da8 bd7fc88cf1b01f097749ae6f87272128

Email subscription for changes to this article