5

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

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

after('deploy', 'reload:php-fpm');

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

➤ 执行任务 deploy:reload_php_fpm

↳ 在 [产品]

sudo 服务 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

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

4

1 回答 1

7

翻来覆去,我终于找到了处理这种情况的正确答案。/etc/sudoers我通过以下命令编辑了文件:

sudo visudo

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

siamak ALL=(ALL) NOPASSWD:/etc/init.d/php7.2-fpm reload

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

于 2018-10-23T08:44:06.680 回答