爲了方便節省時間, 現在都是使用lnmp一鍵安裝包
搭建LNMP環境的. 今天恰好有個用Laravel
開發的項目, 部署完一直500錯誤, 百思不得其解... 谷歌了一番, 記下來備用嘿嘿~
首先處理一下目錄權限:
chmod -R 777 bootstrap/
chmod -R 777 storage/
再確認一下是否是open_basedir
的問題, 方法是修改php.ini
, 打開PHP的錯誤顯示:
vim /usr/local/php/etc/php.ini
display_errors = On
改完php.ini
要重啓一下:
lnmp php-fpm restart
刷新頁面, 如果有類似下面的錯誤:
Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/***/bootstrap/autoload.php) is not within the allowed path(s): (/home/wwwroot/***/public/:/tmp/:/proc/) in /home/wwwroot/***/public/index.php on line 22
Warning: require(/home/wwwroot/***/bootstrap/autoload.php): failed to open stream: Operation not permitted in /home/wwwroot/***/public/index.php on line 22
Fatal error: require(): Failed opening required '/home/wwwroot/***/public/../bootstrap/autoload.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/***/public/index.php on line 22
打開/usr/local/nginx/conf/fastcgi.conf
, 註釋PHP_ADMIN_VALUE
配置(最前面加個#號):
vim /usr/local/nginx/conf/fastcgi.conf
#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
最後重啓一下就可以了, 當然php.ini
得先改回去:
vim /usr/local/php/etc/php.ini
display_errors = Off
lnmp restart
還有.user.ini
這個文件, 移動或者刪除之前, 需要先執行下面的命令:
chattr -i .user.ini
我部署時是直接把它刪了, 如果需要的話, 放在public
目錄下, 文件內容根據實際路徑修改, 這裏做個示例:
open_basedir=/home/wwwroot/www.abc.com/:/tmp/:/proc/
顯示報錯後還有包含錯誤,最終使用這個方法後,確實莫名其妙的好了。方法如下