Перезагрузка 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 необходимо ввести пароль.

Другие вопросы по тегам