PHP文件没有从提交后执行

时间:2011-09-11 12:17:16

标签: php svn bash

我在post-commit中有这个:

#!/bin/sh

REPOS="$1"
REV="$2"

/usr/bin/php /home/name/svn/scripts/post-commit.php $REPOS $REV

但无论我做什么,post-commit.php都没有被执行,甚至没有chmod a + rw。此外,exec没有输出。

我错过了什么?

更新:已删除exec>这个例子中的./logs/log.txt,因为它似乎让人迷惑。

3 个答案:

答案 0 :(得分:1)

exec替换当前的shell进程,并且不会启动新进程。因此,在exec命令之后,shell将停止。

你的特定exec命令的目的让我顺便说一句......所以只需删除它就可以了。

答案 1 :(得分:1)

尝试:

#!/bin/sh
REPOS="$1"
REV="$2"

#debug:
echo "------------------------------"
date >> /tmp/debug.txt
echo "$@" >> /tmp/debug.txt
id >> /tmp/debug.txt
env >> /tmp/debug.txt

/usr/bin/php /home/name/svn/scripts/post-commit.php "$REPOS" "$REV" > /full/path/to/log.txt 2>&1

此外,验证您的帖子脚本在手动执行时是否正常工作。

答案 2 :(得分:0)

你最好首先执行'cd'到你真正希望shell执行的目录。 我不确定SVN在运行时的路径,但当然你的脚本有潜在的特权问题