在DreamHost共享主机上,我正在设置htpasswd,但Apache没有读取文件的权限。我如何给予许可?我想要更改.htpasswd
文件的所有者或组,而不是给它不安全的权限。我认为我无法访问httpd.conf
文件,因此我无法将此方法用于find what user Apache runs as。此外,运行top
或ps aux
仅显示我正在运行但尚未显示apache进程的进程。
根据cat /etc/passwd
和cat /etc/group
的输出,我猜它是www-data
。
好吧,我按照Password-protecting directories on Dreamhost的说明进行操作。它生成了一个包含.htpasswd
文件的目录,其中包含dhapache
组和权限440
。它还在我的组下面放了一个.htaccess
文件。出于某种原因,当我尝试chgrp dhapache test_file.txt
时,我得到chgrp: changing group of 'test_file.txt': Operation not permitted
。所以,我只是将DreamHost生成的.htpasswd
文件移动到我想要的位置,并编辑了它生成的.htaccess
文件,尽管它有警告。
答案 0 :(得分:10)
实际上,您不需要访问httpd.conf:
ps aux | grep apache2
groups apache_user
应该产生你想要的东西
答案 1 :(得分:4)
我遇到了一些问题,导致我找到另一个解决方案。但它仅在您有权访问配置文件
时才有效我们实际上可以在\etc\apache2\envars
文件中检查用户和组。这是Apache设置环境var并在应用程序中使用它的地方。
寻找这两行:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
请注意,这只是设置环境变量。实际设置apache作为\etc\apache2\apache2.conf
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
文件的位置可能会有所不同,但您应该明白这一点。