shell linux 不要执行命令

shell linux don't execute commande

我有这个命令,它在 shell 上运行良好。 我想 运行 它与 php 但它不起作用 我错过了什么:

已编辑:

$arg="arg1"; $arg2= "arg2";

echo shell_exec("sshpass -p ".escapeshellarg($arg)." ssh -t root@00.00.00.00 'asterisk -rx ".escapeshellarg($arg2)."'");

此更改后输出没有错误,但命令仍未执行

已编辑: 原来的命令是这样的:

sshpass -p 'arg1' ssh -t root@00.00.00.00 'asterisk -rx "arg2"'

我想用外部参数解决这个问题,但它不起作用

如果 php 在安全模式下是 运行,它将不允许执行 shell_exec,如 php 手册中所述:。 https://www.php.net/manual/en/ini.sect.safe-mode.php

您可以禁用特定文件夹的安全模式,如 Stack Overflow 问题中所述:

How to turn off php safe_mode off for a particular directory in a shared hosting environment?

最后我找到了一个很好的解决方案,谁还在搜索:

我安装了 php-ssh2 link(我使用的是 debian 8,php7)

blog.programster.org

在我的例子中,我使用 codeigniter 我按照 link 来实现这个 class

bitbucket.org

现在我可以毫无问题地在 shell 上执行任何命令

问题解决了:)

希望对某人有所帮助:)