Setting Up Per-Directory Different PHP Versions Using PHP Selector for LSWS

CloudLinux already supports different PHP versions per directory. How is this different?.

In the standard CloudLinux PHP Selector setup, each user can select a different PHP version, but only one version can be selected for the entire user account.

If you require different PHP versions for different directories within one cage user account, you can follow the setup outlined in this wiki, but proceed carefully as these steps assume unmodified CloudLinux and cPanel configurations.

If you are using a control panel (like cPanel), you may use this for EA3. It is not recommended for EA4 installations.

To use this feature on CloudLinux, minor manual changes to the Apache configuration are required as per the CloudLinux link above:

1. Configure handlers for different versions and point them to already provided PHP-CGI binaries; they all are visible from CageFS inside. Add the following section to the end of /opt/suphp/etc/suphp.conf:

application/x-httpd-php52="php:/opt/alt/php52/usr/bin/php-cgi" 
application/x-httpd-php53="php:/opt/alt/php53/usr/bin/php-cgi" 
application/x-httpd-php54="php:/opt/alt/php54/usr/bin/php-cgi" 
application/x-httpd-php55="php:/opt/alt/php55/usr/bin/php-cgi" 
application/x-httpd-php56="php:/opt/alt/php56/usr/bin/php-cgi"

2. Add suphp handlers for each version, this should be done before other configs. On cPanel server, edit /usr/local/apache/conf/includes/pre_main_global.conf and add following section:

suPHP_AddHandler application/x-httpd-php52 
suPHP_AddHandler application/x-httpd-php53 
suPHP_AddHandler application/x-httpd-php54 
suPHP_AddHandler application/x-httpd-php55 
suPHP_AddHandler application/x-httpd-php56

This concludes the settings modifications.

Now to make LiteSpeed compatible with PHP selector per directory:

Step1: Force upgrade to the latest LSWS version

  /usr/local/lsws/admin/misc/lsup.sh -f -v <version>

Step2: In the admin console, create handlers for lsphp52/lsphp53/lsphp54/lsphp55/lsphp56/lsphp70. Each handler should point to a CloudLinux PHP selector LSPHP binary, such as /opt/alt/php5x/usr/bin/lsphp.

Step3: In the admin console, create suffixed .php52 .php53 .php54 .php55 .php56 .php70 and associate them with above related external app handlers.

Step4: Restart LSWS.

  • Admin
  • Last modified: 2017/07/06 16:12
  • by Kacey Schroeder