搭建ThinkCMF访问Nginx报500错误,日志出现的open_basedir的问题

Open_basedir介绍

open_basedir 将PHP所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外时,程序将拒绝打开。本指令不受安全模式打开或关闭的影响。

 事情起因:  ThinkCMF项目是从阿里云服务器Copy下来的,然后上传到腾讯云服务器,两台服务器安装环境都是Lnmp一键安装。阿里云服务器上面访问完全没问题,迁移到腾讯云后搭建项目访问时日志报Open_basedir错误。

2018/08/09 10:28:58 [error] 10209#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  require(): open_basedir restriction in effect. File(/home/wwwroot/ThinkCMF/simplewind/thinkphp/base.php) is not within the allowed path(s): (/home/wwwroot/ThinkCMF/public/:/proc/) in /home/wwwroot/ThinkCMF/public/index.php on line 38

 事情经过:  排查了一会,发现需要修改fastcgi.conf下面的open_basedir的路径。(位置:/usr/local/nginx/conf/)

 原来默认是"open_basedir=$document_root/:/tmp/:/proc/" 。

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

 后来修改为如下:因为我的项目站点目录是/home/wwwroot/。

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

重启 service nginx restart 

以上修改后重启Nginx后站点访问正常了。当然了这只是其中一种方法,希望能对你有所帮助。

你可能感兴趣的:(LNMP)