如何从php运行.sh文件?

php
2022-08-31 00:48:57

我正在尝试使用php运行shell脚本

shell 脚本 ( /home/scripts/fix-perm.sh ) 位于同一服务器中

这是我正在尝试的代码

<?php
echo shell_exec('/home/scripts/fix-perm.sh');
?>

上面的代码不起作用

我正在使用linux服务器

任何人都可以帮我吗?


答案 1

Shell exec 采用一个字符串,该字符串需要成为实际的命令。您现在正在向它传递文件路径。这不会解释为“在此路径上执行文件”。你可以做几件事。

您需要做的是使用程序调用文件。按照评论中的建议用bash或sh来称呼它:

echo shell_exec('sh /home/scripts/fix-perm.sh');

另一个选项可能是:

$contents = file_get_contents('/home/scripts/fix-perm.sh');
echo shell_exec($contents);

但是,我认为第一种选择会更好。

请务必注意,用于执行外部程序的所有命令都需要实际的命令,而不是文件路径或其他命令。这适用于shell_exec执行,passthru和其他人。


答案 2

我不确定,但你可以尝试在服务器上使用,然后尝试...chmod +x /home/scripts/fix-perm.sh


推荐