【发布时间】:2017-11-05 15:06:12
【问题描述】:
我有一个问题,我需要从网页启动一个 .sh 脚本,只是不去,从终端开始脚本可以工作并完成它必须做的事情,但是从网络上没有,但是在' Apache2 error.log 没有出错,我不明白它可以是什么..
HTML:
<tr>
<td>JTS</td>
<td>
<form action="JTSstart.php">
<input type="submit" value="START">
</form>
</td>
<td>
<form action="JTSres.php">
<input type="submit" value="RESTART">
</form>
</td>
<td>
<form action="JTSstop.php">
<input type="submit" value="STOP">
</form>
</td>
</tr>
PHP:
<?php
echo exec('bash JTSstop.sh');
sleep(5);
header("Location: 5ondimba.html");
?>
上海:
#!/bin/bash
cd /home/otaku/JTS3ServerMod_HostingEdition
./jts3servermod_startscript.sh stop
我尝试过/测试过的内容: 1) exec 命令,例如 shell_exec,在 php 设置中没有被禁用。 2)文件是用dos2unix转换的。 3) bash -x 在脚本上并且不报告任何类型的错误(实际上,从控制台工作)。
可能是什么?我怎样才能让它工作? 非常感谢!
【问题讨论】:
-
您的 PHP 脚本需要
executable rights!检查PHP-File的chmod并检查您的WebServer,哪个用户将用于执行。 -
echo exec('bash JTSstop.sh');- 你只是在“回声”,而不是在执行。 -
@AdrianPreuss 我不认为这是权限问题,它会在日志中告诉我一些信息,无论如何我已经检查过,我认为一切正常
-
@Don'tPanic 有人建议我使用“echo”,但如果我把它取下来,什么都不会改变
-
不,
it's a permission problem!我在旧项目上使用了相同的东西来启动/重新启动/停止 Web 界面上的服务。检查权限并微笑。您可以检查,如果您有权限问题,是否使用其他命令,例如ls或hostname- 如果您得到结果,例如,您知道,您的脚本无法通过您的实际权限设置访问.