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 相关文章推荐
关于IIS php调用com组件的权限问题
Jan 11 PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
PHP中if和or运行效率对比
Dec 12 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
详细解读php的命名空间(二)
Feb 21 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
在laravel中实现事务回滚的方法
Oct 10 PHP
php传值和传引用的区别点总结
Nov 19 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
一个多文件上传的例子(原创)
2006/10/09 PHP
第十一节--重载
2006/11/16 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python实现简单的TCP代理服务器
2014/10/08 Python
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
Python的装饰器用法学习笔记
2016/06/24 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
工业学校毕业生自荐信范文
2014/01/03 职场文书
文明宿舍获奖感言
2014/02/07 职场文书
安全承诺书格式
2014/05/21 职场文书
投标单位介绍信
2015/05/05 职场文书
雷锋的故事观后感
2015/06/10 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python