- A+
使用lnmp集成环境在运行手机站(子目录站点)时显示空白,打开php.ini的display_errors后显示:
open_basedir restriction in effect…. is not within the allowed path…的错误。
这是服务器把include权限限制在了open_basedir所设置的目录。
示例:
打开php.ini里错误显示后,显示错误如下
Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/abc_cc/include/config.php) is not within the allowed path(s): (/home/wwwroot/abc_cc/wap/:/tmp/:/proc/) in /home/wwwroot/abc_cc/wap/index.php on line 7
Warning: require(/home/wwwroot/abc_cc/include/config.php): failed to open stream: Operation not permitted in /home/wwwroot/abc_cc/wap/index.php on line 7
Fatal error: require(): Failed opening required '/home/wwwroot/abc_cc/include/config.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/abc_cc/wap/index.php on line 7
检查php.ini发现open_basedir确实是限制在项目的public下,所以在包含上级其它目录中的文件时会出错。
由于php.ini中检查过open_basedir是被注释的,所以不是php.ini的问题。
依次检查nginx虚拟机的conf及其所包含的一些conf文件,发现在/usr/local/nginx/conf/fastcgi.conf中最后一行有一句:
所以问题就在这里了,把这行注释或删除,重启nginx,问题解决。