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.
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.
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
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
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.
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.
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
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>
Ensure php handler set to be associated to the newly created/updated external app. Please refer to this wiki.
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.
The following steps can be used to install PHP 5.6 with LSAPI.
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
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.
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.
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.