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脚本数据库功能详解(中)
Oct 09 PHP
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
php公用函数列表[正则]
Feb 22 PHP
php中判断一个字符串包含另一个字符串的方法
Mar 19 PHP
php5数字型字符串加解密代码
Apr 24 PHP
PHP下对数组进行排序的函数
Aug 08 PHP
php二维数组排序方法(array_multisort usort)
Dec 25 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
laravel 执行迁移回滚示例
Oct 23 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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中static关键字原理的学习研究分析
2011/07/18 PHP
PHP运行模式的深入理解
2013/06/03 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
JS 判断代码全收集
2009/04/28 Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
python利用正则表达式提取字符串
2016/12/08 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
基于python 取余问题(%)详解
2020/06/03 Python
python 实现aes256加密
2020/11/27 Python
Yahoo-PHP面试题3
2012/01/14 面试题
工程造价专业大专生求职信
2013/10/06 职场文书
公司行政经理岗位职责
2013/12/24 职场文书
大学生毕业鉴定
2014/01/31 职场文书
冰淇淋开店创业计划书
2014/02/01 职场文书
计算机毕业生求职信
2014/06/10 职场文书
小学安全教育月活动总结
2014/07/07 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server