PHP developerHP is a versatile server-side scripting language that powers a significant portion of the web. As a PHP developer, you may occasionally need to restart PHP to apply changes, resolve issues, or update the PHP configuration. In this guide, we will cover the process of restarting PHP on different platforms and for various web server setups.
Restarting PHP on Apache
If you’re using Apache with mod_php, you will need to restart the Apache web server to restart PHP. The method for restarting Apache varies depending on your operating system:
On Ubuntu/Debian:
Use the following command to restart Apache:
sudo systemctl restart apache2
On CentOS/RHEL:
Use the following command to restart Apache:
sudo systemctl restart httpd
On Windows:
Open the Services application, find the Apache service, right-click on it, and choose Restart.
Restarting PHP on Nginx
Nginx usually uses PHP-FPM (FastCGI Process Manager) to handle PHP requests. To restart PHP, you will need to restart the PHP-FPM service. The method for restarting PHP-FPM varies depending on your operating system:
On Ubuntu/Debian:
Use the following command to restart PHP-FPM:
sudo systemctl restart php-fpm
On CentOS/RHEL:
Use the following command to restart PHP-FPM:
sudo systemctl restart php-fpm
On Windows:
PHP-FPM is not officially supported on Windows. However, if you have installed PHP-FPM through a third-party package, restarting the PHP-FPM service may require restarting the respective package’s service.
Restarting PHP on LiteSpeed
LiteSpeed Web Server uses its native LSAPI to handle PHP requests. To restart PHP, you only need to restart the LiteSpeed Web Server. Use the following command to restart LiteSpeed:
sudo /usr/local/lsws/bin/lswsctrl restart
Conclusion
Restarting PHP is a relatively simple process once you know which web server you are using and the appropriate commands or steps for your operating system. This guide has outlined the necessary steps for restarting PHP on Apache, Nginx, and LiteSpeed web servers running on different platforms. With this knowledge, you can now confidently restart PHP whenever required.
Skip to content
Navigation Menu
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
Appearance settings
Description
I have made changes to my php.ini file.
How do I restart PHP on Windows?
Metadata
Metadata
Development
No branches or pull requests
Issue actions
PHP-FPM (FastCGI Process Manager) is an essential service that manages PHP requests on a web server. Restarting PHP-FPM is often required after making configuration changes, updating PHP versions, or troubleshooting issues. This guide will show different methods to restart PHP-FPM based on your server’s operating system and PHP version.
1. Restart PHP-FPM Using systemctl (Modern Linux Systems)
Most modern Linux distributions, including Ubuntu, Debian, CentOS, and RHEL, use systemd to manage services. Use the following command:
sudo systemctl restart php-fpm
For specific PHP versions (e.g., PHP 7.4 or PHP 8.1), specify the version:
sudo systemctl restart php7.4-fpm
sudo systemctl restart php8.1-fpm
To check the status of PHP-FPM:
sudo systemctl status php-fpm
2. Restart PHP-FPM Using service (Older Systems)
Some older Linux distributions use the service command instead of systemctl:
sudo service php-fpm restart
For specific PHP versions:
sudo service php7.4-fpm restart
sudo service php8.1-fpm restart
3. Restart PHP-FPM Using init.d (Legacy Systems)
On legacy systems that still rely on SysVinit, restart PHP-FPM with:
sudo /etc/init.d/php-fpm restart
For a specific PHP version:
sudo /etc/init.d/php7.4-fpm restart
4. Reload PHP-FPM Without Dropping Connections
Instead of a full restart, you can reload PHP-FPM to apply changes without terminating existing connections:
sudo systemctl reload php-fpm
For specific PHP versions:
sudo systemctl reload php7.4-fpm
5. Stop and Start PHP-FPM Manually
If a restart command doesn’t work, manually stopping and starting PHP-FPM can help:
sudo systemctl stop php-fpm
sudo systemctl start php-fpm
6. Kill and Restart PHP-FPM Processes
If PHP-FPM is unresponsive, manually kill all processes and restart:
sudo pkill -9 php-fpm
sudo systemctl start php-fpm
Conclusion
Restarting PHP-FPM is a crucial step in maintaining web server performance and applying configuration changes. Depending on your Linux distribution and PHP version, you can use systemctl, service, init.d, or manual process termination to restart PHP-FPM effectively.
PHP-FPM (PHP FastCGI Process Manager) is a powerful and widely used process manager for PHP, often favored for its speed and ability to handle high-traffic websites. Knowing how to restart PHP-FPM is crucial for developers and system administrators, especially when applying changes to PHP configurations, resolving issues, or performing routine maintenance. In this article, we will explore several methods to restart PHP-FPM on different systems and in different environments.
Why Restart PHP-FPM?
Before diving into the methods, let’s briefly discuss why restarting PHP-FPM might be necessary:
- Configuration Changes: If you modify PHP settings in the php.ini or php-fpm.conf files, a restart is required for the changes to take effect.
- Performance Optimization: Restarting PHP-FPM can help free up memory and resources, especially on high-traffic sites.
- Error Resolution: If PHP-FPM encounters issues or becomes unresponsive, restarting can help resolve temporary glitches.
- Log Rotation: After rotating log files for PHP-FPM, a restart may be necessary to ensure new logs are written properly.
Prerequisites
Make sure you have root access or the necessary privileges to restart services on your server. Depending on your Linux distribution, you might use different commands like systemctl or service.
Method 1: Using systemctl
On modern Linux distributions such as Ubuntu 16.04+ and CentOS 7+, systemctl is the standard method for managing services, including PHP-FPM. Here’s how you can restart PHP-FPM using systemctl:
Restart PHP-FPM
sudo systemctl restart php-fpm
This command will restart the PHP-FPM service, applying any new configuration changes.
Stop and Start PHP-FPM
If you want more control, you can stop and start PHP-FPM manually:
sudo systemctl stop php-fpm
sudo systemctl start php-fpm
This can be helpful if you need to ensure that the service is completely stopped before starting it again.
Check Status
To ensure that PHP-FPM has restarted successfully, use:
sudo systemctl status php-fpm
This will display the status of the PHP-FPM service, including whether it is active and any recent log messages.
Method 2: Using service Command
The service command is commonly used on older Linux distributions or for backward compatibility. Here’s how to restart PHP-FPM using service:
sudo service php-fpm restart
Or, to stop and start the service separately:
sudo service php-fpm stop
sudo service php-fpm start
Method 3: Restarting Specific PHP-FPM Versions
If you have multiple PHP versions installed, you need to specify the version of PHP-FPM you want to restart. For example, if you have PHP 7.4 installed, use the following command:
sudo systemctl restart php7.4-fpm
Or with service:
sudo service php7.4-fpm restart
This method is particularly useful for environments where different PHP versions are needed for different applications or websites.
Method 4: Sending Signals Directly to PHP-FPM
You can directly send signals to PHP-FPM to reload configurations without fully restarting the service. This is a more subtle approach that can be less disruptive to your web traffic:
Reload Configuration
To reload the PHP-FPM configuration without terminating existing processes, use:
sudo kill -USR2 $(cat /run/php/php-fpm.pid)
Replace /run/php/php-fpm.pid with the path to your actual PID file if it differs. This method is useful when you want to reload configuration changes without restarting all PHP-FPM processes.
Graceful Restart
A graceful restart allows PHP-FPM to finish serving ongoing requests before restarting:
sudo kill -QUIT $(cat /run/php/php-fpm.pid)
This is especially helpful in production environments where you want to avoid interrupting active user sessions.
Method 5: Using pkill or killall
If you’re facing issues with PHP-FPM and need to forcefully stop all processes, you can use pkill or killall. This is a more aggressive method and should be used with caution:
Or:
After killing the processes, you need to start PHP-FPM manually:
sudo systemctl start php-fpm
Method 6: Using Nginx or Apache Restart
In some cases, restarting your web server can indirectly restart PHP-FPM if it’s tightly coupled with the web server’s process. Here’s how you can do that:
Nginx
sudo systemctl restart nginx
Apache
sudo systemctl restart apache2
While this method is not recommended for PHP-FPM-specific issues, it can be useful if you are performing maintenance on your entire web stack.
Best Practices for Restarting PHP-FPM
- Check Logs: Before restarting, check PHP-FPM logs for any errors or warnings. This can help identify underlying issues that may be resolved without a restart.
- Graceful Restarts in Production: Always prefer a graceful restart in a production environment to avoid disrupting users.
- Monitor Resource Usage: Use tools like top, htop, or ps to monitor PHP-FPM processes before and after a restart to ensure it’s operating as expected.
Conclusion
Restarting PHP-FPM is a common task that every server administrator or developer should be familiar with. Whether you are using systemctl, service, sending signals, or performing a graceful restart, knowing the right method for your situation can ensure smooth performance and minimal disruption to your services. By following best practices, you can keep your PHP-FPM running efficiently and handle any issues that may arise with confidence.
I do not have the capability to directly restart PHP on Windows. However, I can provide some steps to restart PHP on a Windows server:
1. Open Task Manager by pressing Ctrl+Alt+Delete or by right-clicking the taskbar and selecting Task Manager.
2. Click on the Processes tab and find the PHP process you want to restart.
3. Right-click on the PHP process and select End process tree. This will terminate the PHP process and all of its child processes.
4. Open the Command Prompt by pressing the Windows key + R and typing cmd, then pressing Enter.
5. Navigate to the PHP installation directory, using the cd command.
6. Type php-cgi.exe -b localhost:9000 and press Enter to start the PHP process.
This should restart the PHP process on your Windows server. Note that the exact steps may vary depending on your PHP installation and configuration.