Search code examples
phpsudofpm

Allow users to reload PHP FPM without Sudo


On our development servers, we allow multiple developers access to the server to git pull their changes. Normally this requires running sudo systemctl reload php-fpm (or sending USR2, etc.). However, we want to allow them to reload the changed code in PHP-FPM without needing sudo.

Way back when when I used to use Ruby, you could do exactly what I'm looking for by touching a file named restart.txt in the tmp directory.

Does PHP-FPM support anything like that? Alternatively, is there anyway to allow the reload command (or any similar method of sending a USR2) without sudo?


Solution

  • You'll probably be there when whitelisting the command in your /etc/sudoers file:

    Start by editing the sudoers file:

    sudo visudo
    

    Add the following config line:

    user ALL=(root) NOPASSWD: systemctl reload php-fpm
    

    Replace user (at the beginning of the line) with the real username, for whom the command is executed.

    This will privilege the user to call sudo systemctl reload php-fpm being executed as root (without password).