如何配置同时对 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和PHP语言的环境下,如何在Apache目录下htdocs目录下 同时部署两个项目呢?求解.....