Managing ea-phpxx and alt-phpxx Configuration Differences Between v5.3 and Previous Versions
The PHP handlers are configured differently in LiteSpeed Web Server v5.3 than they were in previous versions of LSWS. If you've upgraded from v.5.2.x or earlier, you may need to make some adjustments to your handler configuration.
LSWS v5.2.x and Earlier Behavior
In previous versions of LiteSpeed Web Server, there was no separate handler between alt-phpxx
and ea-phpxx
. Both used the ea-phpxx
handler, no matter which handler was actually specified.
AddType application/x-httpd-alt-php70 .php .php7 .phtml
AddType application/x-httpd-ea-php70 .php .php7 .phtml
Both of these commands resulted in the ea-php70
handler being used.
LSWS v5.3 and Later Behavior
LiteSpeed's current version specifically adds alt-phpxx
(CloudLinux PHP selector) handler suppport for cPanel and CloudLinux systems. Hence, alt-phpxx
and ea-phpxx
must be treated separately.
This allows LSWS to get along better with cPanel's multi-PHP manager better, since either alt-phpxx
or ea-phpxx
can be selected for a domain now. cPanel will add the following to .htaccess
, depending on which PHP was selected, and LSWS will honor the user's choice of alt-phpxx
or ea-phpxx
:
AddType application/x-httpd-alt-php70 .php .php7 .phtml
AddType application/x-httpd-ea-php70 .php .php7 .phtml
Issues with lsphpxx
Let's say you set all lsphpxx
binaries to use alt-phpxx
for all handlers, and then set some per-directory phpto use ea-phpxx
in .htaccess
, like so:
AddType application/x-httpd-ea-php54 .php .php7 .phtml
or
<FilesMatch ".(php4|php5|php3|php2|php|phtml)$"> SetHandler application/x-httpd-ea-php54 </FilesMatch>
Let's also say the server only has ea-php70
installed, and another ea-phpXX
handler is not available.
The following:
SetHandler application/x-httpd-ea-php54
or
SetHandler application/x-httpd-ea-php55
would work with LSWS v5.2.x and earlier, but would fail with LSWS v5.3 and later.
As mentioned, the old way is to treat ea-phpXX
and alt-phpXX
the same. They are handled by the lsphpXX
handler which points to the alt-php
binary, and all is well.
The new way is to treat the ea-phpXX
handler and alt-phpXX
handler separately, and so it fails because ea-phpXX
is not available.
There are two ways to fix this problem.
Method 1: Use the Correct v5.3 Handler
In .htaccess
, change:
SetHandler application/x-httpd-ea-php54
to
SetHandler application/x-httpd-alt-php54
This method allows you to use the correct handler moving forward, but it can be a little time consuming to change all handler settings in all .htaccess
while migrating from v5.2.x to v5.3.
Method2: Make LSWS 5.3 Behave as 5.2.x Did
Update the name of the lsphpXX
external app from lsphpXX
to ea-phpXX
. The executable path is still pointing to the alt-php
binary. This way, ea-phpXX
, alt-phpXX
, and lsphpXX
are all handled by alt-php
handlers.