Linux
自動賦予 Apache 對新添加的 git clone 文件的寫權限(-R g+rw)
我在允許 Apache 自動對從 git 儲存庫中提取的 .htaccess 文件具有寫入權限時遇到問題。
這是我的過程:
我以新創建的使用者“ webadmin ”登錄,該使用者已添加到組“ apache ”(我在 CentOS 上,所以它相當於www-data)並且我創建了一個空目錄:
/var/www/html/test
我已經確保在這個目錄上,我做了以下事情:
$ umask 002 $ chown -R apache:apache /var/www/html/test $ chmod -R g+rw /var/www/html/test
這是為了確保該目錄歸組“ apache ”所有,並且由於我的使用者“ webadmin ”是該組的一部分,我假設我與該使用者一起添加的任何內容也可由apache使用者寫入(php 腳本)。
仍然使用webadmin使用者,然後我執行
git clone myrepo.git .
這會將我的 WordPress 網站文件拉到目錄中。其中包括一個 .htaccess 文件。該文件需要 WordPress 可寫,以便它可以修改規則。拉下的所有文件都歸webadmin和apache組所有。
無論出於何種原因,在我再次執行之前,預設情況下 .htaccess 文件都不能被 apache 寫入:
$ chmod -R g+rw /var/www/html/test
為什麼我必須再次執行此命令?有什麼辦法可以讓這個文件在被拉下時由apache自動寫入而無需執行
-R g+rw
命令?
您的需求與此 stackoverflow 文章完全相反。簡而言之,您可以選擇:
- 執行前適當設置 umask(根據您的文章,大概設置為 002)
git
- 添加 git hook 腳本以在複製後更改文件權限。
第一種選擇通常更容易做到。