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 相关文章推荐
PHP4之COOKIE支持详解
Oct 09 PHP
Smarty安装配置方法
Apr 10 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
Aug 07 PHP
input file获得文件根目录简单实现
Apr 26 PHP
深入eAccelerator与memcached的区别详解
Jun 06 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 PHP
YII框架页面缓存操作示例
Apr 29 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 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 数组教程 定义数组
2009/10/23 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python实现二叉搜索树
2016/02/03 Python
python实现一组典型数据格式转换
2018/12/15 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
会计电算化专业毕业生推荐信
2013/12/24 职场文书
结婚喜宴主持词
2014/03/14 职场文书
12岁生日演讲稿
2014/05/14 职场文书
销售员岗位职责
2014/06/09 职场文书
力学专业求职信
2014/07/23 职场文书
2014年宣传工作总结
2014/11/18 职场文书
职工年度考核评语
2014/12/31 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏