То, что я пытаюсь достичь, это перезагрузить php7.2-fpm
обслуживание через PHP-Установщик.
В соответствии с Документация 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
У вас есть идеи, как я могу решить эту проблему?
Покопавшись, я наконец нашел правильный ответ, чтобы справиться с ситуацией.
Я редактировал /etc/sudoers
подать следующую команду:
sudo visudo
В конце файла я добавил эту строку:
siamak ALL=(ALL) NOPASSWD:/etc/init.d/php7.2-fpm reload
Это означает, что пользователь siamak
имеет разрешение просто перезагрузить php7.2-fpm
без ввода пароля. Для любых других административных задач, siamak
необходимо ввести пароль.
Других решений пока нет …