I was trying to get PHP-FPM running a pool as root, but I can't seem to adjust the init.d startup params.
It works when starting PHP-FPM from the CLI (with sudo php-fpm7.0 -DRy /etc/php/7.0/fpm/php-fpm.conf
, but I can't get this to work with the service
command (sudo service php7.0-fpm (re)start
. So Everytime the server reboots, PHP-FPM fails and I would have to run this command.
I have tried to place a file "php-fpm7.0" in /etc/default
with the line DAEMON_ARGS="--daemonize --fpm-config $CONFFILE -R"
, and I even tried add the -R
parameter to the do_start
function in /etc/init.d/php7.0-fpm
directly, but I keep getting the please specify user and group other than root
error.
Is there any way I can get this working on startup and with the service
command?
Off topic: I know all the risks and I know why I shouldn't do it, but I want to anyway. I need to run some scripts to create directories, performing chown commands etc. and the pool will be dedicated to a backend used by an nginx server block which is reachable from within the private 192.168.1.X network only on one specific URL path.
As an alternative I could set up a cron script which executes a PHP script as root, but that approach would cost me a lot more hours.
Best Answer
On systemd systems, you may have to configure this via systemd rather than system V init scripts
The below steps are tested and working on Ubuntu 16.04 LTS. And this is your culprit for redirected init scripts:
1. Edit your php-fpm pool configuration e.g.
/etc/php/7.0/fpm/pool.d/www.conf
and configure root as the user/group as root2. Edit
/lib/systemd/system/php7.0-fpm.service
and append -R to theExecStart
variable to allow the service to run as root3. Reload the configuration
4. Start the service
5. Check it out