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

时间:2018-10-22 12:45:24

标签: php fpm sudoers php-deployer

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

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

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

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

  

➤执行任务部署:reload_php_fpm

     

↳[产品]

     
    

sudo服务php7.2-fpm重新加载

  
     

在PhpSecLib.php第124行中:
  [RuntimeException]
   sudo:不存在tty且未指定AskPass程序

系统信息:

  

PHP 7.2版
  Ubuntu 18.04 LTS
  PHP-Deployer版本6.3.0

您知道如何解决此问题吗?

1 个答案:

答案 0 :(得分:1)

深入研究之后,我终于找到了解决问题的正确答案。 我通过以下命令编辑了/etc/sudoers文件:

sudo visudo

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

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

这意味着用户siamak有权重新加载php7.2-fpm,而无需输入密码。对于其他任何管理任务,siamak必须输入密码。