shell脚本:无法cd到

时间:2017-11-02 21:12:12

标签: php shell

我需要帮助,我想制作一个允许在有网站的服务器上启动/停止/重启程序的网页。

我的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上搜索一些东西,但没有什么可以帮助我。 我可以尝试做什么? 谢谢大家!

1 个答案:

答案 0 :(得分:1)

您需要更改所有目录和脚本的权限,以便网络服务器可以访问它们。

chmod a+rx /home/otaku /home/otaku/JTS_HostingEdition /home/otaku/JTS_HostingEdition/jts_startscript
BTW,在可由不同用户运行的脚本中使用~没有多大意义,因为它会扩展到用户自己的主目录。您应该使用要更改的目录的绝对路径。看起来这只是找到正确的路径,因为webserver的主目录是根目录,因此~/home/home相同。

此外,如果JTSres.shbash脚本,则应使用bash而不是sh运行。

echo shell_exec('bash JTSres.sh');

或者使脚本可执行并使用:

echo shell_exec("./JTSres.sh");