PHP框架编程的时候, 有时候为了提高安全性, 会把控制器啦、模型啦、视图啦之类的文件塞到类似public这种外部可访问根目录的同级目录当中,这样会触发奇怪的报错:open_basedir restriction in effect。网上有很多各种各样的说法, 实际问题除了检查php.ini那个open_basedir关键字的配置行之外, 还应该检查一下nginx的fastcgi.conf这个配置文件。
假如nginx的路径在/usr/local/nginx当中, 那么找到conf这个文件夹, 找到fastcgi这个文件。接着vim或者其他编辑器打开文件, 找到或者修改以下行
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp:/proc/";
其中 : 冒号就是分隔符,如果你网站放到了
/home/wwwroot/www.wkwkk.com
这样的目录里,如果是上面那行配置代码的案例,你就可以修改成如下效果:
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/home/wwwroot/www.wkwkk.com/:/tmp:/proc/";