我有此命令,它在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"'
我想用外部参数解决问题,但这不起作用
答案 0 :(得分:0)
如果php在安全模式下运行,则不允许执行shell_exec
,如php手册中所述:
https://www.php.net/manual/en/ini.sect.safe-mode.php
您可以禁用特定文件夹的安全模式,如“堆栈溢出”问题中所述:
How to turn off php safe_mode off for a particular directory in a shared hosting environment?
答案 1 :(得分:0)
最后,我为仍在搜索的人找到了一个不错的解决方案:
我通过此链接安装了php-ssh2(我使用debian 8,php7)
在我的情况下,我使用codeigniter并遵循链接以实现此类
现在我可以在shell上执行任何命令而不会出现问题了
问题解决了:)
希望有人帮忙:)