我在允许 Apache 自动对从 git 存储库中提取的 .htaccess 文件具有写访问权限时遇到问题。
以下是我的流程:
我以新创建的用户身份登录”网站管理员“,已添加到组”阿帕奇“(我在 CentOS 上,所以它相当于www-数据)并且我创建了一个空目录:
/var/www/html/test
我已确保在此目录中执行以下操作:
$ umask 002
$ chown -R apache:apache /var/www/html/test
$ chmod -R g+rw /var/www/html/test
这是为了确保目录归团体“阿帕奇“,因为我的用户“网站管理员“是该组的一部分,我假设我使用此用户添加的任何内容也将由阿帕奇用户(php 脚本)。
仍在使用网站管理员用户,然后我运行
git clone myrepo.git .
这会将我的 WordPress 网站文件拉到目录中。其中包含一个 .htaccess 文件。此文件需要由 WordPress 可写入,以便它可以修改规则。所有拉下的文件均归网站管理员与阿帕奇。
无论出于什么原因,.htaccess 文件默认情况下不是由 apache 可写入的,直到我再次运行:
$ chmod -R g+rw /var/www/html/test
为什么我必须再次运行此命令?有什么方法可以让此文件在被拉下时自动由 apache 写入,而无需运行命令-R g+rw
?
答案1
你的需求恰恰相反这个 stackoverflow 帖子。简而言之,您可以选择:
- 在运行之前适当地设置 umask(根据您的帖子,大概为 002)
git
- 添加一个 git hook 脚本来在克隆后更改文件权限。
第一个选择通常比较容易做到。