Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reloading php-fpm after deploy via php-deployer without password

What I'm trying to achieve is, to reload php7.2-fpm service via php-deployer.
According to php-deployer's documentation, it can be done like the code below:

task('reload:php-fpm', function () {
    run('sudo /usr/sbin/service php7-fpm reload');
});

after('deploy', 'reload:php-fpm');

However, I face the error below while deploying:

➤ Executing task deploy:reload_php_fpm

↳ on [prod]

sudo service php7.2-fpm reload

In PhpSecLib.php line 124:
[RuntimeException]
sudo: no tty present and no askpass program specified

System info:

PHP Version 7.2
Ubuntu 18.04 LTS
PHP-Deployer Version 6.3.0

Do you have any idea how can I solve this issue?

like image 324
Siamak Motlagh Avatar asked Oct 22 '18 12:10

Siamak Motlagh


1 Answers

After digging around, I finally found the proper answer to handle the situation. I edited /etc/sudoers file by following command:

sudo visudo

At the end of the file, I added this line:

siamak ALL=(ALL) NOPASSWD:/etc/init.d/php7.2-fpm reload

It means that, the user siamak has permission to just reload php7.2-fpm without entering password. For any other administrative tasks, siamak must enter password.

like image 108
Siamak Motlagh Avatar answered Oct 25 '22 01:10

Siamak Motlagh