PHP open_basedir函数导致的一个nginx配置问题

发布时间:2019-08-07 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP open_basedir函数导致的一个nginx配置问题脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

项目使用CI框架,从Windows平台迁移到LNMP平台上的时候发现打开首页的时候提示
open_basedir
然后看到这个提示的时候下意识的就去了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

脚本宝典总结

以上是脚本宝典为你收集整理的PHP open_basedir函数导致的一个nginx配置问题全部内容,希望文章能够帮你解决PHP open_basedir函数导致的一个nginx配置问题所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。