1

これはサーバーに焦点を当てたものかもしれませんが、誰かが助けてくれることを願っています.

サーバー(またはローカルコンピューター)に設定ファイル(application/config/database.phpなど)を設定するように設定しようとしているPHP CodeIgniterアプリケーションがあり、それらはgithubにありません(データベースのパスワードはありません追跡されます)、すべてが簡単になります。

したがって、ローカルホストで完全に機能しています。基本的には次のようになります。

/path_before_httpdocs/config/development/config.php

しかし、サーバー上でフォルダー構造が設定されていますが、次のエラーが発生します。

Warning: require(): open_basedir restriction in effect. 
File(/var/www/vhosts/mysite.com/subdomains/staging/config/staging/config.php) is not within the allowed path(s):
(/var/www/vhosts/mysite.com/subdomains/staging/httpdocs/:/tmp/:/var/www/vhosts/mysite.com/subdomains/staging/httpsdocs/:/tmp/) 
in /home/mysite/staging/deploy/releases/20130312155222/httpdocs/application/config/config.php on line 12

最初にしたことは、php.ini ファイルに移動して、それが何であるかを確認することでした。設定されていなかったので、php.ini に設定してから httpd を再起動しました。したがって、phpinfo() を実行すると、次のように表示されます。

Directive    |        Local Value                                                                                                           |        Master Value
open_basedir | /var/www/vhosts/mysite.com/subdomains/staging/httpdocs/:/tmp/:/var/www/vhosts/mysite.com/subdomains/staging/httpsdocs/:/tmp/ | /var/www/vhosts/mysite.com/subdomains/staging/config/staging/:/tmp/

それでもエラーが発生します。だから私が次にしたことは試してみることでした

ini_set('open_basedir', '/var/www/vhosts/mysite.com/subdomains/staging/config/staging/:/tmp/');

これも機能しませんでした。次に、ini_get('open_basedir') をエコーし​​たところ、これが返されました

/var/www/vhosts/mysite.com/subdomains/staging/httpdocs/:/tmp/:/var/www/vhosts/mysite.com/subdomains/staging/httpsdocs/:/tmp/

私のphp.iniを無視しているようです

この記事に従おうとしました (私は mediatemple の DV 4 でホストされています)。Mediatemple サポートは、彼らが私を助けることができないと言いました。ここに誰かアイデアがありますか?必要に応じて、さらに情報を提供することもできます。

4

1 に答える 1

0

やっと答えが出ました。Plesk では、php 設定を設定し、open_basedir を定義することができました。

于 2013-03-12T20:08:57.603 に答える