PHP 配置文件中open_basedir选项作用


Posted in PHP onJuly 19, 2009

如下是php.ini中的原文说明以及默认配置:
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory or
; per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
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/html/:/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"

PHP 相关文章推荐
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
php SQL之where语句生成器
Mar 24 PHP
snoopy 强大的PHP采集类使用实例代码
Dec 09 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
浅析php数据类型转换
Jan 09 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
Oct 21 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 PHP
PHP form 表单传参明细研究
Jul 17 #PHP
php与php MySQL 之间的关系
Jul 17 #PHP
php 图片上传类代码
Jul 17 #PHP
PHP源码之 ext/mysql扩展部分
Jul 17 #PHP
php 小乘法表实现代码
Jul 16 #PHP
php at(@)符号的用法简介
Jul 11 #PHP
php str_pad 函数用法简介
Jul 11 #PHP
You might like
PHP form 表单传参明细研究
2009/07/17 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
详解php中反射的应用
2016/03/15 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
python编程开发之日期操作实例分析
2015/11/13 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
详解用python实现简单的遗传算法
2018/01/02 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
python Tornado框架的使用示例
2020/10/19 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
关于中国梦的演讲稿
2014/04/23 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
中标通知书格式
2015/04/17 职场文书
消防隐患整改通知书
2015/04/22 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS