Tom Tucker Asked: 2021-02-16 14:40:11 +0800 CST2021-02-16 14:40:11 +0800 CST 2021-02-16 14:40:11 +0800 CST 如何允许 PHP exec 重新加载 NGINX 772 如何在 PHP 中允许这些命令: $output = exec('sudo nginx -t 2>&1'); $output2 = exec('sudo /usr/sbin/service nginx reload 2>&1'); 我已经查看了终端,但当我只需要上述两个时sudo visudo,似乎可以访问所有sudo 命令。 我想重新加载不是那么重要,因为我可以运行一个 cron 作业来做到这一点。 我正在使用 NGINX,带有 Ubuntu 20 + PHP 7 ubuntu php sudo nginx exec 1 个回答 Voted Best Answer Tero Kilkanen 2021-02-16T23:03:41+08:002021-02-16T23:03:41+08:00 您可以将以下几行放入/etc/sudoers.d/nginx: www-data ALL = (root) NOPASSWD: /usr/sbin/nginx -t www-data ALL = (root) NOPASSWD: /usr/sbin/service nginx reload 这会在运行时禁用密码提示,sudo /usr/sbin/service nginx reload或者在以www-data. 这假设您的 PHP 在www-data用户下运行。
您可以将以下几行放入
/etc/sudoers.d/nginx
:这会在运行时禁用密码提示,
sudo /usr/sbin/service nginx reload
或者在以www-data
.这假设您的 PHP 在
www-data
用户下运行。