通过 php-deployer 部署后无需密码重新加载 php-fpm
Reloading php-fpm after deploy via php-deployer without password
我想要实现的是,通过 php-deployer.
According to php-deployer's documentation 重新加载 php7.2-fpm
服务,可以像下面的代码一样完成:
task('reload:php-fpm', function () {
run('sudo /usr/sbin/service php7-fpm reload');
});
after('deploy', 'reload:php-fpm');
但是,我在部署时遇到以下错误:
➤ Executing task deploy:reload_php_fpm
↳ on [prod]
sudo service php7.2-fpm reload
在 PhpSecLib.php 行 124:
[运行时异常]
sudo: 不存在 tty 且未指定 askpass 程序
系统信息:
PHP Version 7.2
Ubuntu 18.04 LTS
PHP-Deployer Version 6.3.0
你知道我该如何解决这个问题吗?
经过深思熟虑,我终于找到了处理这种情况的正确答案。
我通过以下命令编辑了 /etc/sudoers
文件:
sudo visudo
在文件末尾,我添加了这一行:
siamak ALL=(ALL) NOPASSWD:/etc/init.d/php7.2-fpm reload
意思是,用户siamak
有权限只需要重新载入php7.2-fpm
,不用输入密码。对于任何其他管理任务,siamak
必须输入密码。
我想要实现的是,通过 php-deployer.
According to php-deployer's documentation 重新加载 php7.2-fpm
服务,可以像下面的代码一样完成:
task('reload:php-fpm', function () {
run('sudo /usr/sbin/service php7-fpm reload');
});
after('deploy', 'reload:php-fpm');
但是,我在部署时遇到以下错误:
➤ Executing task deploy:reload_php_fpm
↳ on [prod]
sudo service php7.2-fpm reload
在 PhpSecLib.php 行 124:
[运行时异常]
sudo: 不存在 tty 且未指定 askpass 程序
系统信息:
PHP Version 7.2
Ubuntu 18.04 LTS
PHP-Deployer Version 6.3.0
你知道我该如何解决这个问题吗?
经过深思熟虑,我终于找到了处理这种情况的正确答案。
我通过以下命令编辑了 /etc/sudoers
文件:
sudo visudo
在文件末尾,我添加了这一行:
siamak ALL=(ALL) NOPASSWD:/etc/init.d/php7.2-fpm reload
意思是,用户siamak
有权限只需要重新载入php7.2-fpm
,不用输入密码。对于任何其他管理任务,siamak
必须输入密码。