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 相关文章推荐
在线短消息收发的程序,不用数据库
Oct 09 PHP
PHP个人网站架设连环讲(三)
Oct 09 PHP
PHP下常用正则表达式整理
Oct 26 PHP
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php实现curl模拟ftp上传的方法
Jul 29 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP 防注入函数(格式化数据)
2011/08/08 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
2014/12/02 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Python 类的继承实例详解
2017/03/25 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
详细分析Python collections工具库
2020/07/16 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
艺术学院毕业生求职信
2014/07/09 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
办公室务虚会发言材料
2014/10/20 职场文书
golang中的空slice案例
2021/04/27 Golang