目前我正在尝试设置一个后提交挂钩,它会自动将svn副本导出到我的www-root,这样我的网站就会在提交完成后更新。 post-commit钩子如下所示:
#!/bin/sh
# Delete Old site
rm -R /var/www/html/sha
print 1
# Export Repository
svn export --force file:///var/local/svn /var/www/html/sha
# Make sure Apache Owns the website
chown -R www-data:www-data /var/www/html/sha
但是当我提交一些东西时,我得到了许多Permission denied错误。基本上是这样的:
rm: cannot remove '/var/www/html/sha/extensions/LdapAuthentication.php': Permission denied
所以我知道我需要设置一些新的权限,但我不确定我设置了哪些权限。 / var / www / html目录有www-data:www-data as user:group。
我通过隧道连接到svn服务器,意思是svh + ssh:// user @ host / repo
任何线索?
好吧现在似乎工作了。我将/ var / www / html / sha目录的所有者更改为www-data:walter并删除了chown命令,因为无论如何都需要sudo。现在就像一个魅力。谢谢!
答案 0 :(得分:1)
钩子脚本运行的用户帐户需要在该路径上拥有适当的权限。
如果您使用Apache为您的存储库提供服务,那么该进程运行的帐户需要权限。如果您使用svnserve,则该用户帐户需要权限。
您可能还有另一个进程锁定文件或目录,阻止删除它。