免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2964 | 回复: 3
打印 上一主题 下一主题

[Web] apache虚拟主机与suExec及PHP的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-07 14:34 |只看该作者 |倒序浏览
我正在配置一个利用vhost_alias模块配置的web服务器。但我遇到了些问题,麻烦各位能指教一二。
比如有这样的目录结构:

/home
  +-- user1
         +----  other_files
         +----  abc_com
   +-- user2
         +----  xyz_com
/www
   +--- abc.com
   +--- xyz.com

/www/abc.com是指向/home/user1/abc_com的软链
/www/xyz.com是指向/home/user1/xyz_com的软链

httpd.com中有以下配置
VirtualDocumentRoot /www/%0

使得访问abc.com的时候读取的是/www/abc.com,而最终读取到/home/user1/abc_com里面的内容

apache以apache:apache身份运行
id apache得到以下
uid=500(apache) gid=500(apache) groups=500(apache)


1. 我希望PHP的工作目录限定在各自的DocumentRoot内。也就是说,在abc.com下不能访问到xyz.com的文件内容。
2. 因为要限定用户的使用空间大小,我希望当使用/home/user1/abc_com/下的一个upload.php上传文件的之后生成的文件的属主同upload.php的一致。也就是说,如果利用这样的文件上传一个temp.txt:
-rw-r--r--  1 user1 web-users 47759 Feb 29 11:25 upload.php

将会生成如
-rw-r--r--  1 user1 web-users 47759 Feb 29 11:25 temp.txt

这样的文件。

问题:
对于第一个问题,我想设置safe_mode为On就可以解决问题。
对于第二个问题,我尝试把PHP设为CGI方式运行,并编译suExec。这里就产生了几个用户的权限:apache运行用户、php-cgi文件的属主、upload.php文件的属主。suExec在编译的过程中曾用到了 --with-suexec-caller --with-suexec-userdir 这两个选项。
suexec-caller是否应该是apache的运行用户?suexec-userdir这项应该如何设置呢?

最近几天一直在这些问题上打转,似乎没有太大的进展,哪位兄弟曾经接触过这类问题,能否指点一二?

论坛徽章:
0
2 [报告]
发表于 2008-03-07 14:39 |只看该作者
另外,我的思路是否有问题?
我配置下来的结果是,PHP以CGI方式运行,但上传之后的文件的属主是apache用户的,我怀疑suExec没有成功运行,或是总体思路不正确。

论坛徽章:
0
3 [报告]
发表于 2008-03-10 21:46 |只看该作者
嗯,初步的解决方法是修改suexec.c,重新设置程序执行的uid/gid。
不知道有没有更好的方法。不过修改suexec.c确实是最快的方案。另外发现mod_vhost_alias和mod_security2的chroot有点冲突。

论坛徽章:
1
2015元宵节徽章
日期:2015-03-06 15:51:33
4 [报告]
发表于 2015-03-04 11:55 |只看该作者
方便加个QQ 交流下吗, 我现在也碰到这些问题了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP