I need to reload my php.ini and there's nothing in the help dialog about restarting it.
18 Answers
Note: prepend sudo if not root
Using SysV Init scripts directly:
/etc/init.d/php-fpm restart # typical /etc/init.d/php5-fpm restart # debian-style /etc/init.d/php7.0-fpm restart # debian-style PHP 7Using service wrapper script
service php-fpm restart # typical service php5-fpm restart # debian-style service php7.0-fpm restart # debian-style PHP 7Using Upstart (e.g. ubuntu):
restart php7.0-fpm # typical (ubuntu is debian-based) PHP 7 restart php5-fpm # typical (ubuntu is debian-based) restart php-fpm # uncommonUsing systemd (newer servers):
systemctl restart php-fpm.service # typical systemctl restart php5-fpm.service # uncommon systemctl restart php7.0-fpm.service # uncommon PHP 7
Or whatever the equivalent is on your system.
For Mac OS X, this is what I do:
Make a script /usr/local/etc/php/fpm-restart:
#!/bin/sh
echo "Stopping php-fpm..."
launchctl unload -w ~/Library/LaunchAgents/homebrew-php*.plist
echo "Starting php-fpm..."
launchctl load -w ~/Library/LaunchAgents/homebrew-php*.plist
echo "php-fpm restarted"
exit 0
Then:
chmod ug+x /usr/local/etc/php/fpm-restart
cd /usr/local/sbin
ln -s /usr/local/etc/php/fpm-restart
make sure /usr/local/sbin is in your $PATH
then just call it from the terminal fpm-restart and BOOM!!
- 25,584
- 401
Usually, service php5-fpm restart will do fine, on an up-to-date distribution.
But somtimes, it fails, telling you restart: Unknown instance: (or such).
Now, if you do not like to reboot your server, just kill the processes and have a fresh start (edited as of here):
$ sudo pkill php5-fpm; sudo service php5-fpm start
- 940
- 3
- 12
- 31
I had a problem restarting php7-fpm, because I didn't knew how exactly the service was named. This function gave me the answer:
service --status-all
php7-fpm service in my Ubuntu was called php7.0-fpm, so I did:
service php7.0-fpm restart
- 217
php-fpm will restart if you send a USR2 signal to the main process:
sudo kill -USR2 php-fpm_main_process_id
So we just need to instruct php-fpm to record its pid somewhere. In this example, I'll assume you want to save it at /etc/private/php-fpm.pid, and that php-fpm runs as user _php. First, add this line to the configuration file:
pid = /etc/php-fpm.pid
Then create the file /etc/php-fpm.pid, and make sure php-fpm has permission to modify it:
$ cd /etc
$ sudo touch php-fpm.pid
$ sudo chown _php php-fpm.pid
$ sudo chmod 644 php-fpm.pid
Now, next time php-fpm starts, you'll be able to get its pid and restart it like this:
$ cat /etc/php-fpm.pid
815
$ sudo kill -USR2 815
Or you can combine these into a single command:
$ sudo kill -USR2 `cat /etc/private/php-fpm.pid`
- 161
For me I had just upgraded via apt and the service restart wasn't working. I ended up needing to kill the existing processes before it worked using: killall php5-fpm
- 161
- 2
To allow the PHP-FPM restart script to work, you must use specify a PID file in your php-fpm.conf file. i.e.
pid = /var/run/php-fpm/php-fpm.pid
The default value for pid in php-fpm.conf is nothing, which means to not create a PID file, which means that the restart script can't tell which process to end during the restart.
- 1,226
- 1
- 16
- 27
On CentOS 7
sudo systemctl enable php-fpm // Just incase is disabled. Also ensures it starts automatically with the server
sudo systemctl start php-fpm // Start the service
sudo systemctl stop php-fpm // Stop the service
sudo systemctl status php-fpm // View status
- 171
On RedHat / CentOS 7 using PHP 7 from softwarecollections.org
service rh-php70-php-fpm start
service rh-php70-php-fpm stop
service rh-php70-php-fpm reload
service rh-php70-php-fpm restart
service rh-php70-php-fpm status
or if you're using systemctl:
systemctl start rh-php70-php-fpm
systemctl stop rh-php70-php-fpm
systemctl reload rh-php70-php-fpm
systemctl restart rh-php70-php-fpm
systemctl status rh-php70-php-fpm
The simplest way to find the name of php-fpm service is to search for it:
systemctl -l --type service --all | grep fpm
- 121
For old versions of debian & ubuntu - php 5.6 it will be
/etc/init.d/php-fpm56 restart
service php-fpm56 restart
- 252,907
- 641
On Windows:
Open Services in the Management Console:
Start -> Run -> "services.msc" -> OKSelect
php-fpmfrom the list- Rightclick and select restart
- 26,582
- 8
- 65
- 97
On Alpine with nginx this is working here:
To kill all php-fpm7 processes:
kill $(ps -o pid,comm | grep php-fpm7 | awk '{print $1}')
To start php-fpm7:
php-fpm7
- 185
To list systemd services on CentOS/RHEL 7.x+ use
systemctl
To list all services:
systemctl list-unit-files
Where you can find service named * php-fpm * copy service name and run the following command
systemctl restart ea-php72-php-fpm.service
NOTE : ea-php72-php-fpm.service user your service name
Another method for MaxOS
Open ActivityMonitor, search php-fpm, find the pid.
Open terminal, use kill [pid] to stop php-fpm
Then php-fpm on terminal to start it.
If there is error information that 127.0.0.1:9000 Already in use, just ignore that.
Refresh Nginx page, should see php.ini changes take effects.