open_basedir php.ini,PHP open_basedir 授权目录设置

设置目的

PHP为了安全性考虑,有一项open_basedir的设置,该配置可以设置你访问目录的权限.根据你web服务器环境,open_basedir可以在几个地方设置.

如何配置

1.在PHP配置文件php.ini文件中配置

;open_basedir =

如果发现该项没有有配置,可以查看一下fastcgi.conf文件中是否有如下配置:

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

project_root_path是配置PHP可访问的目录.多个配置时可以使用;隔开(记住一定是英文输入状态下的分好).

2.在自定义的.user.ini文件中配置

一般情况下是在项目的根目录下面创建该文件,文件的内容可如下配置.

open_basedir=/project_root_path:/tmp/:/proc/

project_root_path是项目跟目录的绝对路径.

配置好之后还需要做如下操作才能使该文件生效,在php.ini文件中配置如下两个配置项

user_ini.filename=user.ini

user_ini.cache_ttl=300

配置解释 1 user_ini.filename配置的.user.ini文件名称需要和上面自定义的.user.ini文件名称一致.这样的话,就表示自定义的文件名称并非一定是.user.ini,只要该配置项和文件名称一致即可. 2.关闭掉php.ini或者fastcgi.ini中的open_basedir配置项(直接使用#即可注释).因为该两个文件中的配置项是全局配置. 2.user_ini.cache_ttl是指的配置生效时间,默认是300(单位秒).如果想立即生效可以重启php服务.

使用效果

这里以ThinkPHP5.1的框架为例.环境使用的是lnmp集成安装包下载地址.默认安装完环境,我们搭建ThinkPHP5.1之后,进行访问会提示500错误,这种情况很有可能就是public目录下面的.user.ini文件配置了open_basedir,只需要将该项注释掉并重启php服务即可进行访问了.

#open_basedir=/home/wwwroot/thinkphp51/public:/tmp/:/proc/

使用建议

就PHP而言,很多框架都实现了防跨目录访问.例如ThinkPHP3版本之后的版本,laravel框架,都将项目的入口文件进行了设置.但为了给项目增加另外一道安全的防火墙,建议添加该配置. 官网参考链接:https://www.php.net/manual/zh/configuration.file.per-user.php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值