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/08/10 21:31]
Jackson Zhang [alt-php within Multi-php Manager]
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 86: 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 ​version, please continue to use ''​ea-phpxx'' ​only. Skip this section, ​and follow the above steps to determine if CloudLinux PHP selector is used. Do not use MultiPHP Manager.
  
-{{ :​litespeed_wiki:​cpanel:​cpanel-multiphp-altphp.png?600 |}}+Using cPanel MultiPHP Manager is the recommended method, since it is easy to understand and supports both ''​ea-php''​ and ''​alt-php''​. ​ CloudLinux PHP selector sometimes might be a little complicated to understand, hence it is not recommended. An advanced user can choose either one as preferred, as long as it is understood how CloudLinux PHP selector works together with WHM/cPanel MultiPHP Manager. The 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 well, we 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 |}}
  
-===== Why CloudLinux PHP selector works on Apache but does not work on LSWS===== +===== Why CloudLinux PHP Selector Works on Apache but Does Not Work on LSWS ===== 
-At cPanel EA4 and CloudLinux environment,​ Most of the LSWS LSPHP external apps such as lsphpxx are poiting ​to ea-phpxx, instead of  +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).
-alt-phpxx. Only one external app "cl_phpselector" ​is poiting ​to "/​usr/​local/​bin/​lsphp" ​(CloudLinux PHP selector binary).+
   lsphp54->​ /​opt/​cpanel/​ea-php54/​root/​usr/​bin/​lsphp   lsphp54->​ /​opt/​cpanel/​ea-php54/​root/​usr/​bin/​lsphp
   lsphp55->​ /​opt/​cpanel/​ea-php55/​root/​usr/​bin/​lsphp   lsphp55->​ /​opt/​cpanel/​ea-php55/​root/​usr/​bin/​lsphp
Line 104: Line 109:
   lsphp71->​ /​opt/​cpanel/​ea-php71/​root/​usr/​bin/​lsphp   lsphp71->​ /​opt/​cpanel/​ea-php71/​root/​usr/​bin/​lsphp
   lsphp72->​ /​opt/​cpanel/​ea-php72/​root/​usr/​bin/​lsphp   lsphp72->​ /​opt/​cpanel/​ea-php72/​root/​usr/​bin/​lsphp
-  cl_phpselector->/​usr/​local/​bin/​lsphp+  cl_phpselector->​ /​usr/​local/​bin/​lsphp
  
-For PHP handlers:+PHP handlers:
   php  -> cl_phpselector   php  -> cl_phpselector
   php5 -> cl_phpselector   php5 -> cl_phpselector
Line 116: Line 121:
   php72-> lsphp72   php72-> lsphp72
     ​     ​
- The above is the recommended way and default setup for such an environment. ​+The above is the recommended wayand is the default setup for such an environment. ​
  
 {{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php.png?​800 |}} {{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php.png?​800 |}}
  
-Some users may want to point every external handler to alt-phpxx. Such as the following: +Some users may want to point every external handler to ''​alt-phpxx'',​ like so:
   lsphp54->​ /​opt/​alt/​php54/​usr/​bin/​lsphp   lsphp54->​ /​opt/​alt/​php54/​usr/​bin/​lsphp
   lsphp55->​ /​opt/​alt/​php55/​usr/​bin/​lsphp   lsphp55->​ /​opt/​alt/​php55/​usr/​bin/​lsphp
Line 130: Line 134:
   cl_phpselector->/​usr/​local/​bin/​lsphp   cl_phpselector->/​usr/​local/​bin/​lsphp
   ​   ​
- ​Which ​causes a problem: when a user account inherited cpanel system default PHP version and CloudLinux PHP selector is set to use php70 for that user account, Why apache seems returning the right version of php70 but LSWS seems always returning php56  or other php version alighing with cpanel multi-php manager system default php version?+This causes a problem.
  
-Actually there is nothing wrong with LSWS, LSWS is still follow CloudLinux-cPanel-EA4 php determination work flow+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).
  
-When a user account inherited cpanel system default PHP configurated from cPanel Multi PHP Manageron Apache, CloudLinux PHP Selector ​is used hence it returns right php version ​On ​LSWS, since you change ​the external app associated with cpanel default version ea-php56 in this example. It will look for suffix php56, which is currently using lsphp56.+In actualitythere is nothing wrong with LiteSpeed Web Server. LSWS is following ​the correct CloudLinux-cPanel-EA4 PHP determination work flow
  
-lsphp56 was+  * **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.  ​ 
- lsphp56->​ /​opt/​cpanel/​ea-php56/​root/​usr/​bin/​lsphp+  * **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''​.
  
-However somehow you changed it to the following already+''​lsphp56''​ was: 
- ​lsphp56->​ /​opt/​alt/​php56/​usr/​bin/​lsphp+  lsphp56->​ /​opt/​cpanel/​ea-php56/​root/​usr/​bin/​lsphp 
 + 
 +You changed it to: 
 +  lsphp56->​ /​opt/​alt/​php56/​usr/​bin/​lsphp
  
-then /​opt/​alt/​php56/​usr/​bin/​lsphp is differnt than cpanel ​default ea-php56( /​opt/​cpanel/​ea-php56/​root/​usr/​bin/​lsphp),​ hence CloudLinux PHP Selector won't be used, instead, ​lsphp56 (/​opt/​alt/​php56/​usr/​bin/​lsphp) will be always used for LSWS.+''​/​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.
  
-How to fix it? The key is to tell LSWS to use CloudLinux PHP selector instead of a particular version of alt-php.+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 external app lsphp56 to point to PHP selector binary ​"/​usr/​local/​bin/​lsphp", or more easily, update ​php handler of suffix ​"php56" ​to served by "cl_phpselector" ​instead of "lsphp56".+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 command line or through LSWS Web Admin Console.+You can apply the second solution through ​the command line or through LSWS Web Admin Console.
  
-Through ​command line: +==== Through ​the Command Line ==== 
-vi /​usr/​local/​lsws/​conf/​httpd_config.xml+  vi /​usr/​local/​lsws/​conf/​httpd_config.xml
  
-Current:+Change:
     <​scriptHandler>​     <​scriptHandler>​
       <​suffix>​php56</​suffix>​       <​suffix>​php56</​suffix>​
Line 159: Line 166:
       <​handler>​lsphp56</​handler>​       <​handler>​lsphp56</​handler>​
     </​scriptHandler>​     </​scriptHandler>​
-Change to:+To:
     <​scriptHandler>​     <​scriptHandler>​
       <​suffix>​php56</​suffix>​       <​suffix>​php56</​suffix>​
Line 166: Line 173:
     </​scriptHandler>​     </​scriptHandler>​
     ​     ​
-Through LSWS Web Admin Console:+==== Through LSWS Web Admin Console ​====
  
 Before: Before:
 {{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php-beforefix.png?​800 |}} {{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php-beforefix.png?​800 |}}
-After fix:+After:
 {{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php-afterfix.png?​800 |}} {{ :​litespeed_wiki:​cpanel:​cpanel-ea4-cloudlinux-apache-lsws-different-php-afterfix.png?​800 |}}
  
-Restart LSWS after configuration change.+Restart LSWS after any configuration change.
  • Admin
  • Last modified: 2018/08/10 21:31
  • by Jackson Zhang