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+dbfile开发小型留言本
Oct 09 PHP
php中看实例学正则表达式
Dec 25 PHP
让PHP支持页面回退的两种方法
Jan 10 PHP
php目录管理函数小结
Sep 10 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
php实现的短网址算法分享
Jun 20 PHP
微信公众平台开发关注及取消关注事件的方法
Dec 23 PHP
PHP中捕获超时事件的方法实例
Feb 12 PHP
php类的扩展和继承用法实例
Jun 20 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
Yii框架应用组件用法实例分析
May 15 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 前一天或后一天的日期
2008/06/28 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
基于header的一些常用指令详解
2013/06/06 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
js select option对象小结
2013/12/20 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python动态加载模块的3种方法
2014/11/22 Python
Python计算程序运行时间的方法
2014/12/13 Python
详解Python pygame安装过程笔记
2017/06/05 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
Python读写Excel表格的方法
2021/03/02 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
实习评语
2013/12/16 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
个人买房协议书范本
2014/10/06 职场文书
期末个人总结范文
2015/02/13 职场文书
廉政承诺书范文
2015/04/28 职场文书
春风化雨观后感
2015/06/11 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers