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 将bmp图片转为jpg等其他任意格式的图片
Jun 29 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
PHP的引用详解
Feb 22 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
PHP在线打包下载功能示例
Oct 15 PHP
PHP实现微信红包金额拆分试玩的算法示例
Apr 07 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
PHP APP微信提现接口代码
Sep 30 PHP
Laravel 读取 config 下的数据方法
Oct 13 PHP
Yii2框架中一些折磨人的坑
Dec 15 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
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python获取指定网页上所有超链接的方法
2015/04/04 Python
python选择排序算法实例总结
2015/07/01 Python
Python标准库sched模块使用指南
2017/07/06 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
python如何制作英文字典
2019/06/25 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
python通过cython加密代码
2020/12/11 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
精伦电子Java笔试题
2013/01/16 面试题
大二学生职业生涯规划书
2014/02/05 职场文书
干部现实表现材料
2014/02/13 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
个性与发展自我评价
2015/03/06 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
图书馆义工感想
2015/08/07 职场文书