我刚拿到第一个VPS&已经建立了NGinx,Ruby,Rails& Gitolite。
我可以推拉。但是,一旦我在访问网址时推送,就会出现403 forbidden
错误。本地文件是755
,但似乎Git没有存储这些文件。
我发现了几篇讨论此内容的帖子(包括这一篇:git deploying project - file permissions - (chmod)),答案似乎是在CHMOD 755
挂钩中添加post-receive
。
我的post-receive
目前看起来像是:
#!/bin/sh
GIT_WORK_TREE=/www/newrails git checkout -f
chmod 755 -R /www/newrails
我已完成chmod +x post-receive
。
但是,当我按下时,我收到错误:remote: chmod: changing permissions of /www/newrails: Operation not permitted
如何通过使钩子中的chmod
具有运行权限或通过其他方式来实现它的工作?
答案 0 :(得分:4)
尝试对chmod
操作文件夹的内容而不是文件夹本身:
chmod 755 -R /www/newrails/*
可能发生的事情是钩子正在运行的用户(通常是您用来进行Git访问的用户)有权写入文件夹,但不允许更改文件夹本身的模式。< / p>