lnmp集成环境运行子目录(手机站)报open_basedir restriction in effect.的错误及解决办法

  • A+
所属分类:Linux

lnmp集成环境运行子目录(手机站)报open_basedir restriction in effect.的错误及解决办法

使用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中最后一行有一句:

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

所以问题就在这里了,把这行注释删除,重启nginx,问题解决。

avatar

发表评论

您必须登录才能发表评论!