Configuration

Set Up Cache Root and Enable LiteSpeed Cache Throughout the Server

Cache Storage Settings

Set Server-Level Cache Root

Add the following lines to the /etc/httpd/conf/extra/httpd-includes.conf file.

<IfModule Litespeed>
  CacheRoot /home/lscache
</IfModule>

!HTTPD Includes

Warning

It is recommended that you set the server-level cache root to /home/lscache/ or a disk partition with enough space. Please never set cache root to /tmp/ folder.

Set Virtual-Host-Level Cache Root for all Virtual Hosts

Create a /usr/local/directadmin/data/templates/custom/cust_httpd.CUSTOM.2.pre file

<IfModule Litespeed>
  CacheRoot lscache
</IfModule>

This is done to set each Virtual Hosts' cache directory to its home directory (/home/<user>/lscache).

Apply these changes to all Virtual Hosts by running the following command:

cd /usr/local/directadmin/custombuild
./build rewrite_confs

LiteSpeed Web Server will be restarted after running above commands.

Set up DirectAdmin LiteSpeed Plugin to manage Cache Installations

Download the DirectAdmin Plugin .tgz file from here.

Log into the DirectAdmin Panel with the admin username, or with a user which has admin-level authorizations. After you're logged in, navigate to the Plugin Manager section. It is usually located at https://your-directadmin-server:2222/admin/plugin-manager.

Click Add New.

!Add Plugin

Click Upload, and select the .tgz file you downloaded. In the Password section, Enter your DirectAdmin user's password. Click Install.

Once the installation is complete, you should be see the Litespeed Webserver Plugin option listed among Extra Features.

!LSWS Plugin

Using the Plugin

From within the LSCWP Version Manager section, select the WordPress plugin version you'd like to install on all WordPress websites hosted on the server.

From the Manage Cache Installations section, click Scan to search the entire server for existing WordPress installations. You can also enable or disable cache for individual websites from here.

From the Mass Enable/Disable Cache section, you can Enable or Disable Cache on all scanned WordPress installations throughout the server. This is safe because it automatically skips the WordPress installations which have a different cache plugin installed.

This plugin can also be used to access the Litespeed WebAdmin Console to manage license-based functions.

Set up ModSecurity Rules for LiteSpeed with DirectAdmin

By default, DirectAdmin CustomBuild can install OWASP rulesets without a third party installation script. You can run the following commands to enable ModSecurity and install OWASP rules automatically:

cd /usr/local/directadmin/custombuild
./build set modsecurity yes
./build set modsecurity_ruleset owasp
./build modsecurity

If you prefer Comodo WAF, DA CustomBuild may call the Comodo client agent script to install the rule set, but you run a risk of installing the Apache ruleset instead of the LiteSpeed ruleset. (The two servers have different rulesets for Comodo WAF.) In order to avoid installing the wrong ruleset, we recommend following the Comodo WAF Quick Start Guide instead of using CustomBuild for this.

Verify LiteSpeed is Running Correctly on Websites and LiteSpeed Cache is Working

Now that the installation and enablement process for your server has been completed, it's time to verify that your websites are running on LiteSpeed and that LiteSpeed Cache is working correctly on your WordPress websites.

Select User Level and Click Domain Setup and open any customer’s website, and check its headers, like so:

!Cache Verify

The headers should show Server as LiteSpeed and X-LiteSpeed-Cache as hit or miss.

The X-LiteSpeed Cache header will only be shown on Websites which have LiteSpeed Cache enabled at that moment. Other websites will show Server as LiteSpeed only, and will continue to use benefits provided by LiteSpeed without caching.

Headers can be checked by using browser extensions.

Set Up Default PHP Version

When DirectAdmin sets up an Apache virtual host, it does not set a PHP handler version, and Apache uses php1 by default in the absence of a specified PHP version. LiteSpeed, on the other hand, does not use php1 as the default PHP version when there is no PHP version specified. You will need to set up a default PHP version for LiteSpeed through the LiteSpeed WebAdmin Console.

Log into LSWS WebAdmin Console, navigate to Configuration > Server > PHP, and set Default PHP Versions to phpxx, where xx is the PHP version you wish to use.

Example

Use php74 for PHP v7.4

Tip

Default PHP Versions is a generic PHP handler customization, and is not specific to DirectAdmin. It applies to all control panels and to standalone installation. cPanel or Plesk may override the default through Apache httpd.conf, but DirectAdmin relies only on this setting, as it has no PHP handler override for Apache.

!Default PHP

Set Up Multiple PHP Versions

DirectAdmin CustomBuild allows multiple PHP versions when you build PHP. In /usr/local/directadmin/custombuild/options.conf, you can build four diferent php versions using php1_release, php2_release, php3_release, and php4_release. Once they have been built, any type of handler, such as lsphp, php-fpm, fastcgi, etc., will be stored in /usr/local/phpxx/bin/. php1_release will be the default PHP version unless it is overridden by the AddHandler specification.

In the DirectAdmin Control Panel, you can choose a domain's PHP version from the list in the DA PHP Selector at the domain level configuration.

Select User Level, click Domain Setup, and select any website from the list. Head over to the PHP Version Selector option and select the desired PHP Version. Press the Save button.

!DA Multi PHP

After a PHP version such as php72 is selected, DirectAdmin will write the handler configuration to the domain's virtual host Apache confgiguration, like so: AddHandler application/x-httpd-php72 .php

How to Use CloudLinux PHP Selector with DirectAdmin

When you install CloudLinux and CloudLinux PHP Selector to Direct Admin, both CloudLinux PHP Selector and DA PHP Selector will take effect. CloudLinux PHP selector is per-user, while DA PHP Selector is per-domain. DA PHP Selector always overrides PHP version at the domain level. If you don't use DA PHP Selector on a domain, then CloudLinux PHP Selector is in effect.

Example

If you, as a user, select php73 in Cloud Linux PHP Selector, you may still select php56 for one or more domains under your user account.

The CloudLinux PHP Selector interface can be found at the user level after login, under Advanced Features > Select PHP Version.

!CL Multi PHP

According to DirectAdmin documentation, if you're running CloudLinux and have php1_mode=lsphp, you'll be able to use the CloudLinux PHP Selector plugin.

Tip

If you also use the DirectAdmin PHP selector, the CloudLinux selection only takes effect if the domain is using the first DA PHP instance.

CloudLinux documentation notes: to prevent DirectAdmin PHP Selector from interfering with CloudLinux PHP Selector, you need to have only one PHP version built on the server with CustomBuild.

While the linked documentation above deals with Apache, LiteSpeed Web Server will work the same way.

In any case, if there is any interference between CloudLinux PHP Selector and DirectAdmin PHP Selector, and you cannot work out the correct overriding logic between DA and CL, you can simply force LiteSpeed to use the CloudLinux PHP Selector by adding the following to .htaccess

<IfModule LiteSpeed>
    AddHandler application/x-httpd-phpsel .php
</IfModule>

More specifically, you can override to a particular alt-php version such as php74 by adding the following to .htaccess:

<IfModule LiteSpeed>
    AddHandler application/x-httpd-alt-php74 .php
</IfModule>

Control HTTP/2 and HTTP/3 via Apache Config

You can enable and disable a variety of protocols including HTTP/3 and HTTP/2 in httpd.conf, using the SpdyEnabled directive, like so:

<IfModule LiteSpeed>
SpdyEnabled http3
</IfModule>

Other valid parameters are spdy2, spdy3, http2 and off.

All protocols are enabled by default. As such, if you wish to use all SPDY, HTTP/2, and HTTP/3 protocols, there is no need for a SpdyEnabled directive at all.

Tip

When you use this directive to explicitly enable one or more protocols, anything not selected will be disabled. For example, SpdyEnabled http2 will enable HTTP/2, while SPDY and HTTP/3 will be disabled. Be careful not to inadvertantly disable a protocol you wanted to use!

Switch Between Apache and LiteSpeed

If you have a need to switch between Apache and LiteSpeed you may use the following commands:

/usr/local/lsws/admin/misc/cp_switch_ws.sh apache
/usr/local/lsws/admin/misc/cp_switch_ws.sh lsws


Last update: June 23, 2021