项目使用CI框架,从Windows平台迁移到LNMP平台上的时候发现打开首页的时候提示
然后看到这个提示的时候下意识的就去了php.ini
配置文件中加了open_basedir=/vagrant/vbee/:/tmp/:/proc/
重启后依然不行。
于是各种GUGO。找到了很多都是关于Apache的。试了很多方法都无法解决。
比如Apache中类似下面这样
<DirectoryMatch "/home/sites/site81/">
php_admin_value open_basedir "/vagrant/vbee2:/tmp/:/"
</DirectoryMatch>
但是nginx中不太懂配置,所以直接在nginx.conf中的server段中加入了fastcgi_param PHP_ADMIN_VALUE open_basedir=$document_root/:/usr/local/lib/php/:/tmp/;
发现还是没有解决。后来去SF.GG上提问一个网友给了提示,说是报错信息中/mnt/web_site_log/www.vbee.com/
目录需要加入到open_basedir中,这才想到刚刚上面的那句配置少了/mnt/web_site_log/www.vbee.com/
这个目录。于是后来加入到虚拟主机的配置文件server{}中发现终于OK了。
location ~ [^/]\.php(/|$)
{
# comment try_files $uri =404; to enable pathinfo
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param PHP_ADMIN_VALUE open_basedir=$document_root/:/mnt/web_site_log/www.vbee.com/:/tmp/;
#include pathinfo.conf;
}
只是目前还没太明白这样配置的原理,有空还真的了解了解服务器的配置。
参考资料:https://centminmod.com/nginx_configure_xenforo_seo_friendly_urls.html
2015.12.01更新
php5.3以后可以通过web根目录下的.user.ini文件进行open_base
的配置,即在网站根目录下存在.user.ini
文件,内容类似如下
open_basedir=/vagrant/mongo:/tmp/:/proc/:/mnt/web_site_log/www.abc.com/
不过一些敏感的配置还是不能使用这个配置,比如disable_functions
参考http://drops.wooyun.org/tips/3424
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。