SSpanel面板搬迁后遇到的HTTP500问题解决

问题现象

在搬迁 sspanel 后,运行环境与之前的机器一模一样,数据库和配置文件也都正常,但是打开网站,发现报错 HTTP 500 ,且没有任何提示。

排查思路

根据HTTP 500这个报错的代码,判断是内部服务器错误,但是此提示过于笼统,需要一步步排查。
首先判断是否是 nginx 的错误,将 sspanel 网站目录下放置一个 index.html ,重启后发现能正常解析,排除了 nginx 的解析错误。
然后再开启 sspanel 的 debug 模式(在config/.config.php中开启),发现依然报错 HTTP 500,排除了程序自身的错误。

vim /home/wwwroot/sspanel/config/.config.php
$System_Config['debug'] = true

那么剩下了的只剩下了 PHP 的问题了。
开启 php.ini 文件中的错误提示,找出报错原因。

vim /usr/local/php/etc/php.ini
display_errors = On
display_startup_errors = On
log_errors = On

将以上三个选项全部开启,然后重启 php-fpm,运行 /etc/init.d/php-fpm restart

果然,打开 PHP 的报错提示后,打开网站主页,发现报如下错误:

Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/sspanel/bootstrap.php) is not within the allowed path(s): (/home/wwwroot/sspanel/public/:/tmp/:/proc/) in /home/wwwroot/sspanel/public/index.php on line 7
Warning: require(/home/wwwroot/sspanel/bootstrap.php): failed to open stream: Operation not permitted in /home/wwwroot/sspanel/public/index.php on line 7
Fatal error: require(): Failed opening required '/home/wwwroot/sspanel/public/../bootstrap.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/sspanel/public/index.php on line 7

解决方法

由报错提示可知,这是由于 PHP 的跨目录访问而造成的,具体原因不再赘述,解决方法如下:

vim /usr/local/nginx/conf/fastcgi.conf
# 方案1:
注释掉 
"open_basedir=$document_root/:/tmp/:/proc/";

# 方案2:
将 open_basedir 后面的值修改为网站的解析目录 
"open_basedir=/home/wwwroot/sspanel/:/tmp/:/proc/";

重启 nginx ,正常打开网站,Over !

参考文章:lnmp 环境require(): open_basedir restriction in effect 错误

猜你喜欢

转载自blog.csdn.net/qq_36641456/article/details/89044100