我有一个Apache通过DAV服务的SVN回购。
我创建了一个post-commit钩子,我想打开一个到服务器的telnet会话。
当我从命令提示符执行命令时,它可以正常工作。
但是当我用钩子执行它时,它失败了,说它没有执行权限。
我的脚本很简单:
#!/bin/sh
REPOS="$1"
REV="$2"
echo -e symeon\\nfrobnitz\\n.say \#foo easitag $REV $(svnlook author $REPOS -r $REV) $(svnlook changed $REPOS -r $REV): $(svnlook log $REPOS -r $REV) | telnet server 8080
钩子在RedHat Enterprise Linux机器上运行。我假设它正在以apache用户身份执行。
任何人都知道为什么?
答案 0 :(得分:0)
两点:
$PATH
。因此,找不到您尝试执行的二进制文件(svnlook
& telnet
)。您需要指定这些路径的完整路径,或在脚本中设置$PATH
。答案 1 :(得分:0)
我在一个相当模糊的论坛上发现了这个:
默认情况下,不允许apache用户建立http连接。要启用此功能,请从root用户执行以下操作:
setsebool -P httpd_can_network_connect 1
发现了 http://forums.phpfreaks.com/topic/64806-solved-could-not-connect-to-server-permission-denied/