PHP 配置open_basedir 让各虚拟站点独立运行


Posted in PHP onNovember 12, 2009

当时觉得这跟IIS相比,实在太差了,因为在IIS里,可以在安全性里设置一个站点甚至一个目录访问时使用的匿名账号,只要各个站点使用的账号不一样,站点间的安全就不会互相影响。这几天才发现,原来当时的想法是错的,在Apache下,也可以配置PHP来实现各站点间的相互独立运行,虽然不能详细控制以某个用户运行某个站点,但至少不会再出现整个服务器被拿下的局面。

通过配置PHP的open_basedir即可以实现该控制,这个配置在IIS下也有用,但这里只讲Apache下的配置。

open_basedir可将用户访问文件的活动范围限制在指定的区域,通常是其家目录的路径,也
可用符号"."来代表当前目录。open_basedir也可以同时设置多个目录, 在Windows中用分号分隔目录,在任何其它系统中用
冒号分隔目录。当其作用于Apache模块时,父目录中的open_basedir路径自动被继承。以下以Linux系统下的配置为例

方法一:在php.ini里配置
open_basedir = .:/tmp/

方法二:在Apache配置的VirtualHost里设置
php_admin_value open_basedir .:/tmp/

方法三:在Apache配置的Direcotry里设置
php_admin_value open_basedir .:/tmp/

关于三个配置方法的解释:
a、方法二的优先级高于方法一,也就是说方法二会覆盖方法一;方法三的优先级高于方法二,也就是说方法三会覆盖方法二;
b、配置目录里加了“/tmp/”是因为php默认的临时文件(如上传的文件、session等)会放在该目录,所以一般需要添加该目录,否则部分功能将无法使用;
c、配置目录里加了“.”是指运行php文件的当前目录,这样做可以避免每个站点一个一个设置;
d、如果站点还使用了站点目录外的文件,需要单独在对应VirtualHost设置该目录;

设置完成后,记得找个PHP网马(如:phpspy)来玩一玩,测试一下有没有问题,不出意外,权限应该是控制得相当好的。
大家还有什么PHP安全配置的经验,欢迎分享交流。

PHP 相关文章推荐
PHP中for与foreach的区别分析
Mar 09 PHP
实用PHP会员权限控制实现原理分析
May 29 PHP
新手菜鸟必读:session与cookie的区别
Aug 22 PHP
php分页函数示例代码分享
Feb 24 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
详解php中空字符串和0之间的关系
Oct 23 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 PHP
PHP7 参数处理机制修改
Mar 09 PHP
php $_SERVER当前完整url的写法
Nov 12 #PHP
php利用header函数实现文件下载时直接提示保存
Nov 12 #PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 #PHP
php 分库分表hash算法
Nov 12 #PHP
PHP 面向对象实现代码
Nov 11 #PHP
超级简单的php+mysql留言本源码
Nov 11 #PHP
PHP 远程关机实现代码
Nov 10 #PHP
You might like
大家须知简单的php性能优化注意点
2016/01/04 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
Python入门_学会创建并调用函数的方法
2017/05/16 Python
python实现简易云音乐播放器
2018/01/04 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python如何发布自已pip项目的方法步骤
2018/10/09 Python
python实现矩阵打印
2019/03/02 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
500行python代码实现飞机大战
2020/04/24 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
竞聘演讲稿范文
2014/01/12 职场文书
个人党性剖析材料
2014/02/03 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
80后婚前协议书范本
2014/10/24 职场文书
2014年技术工作总结范文
2014/11/20 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
学术会议开幕词
2016/03/03 职场文书
如何利用python实现列表嵌套字典取值
2022/06/10 Python