LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 851|回复: 4

虚拟主机,ftp和目录权限(折腾了几天还没解决)

[复制链接]
发表于 2006-2-15 22:32:38 | 显示全部楼层 |阅读模式
debian sarge 3.1 + apache 1.3.33 + bind 9

单位的网站和phpmyadmin等少数几个网站在 /var/www 目录下,其他的所有员工个人主页一律放到 /home/xxx 下。以下的apache虚拟主机配置,只能访问到放在 /var/www 目录下的网页,无法访问用pure-ftp创建的虚拟用户上传到 /home/虚拟用户/public_html 目录的网页。
没有修改apache其他的任何地方
NameVirtualHost 192.168.1.2
<VirtualHost 192.168.1.2>
ServerName www.mydomain.com
DocumentRoot /var/www
</VirtualHost>

<VirtualHost 192.168.1.2>
ServerName db.mydomain.com
DocumentRoot /var/www/phpmyadmin
</VirtualHost>

<VirtualHost 192.168.1.2>
ServerName www.mydomain.com
ServerAlias *.mydomain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} (.*).mydomain.com
RewriteRule ^/(.*) http://mydomain.com/~%1$1
</VirtualHost>

为了开 ftp 服务,让员工可以随时上传网页,安装了 pure-ftp,并建立了虚拟用户,但无论我怎么设置都不能浏览员工用ftp上传的网页。上传的文件属性 www-data.www-data。
#cd /etc/pure-ftpd/auth
#ln -s ../conf/PureDB 50pure
#echo no > /etc/pure-ftpd/conf/PAMAuthentication
#echo no > /etc/pure-ftpd/conf/UnixAuthentication

#mkdir /home/alfred
#mkdir /home/alfred/public_html
#chown -R www-data.www-data /home/alfred (apache的用户和用户组都是www-data)
#chmod -R 755 /home/alfred

#pure-pw useradd alfred -u www-data -g www-data -d /home/alfred
#pure-pw mkdb

浏览网页的错误信息
Not Found
The requested URL /~alfred was not found on this server.

apache错误信息 error.log
[Wed Feb 15 20:40:43 2006] [notice] Accept mutex: sysvsem (Default: sysvsem)
[Wed Feb 15 20:40:52 2006] [error] [client 192.168.1.2] File does not exist: /var/www/~alfred
[Wed Feb 15 20:40:52 2006] [error] [client 192.168.1.2] File does not exist: /var/www/favicon.ico

请问:这段虚拟主机的设置有问题 还是 pure-ftpd操作有问题?应该怎么改正?谢了先~~~~~~
发表于 2006-2-16 02:43:40 | 显示全部楼层
问题一个一个解决。
1。VirtualHost 的问题。(权限问题)
如果是单纯放一个权限为 666 的文件在该目录,是否能访问?

2。解决了上边这个问题,才能考虑下边这个那个问题。如何设置才能满足第一条的要求。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-16 12:25:51 | 显示全部楼层
无法访问任何 /home/虚拟用户 目录下的任何文件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-16 12:44:12 | 显示全部楼层

基本确定是rewrite规则的问题

如果把虚拟主机配置成这样(去掉了 rewrite 的那一段),可以访问以下不同权限目录下的网页,所以应该不是目录权限的问题,而是 rewrite 规则不对。
<VirtualHost 192.168.1.2>
ServerName alfred.mydomain.com
DocumentRoot /home/alfred/public_html
</VirtualHost>

<VirtualHost 192.168.1.2>
ServerName fedora.mydomain.com
DocumentRoot /home/fedora/public_html
</VirtualHost>

<VirtualHost 192.168.1.2>
ServerName debian.mydomain.com
DocumentRoot /home/debian/public_html
</VirtualHost>
debian是系统真实用户,alfred 和 fedora 是 pure-pw 创建的虚拟用户。
debian:/home# ls -l
total 2
drwxr-xr-x   4 ftpuser  ftpgroup  136 2006-02-16 12:23 alfred
drwxr-xr-x  25 debian   debian   1736 2006-02-16 12:07 debian
drwxr-xr-x   3 www-data www-data   80 2006-02-15 20:00 fedora

debian:/home# ls -l /home/alfred
total 4
drwxr-xr-x  2 ftpuser ftpgroup 48 2006-02-15 21:17 a
-rw-rw-rw-  1 ftpuser ftpgroup 64 2006-02-16 12:23 index.html
drwxr-xr-x  2 ftpuser ftpgroup 80 2006-02-15 21:13 public_html

debian:/home# ls -l /home/alfred/public_html/
total 4
-rw-r--r--  1 ftpuser ftpgroup 86 2006-02-15 21:13 index.html
回复 支持 反对

使用道具 举报

发表于 2006-2-16 18:28:48 | 显示全部楼层
rewritelog /var/log/apache/rewrite_log
rewriteloglevel 9

加上上边2行,自己看看到底出什么问题了。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表