Skip to content

PHP

When LiteSpeed Web Server is installed on a cPanel/WHM installation, it auto configures LSPHP to work out of the box. There are no extra steps that are needed to get LSPHP working.

For WHM, LSWS will automatically detect the handler installed, and use the cPanel MultiPHP Manager/CloudLinux PHP Selector defined PHP version. There is no external app or script handler required unless you have some special need to override settings.

New installations of LSWS won't have any external apps or script handlers. If upgrading from earlier versions, some external apps and script handler settings may be carried over. Sometimes certain lsphp versions, such as lsphp73 or lsphp74, may be missing. This is absolutely fine. You don't need to manually add them, since LSWS doesn't require them in an external app and will use either ea-phpxx or alt-phpxx automatically, as defined by cPanel MultiPHP Manager/CloudLinux PHP Selector.

mod_lsapi

It is not recommended to use mod_lsapi. This is an Apache Module that can cause issues when running with LiteSpeed Web Server + LSAPI. To disable this, navigate to WHM > MultiPHP Manager > PHP Handlers and switch the PHP Handlers to anything other than mod_lsapi.

PHP-FPM

If you have set your PHP to use FPM inside of WHM > MultiPHP Manager, you will want to disable it. This can be done by disabling PHP-FPM for each version of PHP under WHM > MultiPHP Manager.

Restart PHP

In the past, if there were any php.ini changes, you would have wanted to restart LSWS to apply the changes, as LSWS would restart PHP processes as well.

As of LiteSpeed Web Server version 5.3, PHP runs in Detached mode and will not be restarted when LSWS restarts. If you want to make php.ini changes effective immediately, there are a few ways to restart PHP processes.

Specific User

To restart detached PHP processes for the account (vhost) level, you can touch a .lsphp_restart.txt file under the user's home directory:

$ touch /path/to/user/home/dir/.lsphp_restart.txt

Once .lsphp_restart.txt is created, the user's PHP will be restarted when the next request comes in. The file .lsphp_restart.txt will not be removed. LSWS will check the timestamp of the file to decide if the user's detached PHP needs to be restarted or not. You can manually remove it if you want to but it's not necessary. Every time you want to restart that user's detached PHP, touch the file again, whether it already exists or not, in order to refresh the timestamp.

To maintain CloudLinux mod_lsapi CRIU feature compatibility, the server will restart PHP if it finds a mod_lsapi_reset_me file as well.

$ touch /path/to/user/home/dir/mod_lsapi_reset_me

The user may also restart detached PHP processes from the Advanced page of the LiteSpeed Web Cache Manager cPanel plugin, which is accessible from within the cPanel dashboard.

Server

There are two ways to restart detached PHP processes the server level.

Method 1

Use the pkill lsphp command. All PHP workers will be immediately stopped and a new set of workers will restart right away.

Method 2

Touch an .lsphp_restart.txt file under the <lsws_server_root>/admin/tmp/ directory. (Usually that is /usr/local/lsws/admin/tmp/.)

$ sudo touch /usr/local/lsws/admin/tmp/.lsphp_restart.txt

This can also be accomplished from the Actions page of the LiteSpeed WebAdmin Console, or by using the Restart Detached PHP Processes button in our control panel plugins.

All running detached PHP processes will be restarted, but not immediately. Instead, they will restart one by one, as soon as the server needs to use each PHP handler.


Last update: August 1, 2023