0

VPS で Zend Framework アプリケーションを起動して実行しようとしています。次のエラーが表示されます。

エラー

警告: realpath() [function.realpath]: open_basedir 制限が有効です。

どうやらこれは Plesk のデフォルトの制限ではよくあることなので、同じ問題に直面したことがある人もいると思います。

私が試したこと

/var/www/vhosts/DOMAIN/conf/ に、Virtuozzo Power Panel を使用して vhost.conf ファイルを作成しました。以下は、vhost.conf に配置したコードです。

試行 1

<Directory /var/www/vhosts/DOMAIN/public>
<IfModule sapi_apache2.c>
        php_admin_value open_basedir none
</IfModule>
<IfModule mod_php5.c>
        php_admin_value open_basedir none
</IfModule>
</Directory>

試行 2

<Directory /var/www/vhosts/DOMAIN/public>
    php_admin_value open_basedir none
</Directory>

httpd サービスも再起動しました。

フォルダ構造

私のフォルダ構造は次のとおりです。

/var/www/vhosts/DOMAIN/application
/var/www/vhosts/DOMAIN/library
/var/www/vhosts/DOMAIN/public

どんな助けでも大歓迎です。

4

2 に答える 2

2

open_basedirプロジェクト全体でを設定する必要があると思います。

<Directory /var/www/vhosts/DOMAIN>
    php_admin_value open_basedir none
</Directory>

また、次のように設定する必要がありますDocumentRoot

DocumentRoot "/var/www/vhosts/DOMAIN/public"

けれど。

于 2012-04-21T21:39:03.827 に答える
1

私は同じ問題を抱えていて、open_basedirをnoneに設定せずに解決しました。Linux では「:」、「;」で区切ることにより、open_basedir に複数のパスを追加できます。Windowsで。そのため、警告に「realpath」が記載されている場合は、open_basedir 設定または「realpath」の親ディレクトリに「realpath」を追加してください。たとえば、次のようにします。

php_admin_value open_basedir "/srv/www/vhosts/domain.com/httpdocs:/tmp:/usr/share/php5/"

これで、open_basedir が 3 つのパスで構成されました。

/srv/www/vhosts/domain.com/httpdocs
/tmp
/usr/share/php5

私の場合、システム上で警告なしに zend を実行するには、上記の 3 つの最後のパスが必要でした。

また、パスが「/」で終わるかどうかにも違いがあることに注意してください。「/」がないと、すべてのサブフォルダーが open_basedir に含まれます。こちらをご覧ください: http://www.php.net/manual/en/ini.core.php#ini.open-basedir

ルシアン

于 2012-11-28T20:51:15.207 に答える