Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
litespeed_wiki:cpanel:use-cloudlinuxphpselector-on-ea4-with-lsws [2018/05/11 15:02]
Eric Leu [alt-php within Multi-php Manager is not supported by LiteSpeed yet]
litespeed_wiki:cpanel:use-cloudlinuxphpselector-on-ea4-with-lsws [2019/09/25 15:43] (current)
Jackson Zhang
Line 1: Line 1:
 ====== Configuring cPanel EA4 + CloudLinux + LSWS to Use CloudLinux PHP Selector Instead of EA4 MultiPHP ====== ====== Configuring cPanel EA4 + CloudLinux + LSWS to Use CloudLinux PHP Selector Instead of EA4 MultiPHP ======
  
-If you use cPanel EA4 on a CloudLinux system, the LiteSpeed auto-installer script will add the proper external apps for both EA4 MultiPHP and CloudLinux PHP Selector automatically,​ when installing LSWS.  PHP handlers will be set to use EA4 MultiPHP by default with version 5.6.+If you use cPanel EA4 on a CloudLinux system, the LiteSpeed(LSWS < 5.4) auto-installer script will add the proper external apps for both EA4 MultiPHP and CloudLinux PHP Selector automatically,​ when installing LSWS.  PHP handlers will be set to use EA4 MultiPHP by default with version 5.6.  
 + 
 +However, there is an important change starting from LSWS 5.4,  external apps and script handlers are not necessary unless you want to specifily define handlers. External apps may still exist/be inherited if you upgrade LSWS from an earlier version but you may find the external app and script handler empty for the new installation. ​  
 + 
 +The followings are explained how an earlier version of LSWS(<​5.4) exnternal apps and script handler work or inherited external apps and script handlers for LSWS 5.4 and above.
  
 The following external apps are installed: The following external apps are installed:
Line 40: Line 44:
  
 Run the following command to check ''​example1''​ user: Run the following command to check ''​example1''​ user:
-  /usr/bin/cl-selector ​--summary ​php --user example1+  /usr/bin/selectorctl ​--user-summary --user example1
   5.1 e - -   5.1 e - -
   5.2 e - -   5.2 e - -
Line 52: Line 56:
   native e d s   native e d s
 You can set it to use ''​CL PHP Selector 7.0''​ instead of ''​native'':​ You can set it to use ''​CL PHP Selector 7.0''​ instead of ''​native'':​
-  /​usr/​bin/​cl-selector --select=php --version=7.0 --user example1 
-or  ​ 
   selectorctl --set-user-current=7.0 --user=example1   selectorctl --set-user-current=7.0 --user=example1
 To verify: ​ To verify: ​
-  /usr/bin/cl-selector ​--summary ​php --user example1+  /usr/bin/selectorctl ​--user-summary --user example1
   5.1 e - -   5.1 e - -
   5.2 e - -   5.2 e - -
Line 88: Line 90:
 For more on this, see [[https://​docs.cloudlinux.com/​index.html?​php_selector_cpanel.html|the CloudLinux documentation]]. For more on this, see [[https://​docs.cloudlinux.com/​index.html?​php_selector_cpanel.html|the CloudLinux documentation]].
  
-===== alt-php ​within Multi-php ​Manager ===== +===== Using alt-php ​Within MultiPHP ​Manager ===== 
-**It will be supported from 5.3RC1**+**As of LSWS v5.3RC1, you can use alt-php directly from MultiPHP Manager**
  
 +In cPanel & WHM version 66 and later, EasyApache 4 allows you to use Vendor-provided PHP versions such as CloudLinux PHP selector right from MultiPHP Manager. This includes ''​alt-php44'',​ ''​alt-php51'',​ ''​alt-php52'',​ ''​alt-php53'',​ ''​alt-hpp54'',​ ''​alt-php55'',​ ''​alt-php56'',​ ''​alt-php70'',​ ''​alt-php71'',​ ''​alt-php72''​. The ''​alt-php''​s are supported by LiteSpeed from 5.3RC1. ​
  
-In cPanel & WHM version 66 and later, EasyApache 4 allows you to use Vendor-provided PHP versions such as CloudLinux PHP selector right from MultiPHP Manager, such as ''​alt-php44'', ​''​alt-php51''​, ''​alt-php52'', ​''​alt-php53''​, ''​alt-hpp54''​''​alt-php55'', ​''​alt-php56''​''​alt-php70'',​ ''​alt-php71'',​ ''​alt-php72'',​ they will be supported by LiteSpeed from 5.3RC1. If your version under it, please continue ​to use ''​ea-phpxx'' ​and follow the above steps to determine if CloudLinux PHP selector is used but not directly from MultiPHP Manager. ​ +LSWS versions 5.2.x and below //do not// support ​''​alt-php'', ​so if you are still using such a legacy versionplease continue to use ''​ea-phpxx'' ​only. Skip this sectionand follow the above steps to determine if CloudLinux PHP selector is used. Do not use MultiPHP Manager. 
 + 
 +Using cPanel MultiPHP Manager is the recommended methodsince it is easy to understand and supports both ''​ea-php'' ​and ''​alt-php''​.  CloudLinux PHP selector sometimes might be a little complicated to understandhence it is not recommended. An advanced user can choose either one as preferredas long as it is understood how CloudLinux PHP selector works together with WHM/cPanel MultiPHP ManagerThe following section **Why CloudLinux PHP Selector Works on Apache but Does Not Work on LSWS** provides a good example of how complicated ​it can be to try enforcing everything ​to ''​alt-php'' ​while using CloudLinux PHP Selector. Unless you understand it wellwe don't recommend you go through such a complicated path for such little benefit. ​MultiPHP Manager ​could simply make your life easier
  
 {{ :​litespeed_wiki:​cpanel:​cpanel-multiphp-altphp.png?​600 |}} {{ :​litespeed_wiki:​cpanel:​cpanel-multiphp-altphp.png?​600 |}}
 +
 +===== Why CloudLinux PHP Selector Works on Apache but Does Not Work on LSWS =====
 +In a cPanel EA4 and CloudLinux environment,​ Most of the LSWS LSPHP external apps such as ''​lsphpxx''​ are pointing to ''​ea-phpxx'',​ instead of ''​alt-phpxx''​. Only one external app, ''​cl_phpselector''​ is pointing to ''/​usr/​local/​bin/​lsphp''​ (the CloudLinux PHP selector binary).
 +  lsphp54->​ /​opt/​cpanel/​ea-php54/​root/​usr/​bin/​lsphp
 +  lsphp55->​ /​opt/​cpanel/​ea-php55/​root/​usr/​bin/​lsphp
 +  lsphp56->​ /​opt/​cpanel/​ea-php56/​root/​usr/​bin/​lsphp
 +  lsphp70->​ /​opt/​cpanel/​ea-php70/​root/​usr/​bin/​lsphp
 +  lsphp71->​ /​opt/​cpanel/​ea-php71/​root/​usr/​bin/​lsphp
 +  lsphp72->​ /​opt/​cpanel/​ea-php72/​root/​usr/​bin/​lsphp
 +  cl_phpselector->​ /​usr/​local/​bin/​lsphp
 +
 +PHP handlers:
 +  php  -> cl_phpselector
 +  php5 -> cl_phpselector
 +  php54-> lsphp54
 +  php55-> lsphp55 ​  
 +  php56-> lsphp56
 +  php70-> lsphp70
 +  php71-> lsphp71
 +  php72-> lsphp72
 +    ​
 +The above is the recommended way, and is the default setup for such an environment. ​
 +
 +{{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php.png?​800 |}}
 +
 +Some users may want to point every external handler to ''​alt-phpxx'',​ like so:
 +  lsphp54->​ /​opt/​alt/​php54/​usr/​bin/​lsphp
 +  lsphp55->​ /​opt/​alt/​php55/​usr/​bin/​lsphp
 +  lsphp56->​ /​opt/​alt/​php56/​usr/​bin/​lsphp
 +  lsphp70->​ /​opt/​alt/​php70/​usr/​bin/​lsphp
 +  lsphp71->​ /​opt/​alt/​php71/​usr/​bin/​lsphp
 +  lsphp72->​ /​opt/​alt/​php72/​usr/​bin/​lsphp
 +  cl_phpselector->/​usr/​local/​bin/​lsphp
 +  ​
 +This causes a problem.
 +
 +For example: A user account inherits the cPanel system default PHP version, and the CloudLinux PHP selector is set to use ''​php70''​ for that user account. Apache seems to return the correct version of ''​php70'',​ but LSWS always seems to return ''​php56''​ (or whatver cPanel'​s Multi PHP Manager system default PHP version is).
 +
 +In actuality, there is nothing wrong with LiteSpeed Web Server. LSWS is following the correct CloudLinux-cPanel-EA4 PHP determination work flow. 
 +
 +  * **Apache**: When a user account inherits the cPanel system default PHP configuration from cPanel Multi PHP Manager, the CloudLinux PHP Selector is used. Hence it returns the right PHP version.  ​
 +  * **LSWS**: Since you changed the external app associated with the cPanel default version (''​ea-php56''​ in this example), it will look for the suffix ''​php56'',​ which points to ''​lsphp56''​.
 +
 +''​lsphp56''​ was:
 +  lsphp56->​ /​opt/​cpanel/​ea-php56/​root/​usr/​bin/​lsphp
 +
 +You changed it to:
 +  lsphp56->​ /​opt/​alt/​php56/​usr/​bin/​lsphp
 +
 +''/​opt/​alt/​php56/​usr/​bin/​lsphp''​ is differnt than cPanel'​s default ''​ea-php56''​(which is  ''/​opt/​cpanel/​ea-php56/​root/​usr/​bin/​lsphp''​),​ hence the CloudLinux PHP Selector won't be used. Instead, ''​lsphp56''​ (or, ''/​opt/​alt/​php56/​usr/​bin/​lsphp''​) will be always used for LSWS.
 +
 +So, how can you get the PHP version you want? The key is to tell LSWS to use the CloudLinux PHP selector instead of a particular version of alt-php.
 +
 +You can either update the external app ''​lsphp56''​ to point to PHP selector binary ''/​usr/​local/​bin/​lsphp'',​ or more easily, update the PHP handler of suffix ''​php56''​ to be served by ''​cl_phpselector''​ instead of ''​lsphp56''​.
 +
 +You can apply the second solution through the command line or through LSWS Web Admin Console.
 +
 +==== Through the Command Line ====
 +  vi /​usr/​local/​lsws/​conf/​httpd_config.xml
 +
 +Change:
 +    <​scriptHandler>​
 +      <​suffix>​php56</​suffix>​
 +      <​type>​lsapi</​type>​
 +      <​handler>​lsphp56</​handler>​
 +    </​scriptHandler>​
 +To:
 +    <​scriptHandler>​
 +      <​suffix>​php56</​suffix>​
 +      <​type>​lsapi</​type>​
 +      <​handler>​cl_phpselector</​handler>​
 +    </​scriptHandler>​
 +    ​
 +==== Through LSWS Web Admin Console ====
 +
 +Before:
 +{{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php-beforefix.png?​800 |}}
 +After:
 +{{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php-afterfix.png?​800 |}}
 +
 +Restart LSWS after any configuration change.
  • Admin
  • Last modified: 2018/05/11 15:02
  • by Eric Leu