Перезагрузка php-fpm после развертывания через php-deployer без пароля
То, что я пытаюсь достичь, это перезагрузить php7.2-fpm
сервис через https://deployer.org/.
Согласно документации 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 service php7.2-fpm reload
В строке 124 PhpSecLib.php:
[RuntimeException]
sudo: tty отсутствует и не задана программа askpass
Системная информация:
Версия PHP 7.2
Ubuntu 18.04 LTS
PHP-Deployer Версия 6.3.0
У вас есть идеи, как я могу решить эту проблему?
1 ответ
Покопавшись, я наконец нашел правильный ответ, чтобы справиться с ситуацией. Я редактировал /etc/sudoers
подать следующую команду:
sudo visudo
В конце файла я добавил эту строку:
siamak ALL=(ALL) NOPASSWD:/etc/init.d/php7.2-fpm reload
Это означает, что пользователь siamak
имеет разрешение просто перезагрузить php7.2-fpm
без ввода пароля. Для любых других административных задач, siamak
необходимо ввести пароль.