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