web-dev-qa-db-ja.com

cPanel PHP open_basedirからルートディレクトリへの警告-解決策はありますか?

現在、cPanel共有ホスティングでシンプルなマルチテナンシーサービスをホストしています。ここでは、サインアップした顧客にサブドメイン、ディレクトリ、およびデータベースが動的に割り当てられます(XMLAPIを使用)。

顧客Aサブドメインディレクトリ7:/ home/xxx/public_html/customers/custA /(http://custA.abc.com)、
カスタマーBサブドメインディレクトリ:/ home/xxx/public_html/customers/custB /(http://custB.abc.com)など.

すべての顧客にはシステムファイルの同じコピーが提供されます(それぞれの構成ファイルを除く)。そのため、顧客のサブドメインディレクトリから/ home/xxx/mainfiles /へのシンボリックリンクを作成しました。

ただし、次のようにPHP警告で迎えられました。

[17-Dec-2014 07:28:39 Europe/London] PHP Warning:  Unknown: open_basedir restriction in effect. File(/home/xxx/mainfiles/index.php) is not within the allowed path(s): (/home/xxx/public_html/customers/custA:/usr/lib/php:/usr/php4/lib/php:/usr/local/lib/php:/usr/local/php4/lib/php:/tmp) in Unknown on line 0
[17-Dec-2014 07:28:39 Europe/London] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[17-Dec-2014 07:28:39 Europe/London] PHP Fatal error:  Unknown: Failed opening required '/home/xxx/public_html/customers/custA/index.php' (include_path='.:/opt/alt/php54/usr/share/pear:/opt/alt/php54/usr/share/php') in Unknown on line 0

したがって、新しい顧客がサインアップするたびにWebホスティング会社を呼び出して、新しい顧客のサブドメイン/ディレクトリのこの特定のopen_basedirパラメーターをオフにする必要があります。

ホスティング会社から、open_basedirパラメーターはサブドメイン/ディレクトリごとに設定されていますが、ディレクトリパス(つまり/ home/xxx/mainfiles)ごとに設定できないと言われました。

これを行うより良い方法はありますか? .htaccessまたは何かを使用するような...

私の目的は:

  1. システムファイルは安全でなければならず、ユーザーが直接アクセスできるのではなく、サブドメイン呼び出しを介してのみアクセスする必要があります-したがって、私はそれを1レベル上のpublic_htmlに保存します
  2. 私はすべての顧客のサブドメインディレクトリが指す共通のフォルダを持ちたいです-したがって、将来的にはすべての顧客に対して一度だけ変更する必要があります
  3. サインアップに成功すると、お客様はシステムにアクセスできます
  4. 共有サーバーホスティングでホストのまま-小さなシステムファイルのみを提供
4
ChristWolf

私の意見では、これはホスティング会社の問題のようです。誰を使用していますか? php.iniファイルを全面的に変更できるか、少なくともこのオプションが設定されているユーザーを見つけて、毎回エラーが発生しないようにする必要があります。ちょっとした考え。

1
BradHanks

。htaccessファイルにopen_basedirを設定すると、PHPスクリプトディレクトリへのアクセスが完全に制限されますか? PHPにopen_basedirを設定する方法は次のとおりです。あなたの。htaccessファイル:

php_flag open_basedir  "/var/www/vhosts/mydomain.com/php_can_only_access_files_in_this_directory/"
0