有没有办法使浏览器中的bash脚本输出可见?

我为程序员做了一个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');