我为程序员做了一个svn更新的脚本。 该脚本从bash工作正常。 程序员想从浏览器(通过他们的pipe理员站点)执行它。
脚本非常简单(它唯一的例子并不完全相同)
#!/bin/bash echo "Start update..." cd /dir/with/site /usr/bin/svn update echo "Update ended."
在浏览器中,bash脚本是通过php文件启动的:
echo system('/updatesvnscript.sh');
在bash中执行它后,我可以看到从回声和svn应用程序的所有输出,脚本在bash中工作良好。
在浏览器中通过PHP启动脚本只给我输出从回声,像Start update... Update ended.
,但没有输出svn。 问题是,当我通过浏览器进行更新时,脚本也没有更新我的网站,所以我需要find问题出在哪里。
所以我想在浏览器中看到svn的输出,看看用svn通过浏览器是不是工作。
Bash脚本具有通过浏览器执行的适当权限,并且具有在站点目录中修改(更新)文件的适当权限。
切换到您的Web服务器/ PHP运行所在的用户标识,然后手动运行,
cd /dir/with/site /usr/bin/svn update
看看你得到了什么。
或者,改变
/usr/bin/svn update
至
/usr/bin/svn update 2>&1
这会将错误消息redirect到标准输出,然后应该显示在您的网页上以帮助诊断。
Subversion使用stderr来向用户显示输出,所以我应该想象这将解决它:
echo system('/updatesvnscript.sh 2>&1');