以下僅LNMP 1.4版本的解決辦法,LNMP其他版本請參考官網https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini
解決方法一:LNMP 1.4上也可以直接使用lnmp1.4/tools/ 目錄下的 ./remove_open_basedir_restriction.sh,輸入網站的全路徑(如/www/wwwrooter/testweb) 回車既可
解決方法二:LNMP 1.4上如果不想用防跨目錄或者修改.user.ini的防跨目錄的目錄還需要將 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在該行行前添加 # 或刪除改行,需要重啟nginx。
這里我試過了是無效的,大家可以嘗試,修改完fastcgi.conf后執行
service nginx restart
service php-fpm restart
說明; 由於我的服務器php環境是使用lnmp集成包搭建,原因也來於此
在Thinkphp、codeigniter、Laravel等框架下,網站目錄一般是在public下,但是public下的程序要跨目錄調用public上級目錄下的文件,因為LNMP默認是不允許跨目錄訪問的,所以都是必須要將防跨目錄訪問的設置去掉,有時候這些框架類的程序提示500錯誤也可能是這個問題引起的。(官網上寫的https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini)
問了找了好久,還是通過tp5官網文檔的評論發現解決方法,tp5文檔https://www.kancloud.cn/manual/thinkphp5/336757