如何配置同时对 apache 可写的主目录

Posted

技术标签:

【中文标题】如何配置同时对 apache 可写的主目录【英文标题】:How to configure home directories that are, at the same time, writable for apache 【发布时间】:2012-07-26 02:31:23 【问题描述】:

我已将我的 apache 配置为为每个用户内的 public_html 文件夹提供服务。 然后我配置了将访问这些文件夹的虚拟主机。

因此,以下示例描述了当前状态:我有一个由虚拟主机提供服务的域 (foo-bar.com),并指向 /home/foo-bar/public_html 文件夹。这发生在几个域用户对中。

我的问题是网站必须将一些文件上传到例如/home/foo-bar/public_html/contents。到目前为止,我的解决方案是将该文件夹的所有权更改为 apache 用户和组,但这使得用户无法通过 FTP 将文件上传到该文件夹​​。

在这种情况下,最佳做法是什么?如何解决?

谢谢。

进一步发展

我已经设法通过将/home/foo-bar/public_html/contents 的组更改为 apache 用户并向该组添加写入权限来做到这一点。这样,该文件夹对于 apache 用户及其所有者都是可写的。

可能的解决方案(尚未实施或测试)

有人给了我一个答案,在我看来这是迄今为止解决这个问题的最佳解决方案:使用 pureftp 和 mysql 设置虚拟用户和帐户。

由于我使用的是 vsftp,我发现这个链接可能对某人有用:

http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/

【问题讨论】:

【参考方案1】:

您可以将该文件夹设置为777,具有777权限的用户和apache-user可以在该文件夹中写入。

【讨论】:

这正是我不想做的。对我来说,这是我不想承担的巨大安全风险。 不是用户文件夹,是内容文件夹/home/foo-bar/public_html/contents 不过,我对拥有多个具有 777 权限的文件夹的想法并不满意(我有几个拥有站点的用户)。除此之外,如果站点更改或将上传功能添加到其他文件夹,则始终需要手动干预。 更好的解决方案是执行我在上面的编辑中描述的操作:将文件夹的组更改为 apache 用户并授予组写入权限。这解决了 777 问题,但它仍然是手动解决方案,因此我的问题是将用户的主要组更改为 apache 组。这样,所有创建的文件夹都会自动将 apache 组作为他们的组。 将所有具有 apache 组的用户作为主要组会带来不便,因为每个用户都可以在任何其他用户的文件夹上读写,因为他们都属于具有读写权限的 apache 组.这不是一个选择。

以上是关于如何配置同时对 apache 可写的主目录的主要内容,如果未能解决你的问题,请参考以下文章

Apache常用目录详解配置文件详解及优化配置文件权限详解

在配置的好的Apache和PHP语言的环境下,如何在Apache目录下htdocs目录下 同时部署两个项目呢?求解.....

如何配置experss默认端口

1.Apache的配置

phpMyAdmin - 错误配置文件的权限错误,不应该是世界可写的

如何对从 AWS OpsWorks 部署的应用程序拥有组可写文件权限?