LNMP一键包设置pubic为运行目录权限问题

类似ThinkPHP的框架都将public目录设置为网站运行目录。Nginx中的配置如下:

root  /home/wwwroot/www.example.com/public;

LNMP一键包默认开启了防跨站、跨目录,public中的程序无权访问public之外的文件。

编辑FastCGI配置文件:

vi /usr/local/nginx/conf/fastcgi.conf

注释如下行:

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

重启Nginx:

/etc/init.d/nginx restart

编辑public目录中的.user.ini文件:

vi /home/wwwroot/www.example.com/public/.user.ini

如果没有编辑权限,先执行:

chattr -i /home/wwwroot/www.example.com/public/.user.ini

修改其中的路径为程序要访问的目录范围,冒号分隔多个目录:

open_basedir=/home/wwwroot/www.example.com:/tmp/:/proc/

防止.user.ini文件被修改:

chattr +i /home/wwwroot/www.example.com/public/.user.ini
Typora