使用 suPHP,我的目标是让我的网站指向我的/home
文件夹,并且主文件夹内的每个用户都有自己的index.html
页面。我目前没有文件夹index.html
内的页面/home
,但那是放置登录页面的合理位置。以下是我想要的结构
home
├── index.html
├── user1
│ └── index.html
├── user2
│ └── index.html
├── user3
│ └── index.html
├── user4
│ └── index.html
├── user5
│ └── index.html
└── user6
└── index.html
当我去 时192.168.1.8
,我希望它能加载/home/index.html
。 当我去 时,192.168.1.8/user1
我希望它能加载/home/user1/index.html
。
目前 Apache 告诉我我没有权限访问/home
或任何嵌套文件夹。我猜是因为/home
属于 root?有没有关于如何重塑它的建议
答案1
首先,以下应该是 apache 中的(虚拟)主机:
<VirtualHost 192.168.1.8:80>
DocumentRoot /home
</VirtualHost>
要提供页面,Apache 需要对其尝试访问的文件具有读取权限。实现此目的的最简单方法是以 root 身份运行:
# find /home -type d -exec chmod 755 {} \;
# find /home -type f -exec chmod 744 {} \;
这些将赋予每个主目录下每个文件的全局读取权限。通常我会警告不要这样做,因为个人用户可能不希望每个文件都被其他用户读取,但由于这些文件可以通过网络读取,所以这没什么区别。
如果您想让用户同时拥有公共文件和私有文件,请考虑创建一个并行目录 /home/www。在此目录中,为每个用户创建一个具有 0755/0655 权限的目录,并将其所有者设为他们。然后,他们可以将他们希望每个人都能看到的文件放在 /homw/www/user 中,同时将私有文件放在 /home/user 中。
答案2
我不确定这是否仍然符合你的计划,但是;
实现此目的的最简单方法可能是使用 -directive userdir
。它还可以将每个用户的 webroot 放在其主目录的子目录中 - 这样他们就不必在 Web 服务器上公开所有文件。
在这里查看 userdir 的文档:http://httpd.apache.org/docs/2.0/mod/mod_userdir.html#userdir
我会将您计划放入其他地方的文件放在/home
其他地方。