Table of Contents

Installing PHP as an RPM for CentOS systems

For LSWS (native) and OpenLiteSpeed, Installing PHP with LiteSpeed SAPI from a repository is much faster than compiling it yourself. Some users also may be unused to compiling PHP and will find this method more comfortable. PHP for LiteSpeed (LSAPI) is available in two repositories — Remi Repository and our own LiteSpeed Repository. Choose the repository that best fits your needs.

LiteSpeed Repository

Les RPM de Remi (Remi Repository)

Installing PHP from the LiteSpeed Repository

The easiest way to get up and running with PHP is to use the LiteSpeed Repository. The LiteSpeed Repository comes with prebuilt PHP packages with LiteSpeed support already built in.

Add EPEL Repository

PHP requires certain packages not available in the default CentOS repos. Because of this, it is required to install the Extra Packages for Enterprise Linux (EPEL) to account for the missing packages. This can be done by running the following command via a command line:

yum install epel-release

Add LiteSpeed Repository

We currently maintain repositories for CentOS 5, 6, and 7. You can add our repository with the following commands:

CentOS 5:

rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el5.noarch.rpm

CentOS 6:

rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el6.noarch.rpm

CentOS 7:

rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm

Note: On CentOS 5, you may need to install the package python-hashlib to avoid the error : “[Errno -3] Error performing checksum” when using the repo

Install a PHP Build

Once you've added our repository, you can use yum to install PHP for LiteSpeed with a variety of modules. The following command will install LSPHP 5.5:

yum install lsphp55

Listing multiple packages will install PHP with multiple modules.

Full list of available packages

Full list of all available packages

Useful PHP Install Commands

Install PHP 5.6 ( 5.4, 5.5, 7.0, 7.1, 7.2 or 7.3, please check with the corresponding application for PHP version and packages requirement) with packages to support most commonly used web applications (WordPress, Joomla, Drupal, Magento, SugarCRM, etc.):

yum install lsphp56 lsphp56-common lsphp56-mysqlnd lsphp56-gd lsphp56-process lsphp56-mbstring lsphp56-xml lsphp56-mcrypt lsphp56-pdo lsphp56-imap lsphp56-soap lsphp56-bcmath lsphp56-intl lsphp56-opcache

or

yum install lsphp70 lsphp70-common lsphp70-mysqlnd lsphp70-gd lsphp70-process lsphp70-mbstring lsphp70-xml lsphp70-mcrypt lsphp70-pdo lsphp70-imap lsphp70-soap lsphp70-bcmath lsphp70-intl lsphp70-json lsphp70-opcache

Note: opcache may sometimes cause a problem and you can remove it/disable it when it happens.

Installing Multiple PHP Versions

The LiteSpeed Repository automatically installs PHP to /usr/local/lsws/lsphp5x/bin/lsphp where 5x is the version and subversion. Thus PHP 5.6 would be installed to /usr/local/lsws/lsphp56/bin/lsphp.

This allows you to easily install multiple versions of PHP because different versions of PHP are installed to different directories.

If you want to install all lsphp52/53/54/55/56, do a group installation.

 yum groupinstall lsphp-all

It can be updated by:

 yum groupupdate lsphp-all   

Direct LSWS to the Location of the Installed PHP

As noted above, the LiteSpeed Repository installs PHP to /usr/local/lsws/lsphp5x/bin/lsphp. This is not the place LSWS normally looks for PHP, so we will now need to direct LSWS to look there.

Go to the WebAdmin console > External App > your external application > Command. Change the Command setting to match the location PHP was installed to (for example, /usr/local/lsws/lsphp56/bin/lsphp for PHP 5.6).

Default php external app settings are:

Name:     lsphp5 (Note:It should be unique to other external apps)
Address:  uds://tmp/lshttpd/lsphp5.sock 
   (Note:socket name can be anything but unique to other external apps, usually the same as external apps name)
Note:     Not Set
Max Connections: 35
Environment: 
           PHP_LSAPI_MAX_REQUESTS=5000
           PHP_LSAPI_CHILDREN=35
Initial Request Timeout (secs):60
Retry Timeout (secs): 0
Persistent Connection: Yes
Connection Keepalive Timeout: Not Set
Response Buffering: No
Start By Server: Yes
Command:   /usr/local/lsws/lsphp56/bin/lsphp 
      ( Note: it should change to the binary you need to point to)
Back Log:  100
Instances: 1
Run As User: Not Set
Run As Group: Not Set
umask:     Not Set
Run On Start Up: Not Set
Max Idle Time: 10
Priority:  0
Memory Soft Limit (bytes): 2048M
Memory Hard Limit (bytes): 2048M
Process Soft Limit: 400
Process Hard Limit: 500

Leave as default from beginning and you can adjust it later according to your needs. You can refer above setting when you create new php external apps.

Click Save and then perform a Graceful Restart for the changes to take effect.

If you prefer using the command line instead of the GUI tool, you can edit the LSWS configuration file (usually /usr/local/lsws/conf/httpd_config.xml) by adding the following to the <extProcessorList>… </extProcessorList> section, assuming to create a lsphp56 which not exist yet, others like lsphp52/lsphp53/lsphp54/lsphp55 can be created the same way with minor change accordingly.

<extProcessor>
  <type>lsapi</type>
  <name>lsphp56</name>
  <address>uds://tmp/lshttpd/lsphp56.sock</address>
  <note></note>
  <maxConns>35</maxConns>
  <env>PHP_LSAPI_MAX_REQUESTS=5000</env>
  <env>PHP_LSAPI_CHILDREN=35</env>
  <initTimeout>60</initTimeout>
  <retryTimeout>0</retryTimeout>
  <persistConn></persistConn>
  <pcKeepAliveTimeout></pcKeepAliveTimeout>
  <respBuffer>0</respBuffer>
  <autoStart>1</autoStart>
  <path>/usr/local/lsws/lsphp56/bin/lsphp</path>
  <backlog>100</backlog>
  <instances>1</instances>
  <extUser></extUser>
  <extGroup></extGroup>
  <runOnStartUp></runOnStartUp>
  <extMaxIdleTime></extMaxIdleTime>
  <priority></priority>
  <memSoftLimit>2048M</memSoftLimit>
  <memHardLimit>2048M</memHardLimit>
  <procSoftLimit>400</procSoftLimit>
  <procHardLimit>500</procHardLimit>
</extProcessor>

Set proper php handler

Ensure php handler set to be associated to the newly created/updated external app. Please refer to this wiki.

Check your PHP installation

You can check that your PHP installation is correct by viewing a phpinfo() page. The phpinfo() page should show the correct version of PHP and LiteSpeed as the server API.

Installing PHP from Remi Repo

The following steps can be used to install PHP 5.6 with LSAPI.

Add the repositories

CentOS5:

rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-5.rpm

CentOS6:

rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-6.rpm

CentOS7:

rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

Remi Repository requires the EPEL repository as well.

yum install epel-release

Enable Remi Repo

Open the Remi repo file:

vi /etc/yum.repos.d/remi.repo

In the [remi-php56] section, set enabled to 1.

Note: The [remi-php55] section is for PHP 5.5. The [remi-php56] section is for PHP 5.6.

Install PHP for LSWS from the repository

Remi's PHP for LSWS (PHP with LSAPI) package is called “php-litespeed”.

yum install php-litespeed

For PHP 5.6:

yum install php php-common php-mysql php-gd php-process php-mbstring php-xml php-mcrypt php-pdo php-imap php-soap php-bcmath php-opcache php-litespeed

For PHP 7.0/7.1:

yum install php php-common php-mysqlnd php-gd php-process php-mbstring php-xml php-mcrypt php-pdo php-imap php-soap php-bcmath php-intl php-json php-iconv php-opcache php-litespeed

Note: You can, of course, also install any other packages you wish. Php-opcache may sometimes cause a problem and you can remove it/disable it when it happens.

Direct LSWS to the Location of the Installed PHP

By default, Remi Repo installs PHP with LSAPI to /usr/bin/lsphp. This is not the place LSWS normally looks for PHP, so we will now need to direct LSWS to look there.

Go to the WebAdmin console > External App > your external application > Command. Change the Command setting to match the location PHP was installed to (/usr/bin/lsphp).

Click Save and then perform a Graceful Restart for the changes to take effect.

Ensure php handler set to be associated to the newly created/updated external app. Please refer to this wiki.

Check your PHP installation

You can check that your PHP installation is correct by viewing a phpinfo() page. The phpinfo() page should show the correct version of PHP and LiteSpeed as the server API.