我需要帮助,我想制作一个允许在有网站的服务器上启动/停止/重启程序的网页。
我的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 shell_exec('sh JTSres.sh');
sleep(5);
header("Location: 5ondimba.html");
?>
和我的sh:
#!/bin/bash
cd ~/home/otaku/JTS_HostingEdition
./jts_startscript.sh restart
现在..当我点击其中一个按钮时没有任何反应,在/ var / log / apache2的error.log上,它说:
JTSres.sh: 2: cd: can't cd to /home/otaku/JTS_HostingEdition
我尝试在stackoverflow上搜索一些东西,但没有什么可以帮助我。 我可以尝试做什么? 谢谢大家!
答案 0 :(得分:1)
您需要更改所有目录和脚本的权限,以便网络服务器可以访问它们。
chmod a+rx /home/otaku /home/otaku/JTS_HostingEdition /home/otaku/JTS_HostingEdition/jts_startscript
BTW,在可由不同用户运行的脚本中使用~
没有多大意义,因为它会扩展到用户自己的主目录。您应该使用要更改的目录的绝对路径。看起来这只是找到正确的路径,因为webserver的主目录是根目录,因此~/home
与/home
相同。
此外,如果JTSres.sh
是bash
脚本,则应使用bash
而不是sh
运行。
echo shell_exec('bash JTSres.sh');
或者使脚本可执行并使用:
echo shell_exec("./JTSres.sh");