The Plesk install path for LiteSpeed Web Server (LSWS) is different enough from the cPanel one that copying the cPanel steps will strand you. Plesk front-ends Apache with an nginx reverse proxy by default, and that proxy has to come down before LSWS can bind the standard ports. Get that order wrong and the extension throws a "cannot start" error that sends people reinstalling the wrong layer.
This guide installs the LiteSpeed Plesk extension, brings up LSWS on a port offset so it runs alongside Apache for testing, then cuts live traffic over. Budget 30 minutes end-to-end on a 2-vCPU VPS, most of it waiting on the LSPHP build. Apache stays on disk, so rollback is one command.
Before you start
- A working Apache-backed Plesk install on AlmaLinux, Rocky, Ubuntu, or Debian. If you're standing up a fresh box first, see install Plesk on AlmaLinux 9 or install Plesk on Ubuntu 24.04.
- An LSWS licence keyed to the server's primary IP. Activate a LiteSpeed licence before you run the installer — the serial goes straight into the install script.
- Root SSH. The web server switch happens over SSH and in the extension, not from the Plesk file manager.
- The PHP handler set to FastCGI. LSWS reads Plesk's PHP handler config, and it only follows FastCGI cleanly. FPM and CGI handlers get remapped inconsistently.
Step 1 — Stop the nginx reverse proxy
LSWS can't bind port 80/443 while nginx holds them. Turn the proxy off first.
In Plesk, go to Tools & Settings → Services Management → Reverse Proxy Server (nginx) and click Stop. Then confirm Apache is actually serving on 80/443:
netstat -lnp | grep httpd
You should see httpd listening on :80 and :443. If nothing's there, Apache didn't
take over the ports — run:
plesk repair web -y
and re-check. Don't proceed until Apache owns the standard ports on its own. LSWS mirrors whatever Apache is serving at install time.
Step 2 — Install the LiteSpeed extension
From Extensions, search "LiteSpeed" in the catalogue and click Install. If you
need a newer build than the catalogue offers, download the .zip from litespeedtech.com
and install it over SSH:
plesk bin extension --install litespeed-plesk.zip
If the Upload Extension button is missing from the UI, add this to
/usr/local/psa/admin/conf/panel.ini and refresh:
[ext-catalog]
extensionUpload = true
The extension is just the control panel — it does not install the web server itself yet. Apache is still in front.
Step 3 — Install LiteSpeed Web Server on a port offset
This is the step that keeps you safe. Install LSWS with a non-zero port offset so it starts on ports 1080/1443 while Apache keeps serving live traffic on 80/443. You test, then flip.
Over SSH, run the installer with your serial number:
bash <( curl https://get.litespeed.sh ) YOUR_SERIAL_NUMBER
Answer the prompts:
- PHP suEXEC level →
2(run PHP as the subscription owner, scoped to their home directory — the right choice for any multi-tenant Plesk box). - Apache port offset →
1000. This puts LSWS on 1080/1443 alongside Apache. - Switch PHP handlers →
3(apply to existing subscriptions and future ones). - Auto-switch to LiteSpeed →
0. You do not want an automatic cutover while the offset is 1000; you'll switch manually once you've tested. - Admin user / email → set a real WebAdmin username and an address that receives licence and error notices.
The installer builds LSWS into /usr/local/lsws/, compiles the LSPHP binaries for every
Plesk PHP version, and imports the Apache vhost config. The LSPHP build is the slow part —
8-12 minutes on a 2-vCPU box.
Now test a site against the offset port before touching production:
curl -I https://yourdomain.example:1443/ -k | grep -i server
Server: LiteSpeed means LSWS is serving that vhost correctly. Click through a WordPress
admin, a checkout, anything with non-trivial .htaccess. Fix problems here, where nobody
downstream sees them.
Step 4 — Switch live traffic to LiteSpeed
Once the offset test is clean, cut over. In the extension, open Switch between Apache and LiteSpeed and click Switch to LiteSpeed. LSWS moves to 80/443 and Apache stops gracefully.
The CLI equivalent, if you prefer scripting the cutover:
/usr/local/lsws/admin/misc/cp_switch_ws.sh lsws
Verify on the real port:
curl -I https://yourdomain.example/ | grep -i server
Server: LiteSpeed on 443 means you're live.
Step 5 — Turn on LSCache for WordPress
LSCache is the reason most operators make the switch, and it's included in the LSWS licence — there's no separate cache cost. From the extension, run the WordPress Cache scan. It walks every subscription, finds WordPress installs, and installs the LiteSpeed Cache plugin (LSCWP) on each. Pick the latest plugin version when prompted.
For sites that run WooCommerce or other logged-in dynamic content, don't stop at page cache — the same ESI hole-punching approach used on cPanel applies here, keeping the cart and account widgets live while the rest of the page serves from cache. Pair it with the LSCache crawler so cache is warm before real visitors hit it.
Rolling back to Apache
If something breaks, switch back:
/usr/local/lsws/admin/misc/cp_switch_ws.sh apache
Apache restarts on 80/443, LSWS drops to standby. Then, if you relied on the nginx proxy, restart it from Services Management. Leave LSWS installed — don't uninstall it — so you can re-run the switch once you've fixed the cause. Uninstalling and reinstalling just rebuilds LSPHP for nothing.
Do I need to stop nginx before installing LiteSpeed on Plesk?+
Will LiteSpeed break my Plesk WordPress Toolkit sites?+
Can I run LiteSpeed and Apache at the same time on Plesk?+
Does the Plesk nginx proxy still work after switching to LiteSpeed?+
Is manually installed LiteSpeed supported on Plesk?+
Next steps
- Compare the paid server against the free build in LiteSpeed vs OpenLiteSpeed if you're still weighing the licence cost against your traffic.
- Squeeze more out of the switch by enabling HTTP/3 and QUIC — the same LSWS listener config applies on Plesk.
- Check which LiteSpeed licence tier fits your worker count, or ask us on /contact about volume pricing for a Plesk fleet.