php open basedir配置,PHP 配置文件中 open_basedir 选项作用

PHP 配置文件中 open_basedir 选项作用

如下是 php.ini 中的原文说明以及默认配置:;open_basedir,ifset,limits all file operations to thedefineddirectory

;andbelow.Thisdirective makes most senseifusedina per-directoryor

;per-virtualhost web server configuration file.Thisdirectiveis

;*NOT*affectedbywhetherSafeModeisturnedOnorOff.

open_basedir=.

open_basedir 可将用户访问文件的活动范围限制在指定的区域, 通常是其家目录的路径, 也

可用符号 "." 来代表当前目录注意用 open_basedir 指定的限制实际上是前缀, 而不是目录名

举例来说: 若 "open_basedir = /dir/user", 那么目录 "/dir/user" 和 "/dir/user1" 都是

可以访问的所以如果要将访问限制在仅为指定的目录, 请用斜线结束路径名例如设置成:

"open_basedir = /dir/user/"

open_basedir 也可以同时设置多个目录, 在 Windows 中用分号分隔目录, 在任何其它系统中用

冒号分隔目录当其作用于 Apache 模块时, 父目录中的 open_basedir 路径自动被继承

有三种方法可以在 Apache 中为指定的用户做独立的设置:

(a) 在 Apache 的 httpd.conf 中 Directory 的相应设置方法:php_admin_value open_basedir/usr/local/apache/htdocs/

# 设置多个目录可以参考如下:

php_admin_value open_basedir/usr/local/apache/htdocs/:/tmp/

(b) 在 Apache 的 httpd.conf 中 VirtualHost 的相应设置方法:php_admin_value open_basedir/usr/local/apache/htdocs/

# 设置多个目录可以参考如下:

php_admin_value open_basedir/var/www//:/var/tmp/

(c) 因为 VirtualHost 中设置了 open_basedir 之后, 这个虚拟用户就不会再自动继承 php.ini

中的 open_basedir 设置值了, 这就难以达到灵活的配置措施, 所以建议您不要在 VirtualHost

中设置此项限制. 例如, 可以在 php.ini 中设置 open_basedir = .:/tmp/, 这个设置表示允许

访问当前目录 (即 PHP 脚本文件所在之目录) 和 / tmp / 目录.

请注意: 若在 php.ini 所设置的上传文件临时目录为 / tmp/, 那么设置 open_basedir 时就必须

包含 / tmp/, 否则会导致上传失败. 新版 php 则会提示 "open_basedir restriction in effect"

警告信息, 但 move_uploaded_file()函数仍然可以成功取出 / tmp / 目录下的上传文件, 不知道

这是漏洞还是新功能.

针对 ShopEx472 版本的配置:

open_basedir = "D:/Server;../catalog;../include;../../home;../syssite;../templates;../language;../../language;../../../language;../../../../language"

来源: https://www.php1.cn/detail/php-7d1045a88e.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值