最新消息:重新回归WordPress,我要比较认真的开始更新我的博客了。

PHP跨根目录访问脚本的权限问题

服务器相关 hanlei 1496浏览

关与这个标题总结不知道对不对,其实我遇到的问题更具体一些。

我的服务器安装的是lnmp.org的一键安装包,新建主机后会分配一个目录,这个目录就是网站的根目录/site。现在我要安装一个thinkphp5的网站,它的网站根目录需要设为/site/public,由/site/public/index.php来加载/site/app等其它目录的脚本。于是我在nging配置文件中将网站root根目录改为/site/public。然后就出问题,网站无法访问。分析后发现public下的脚本没有权限加载app等目录的脚本,只有根目录public下的文件权限。

经过查找资料发现这是PHP的一个安全隔离防跨站的功能,要在php.ini内设置站点可访问目录

open_basedir=/home/www/www.aaa.com:/tmp/:/proc/

lnmp在“/usr/local/nginx/conf/fastcgi.conf”这个文件中对此参数进行了统一设置

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

找到了问题所在只要稍作修改就可以了,我将fastcgi.conf内的设置注释掉,然后在vhost的配置文件单独加入

fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/site/:/tmp/:/proc/";

转载请注明:HANLEI'BLOG » PHP跨根目录访问脚本的权限问题