php不能用父目录,linux中PHP访问不了根目录上级目录的文件解决方法

linux系统装了lamp运行网站时,发现www.xxx.com/index.php里调用include()里不能引用根目录上一级的php文件,只能引用根目录里的php文件。

原本在window系统是正常运行的,转到linux反而出现这样的问题了,这是linux系统设置问题还是Nginx的配置问题呢?

原因是:

php_admin_value open_basedir /usr/www/web1:/tmp:/proc

apache 或者nginx中设置了php_admin_value值,把安全目录设置在某一个目录下了,所以不能访问根目录上一级文件。只要把php_admin_value open_basedir 的值设置成文件能访问的目录即可

open_basedir使用总结:

open_basedir影响的范围是fopen, require, include之类的函数,在一定程度上加强了安全防护。

但open_basedir也有局限性,它不会影响那些执行系统命令的函数,比如exec, system,如果我想偷主机上另外一位同学的文件(内容),也不见得非要去用require包含过来或者种个hack过去,直接system('cat /path/to/file')不是更省事么?

system函数有时候还是能派上正当用场的,直接禁用不是什么好办法,现在流行chroot,就是用户的/就是自己的$HOME,压根儿就访问不到别人的文件,什么open_basedir, exec, dl都不用禁用,我觉得这才是安全和方便的最佳接合点。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值