使用 /home 文件夹作为网站(在 Apache2.0 和 suPHP 下)

使用 /home 文件夹作为网站(在 Apache2.0 和 suPHP 下)

使用 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其他地方。

相关内容