nginx+php的open_basedir使用方法
大家都知道,open_basedir是限制php的权限在指定的目录下,限制站点目录防止跨站的。
当配置不当时也容易引发一些错误,如:
1 |
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(../license.php) is not within the allowed path(s): |
该错误便是因配置了php的php.ini的open_basedir限制,而nginx配置不当引起的。
首先说说centos环境下,nginx+php环境对于open_basedir使用的几个方法。
一、在php的配置文件php.ini中修改参数
1 |
open_basedir=/home/www/www.aaa.com:/home/www/www.bbb.com:/tmp/:/proc/ |
二、Nginx配置文件增加
1 |
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/"; |
三、网站根目录下创建.user.ini
1 |
open_basedir=/home/www/www.aaa.com:/tmp/:/proc/ |
关于.user.ini文件的详细说明:
http://php.net/manual/zh/configuration.file.per-user.php
一般情况下,php中配置完毕后,nginx也要响应配置,否则就可能出现一些莫名的找不到文件的错误提示。查看open_basedir配置是否正确可以通过phpinfo.php来查看,查看phpinfo函数输出结果的open_basedir参数是否正常即可。