通过 php-deployer 部署后无需密码重新加载 php-fpm

Sia*_*agh 4 php sudoers php-deployer fpm

我想要实现的是,php7.2-fpm通过php-deployer重新加载服务。
根据php-deployer's documentation,它可以像下面的代码一样完成:

task('reload:php-fpm', function () {
    run('sudo /usr/sbin/service php7-fpm reload');
});

after('deploy', 'reload:php-fpm');
Run Code Online (Sandbox Code Playgroud)

但是,我在部署时遇到以下错误:

? 执行任务部署:reload_php_fpm

? 在 [生产]

须藤服务 php7.2-fpm 重新加载

在 PhpSecLib.php 第 124 行:
[RuntimeException]
sudo: no tty present and no askpass program specified

系统信息:

PHP 7.2 版
Ubuntu 18.04 LTS
PHP-Deployer 6.3.0 版

你知道我该如何解决这个问题吗?

Sia*_*agh 6

经过一番挖掘,我终于找到了处理这种情况的正确答案。我/etc/sudoers通过以下命令编辑文件:

sudo visudo
Run Code Online (Sandbox Code Playgroud)

在文件的末尾,我添加了这一行:

siamak ALL=(ALL) NOPASSWD:/etc/init.d/php7.2-fpm reload
Run Code Online (Sandbox Code Playgroud)

这意味着,用户siamak有权在php7.2-fpm不输入密码的情况下重新加载。对于任何其他管理任务,siamak必须输入密码。