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 版
你知道我该如何解决这个问题吗?
经过一番挖掘,我终于找到了处理这种情况的正确答案。我/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必须输入密码。