Warning: require(): open_basedir restriction in effect. File(/home/www/blog/vendor/autoload.php) is not within the allowed path(s): (/home/www/blog/public/:/tmp/:/proc/) in /home/www/blog/public/index.php on line 25
Warning: require(/home/www/blog/vendor/autoload.php): failed to open stream: Operation not permitted in /home/www/blog/public/index.php on line 25
Fatal error: require(): Failed opening required '/home/www/blog/public/../vendor/autoload.php' (include_path='.:/usr/local/php/lib/php') in /home/www/blog/public/index.php on line 25
自己的laravel項目一直報錯,很惆悵,網上的答案
排查php一定要打開 display_errors
、分析錯誤內容
查看問題描述以及資料,發現是php open_basedir 配置的問題,php不能引入其授權目錄上級及其以上的文件,默認配置在php.ini(/usr/local/php/etc/php.ini),但是我的open_basedir 並沒有配置,默認被注釋了。
文獻說可能在服務器配置目錄下,如nginx、Apache等,於是用戶sublime打開nginx進行全局搜索,open_base,果真還是搜到了,如下圖
四、修改配置
line 27 是默認配置,默認配置是nginx.conf root 文件下的權限目錄
line 27 我復制了一行改了授權目錄 改成了項目文件夾的上級,重啟nginx,項目可以打開了。
五、總結
就是open_basedir 配置項的文件權限問題,如果你們也遇到了這樣的情況,把php.ini 服務器nginx、Apache的配置文件都檢查下。