php-fpm shell_exec的sudoers在18.04中停止工作

时间:2019-09-30 10:32:15

标签: php ubuntu ubuntu-18.04

我有一堆配置相同的服务器,并且都能正常工作,因此我将其应用于最近安装了18.04的全新服务器,但现在是:

$iptables = shell_exec('sudo /sbin/iptables -t raw -L --line-numbers 2>&1');
var_dump($iptables);
exit;

我知道了

string(54) "sudo: no tty present and no askpass program specified

我曾经有/ etc / sudoers这个精确的命令。但是现在,为了进行测试,我有:

www-data ALL=NOPASSWD: ALL
Defaults:www-data !requiretty

仍保持相同的输出:/。这只能通过nginx在php-fpm中失败。

如果我使用“ php -a”或通过cli启动此命令,它可以正常运行,所以我认为系统/配置程序可以,但仍然无法确定php-fpm的不同之处。

www-data@ns368791:/root$ php -a
Interactive mode enabled

php > $iptables = shell_exec('sudo /sbin/iptables -t raw -L --line-numbers 2>&1');
php > var_dump($iptables);
string(197) "Chain PREROUTING (policy ACCEPT) ....

我的设置是:

php --version
PHP 7.2.22-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Sep  2 2019 12:54:33) ( NTS )

root@ns368791:~# uname -a
Linux ns368791 4.15.0-64-generic #73-Ubuntu SMP Thu Sep 12 13:16:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

root@ns368791:~# nginx -v
nginx version: nginx/1.16.1

谢谢

0 个答案:

没有答案