2017-07-08 79 views
0

我在服務器上部署Symfony3項目(Ubuntu 16.04,PHP 7.0.18)。 我使用VestaCP,創建symlinl public_shtml -> www/web並將項目放置在www目錄中。VestaCP:使用app/autoload.php時的open_basedir限制

我執行以下命令:

  • 混帳克隆
  • 作曲家安裝
  • setfacl的(來自官方的Symfony文檔)

在錯誤日誌中我看到的消息:

PHP Warning: require(): open_basedir restriction in effect. File(/home/admin/web/project/www/app/autoload.php) is not within the allowed path(s): (/home/admin/web/project/public_shtml:/home/admin/tmp) in /home/admin/web/project/www/web/app.php on line 6

PHP Warning: require(/home/admin/web/project/www/app/autoload.php): failed to open stream: Operation not permitted in /home/admin/web/project/www/web/app.php on line 6

PHP Fatal error: require(): Failed opening required '/home/admin/web/project/www/web/../app/autoload.php' (include_path='.:/usr/share/php') in /home/admin/web/project/www/web/app.php on line 6

Wh我做錯了嗎?

+0

可能的重複https://stackoverflow.com/questions/1846882/open-basedir-restriction-in-effect-file-is-not-within-the-allowed-paths –

+0

可能重複的[open \ _basedir限制有效。文件(/)不在允許的路徑中:](https://stackoverflow.com/questions/1846882/open-basedir-restriction-in-effect-file-is-not-within-the-allowed-路徑) – Icepickle

回答

0

您需要更改open_basedir參數配置爲Apache(/home/admin/conf/web/apache2.conf/home/admin/conf/web/sapache2.conf)指向新創建的文件夾/home/admin/web/project/www

<Directory /home/admin/web/project/www/web> 
    AllowOverride All 
    Options +Includes -Indexes +ExecCGI 
    php_admin_value open_basedir /home/admin/web/project/www:/home/admin/tmp 
    php_admin_value upload_tmp_dir /home/admin/tmp 
    php_admin_value session.save_path /home/admin/tmp 
</Directory> 

VestaCP使用open_basedir限制,使更安全的默認配置。

另外,如果您打算將更多的網站添加到您的服務器,我建議您爲路徑/usr/local/vesta/data/templates/web/apache2/的symfony項目製作特殊的apache配置模板。您可以將默認模板default.tpldefault.stpl複製爲新文件symfony.tplsymfony.stpl,您可以在其中更改open_basedirDocumentRootDirectory參數。如果你不這樣做:每次爲你的用戶的網站添加/更新配置後,VestaCP將用新生成的配置使用默認模板替換你當前的配置,你需要重新編輯它。

相關問題