OpenLiteSpeed es la edición de código abierto del servidor web LiteSpeed. Destaca por su arquitectura orientada a eventos, su integración nativa con PHP mediante LSAPI (LSPHP) y el módulo de caché LSCache, muy usado con WordPress. En este tutorial instalarás OpenLiteSpeed y PHP 8.3 en Ubuntu 24.04 desde el repositorio oficial de LiteSpeed, crearás un host virtual para tu dominio desde la consola WebAdmin y lo servirás por HTTPS con un certificado de Let's Encrypt.

Requisitos previos

Para seguir esta guía necesitas:

  • Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath, con al menos 1 GB de RAM.
  • Un usuario no root con privilegios sudo.
  • Un dominio (en esta guía, your_domain) con un registro DNS A que apunte a la IP pública del servidor (your_server_ip).
  • Ningún otro servidor web (Apache o Nginx) escuchando en los puertos 80 y 443.
  • UFW activo, con SSH permitido.

Paso 1: Añadir el repositorio de LiteSpeed

LiteSpeed publica sus paquetes en un repositorio propio y distribuye un pequeño script que añade la clave de firma y el archivo de repositorio para tu versión de Ubuntu. Descárgalo, revísalo antes de ejecutarlo y lánzalo con sudo:

curl -fsSL https://repo.litespeed.sh -o litespeed-repo.sh
less litespeed-repo.sh
sudo bash litespeed-repo.sh

Comprueba que el repositorio está disponible y que apt ve el paquete:

sudo apt update
apt policy openlitespeed
openlitespeed:
  Installed: (none)
  Candidate: 1.8.4-1+noble

La versión exacta puede ser más reciente.

Paso 2: Instalar OpenLiteSpeed y PHP 8.3

Instala el servidor junto con LSPHP 8.3 y las extensiones más habituales. Los paquetes lsphp83-* se instalan en /usr/local/lsws/lsphp83/ y no interfieren con el PHP de Ubuntu:

sudo apt install openlitespeed lsphp83 lsphp83-common lsphp83-mysql lsphp83-curl lsphp83-intl

Activa el servicio y comprueba que está en marcha:

sudo systemctl enable --now lsws
sudo systemctl status lsws --no-pager
● lshttpd.service - OpenLiteSpeed HTTP Server
     Loaded: loaded (/etc/systemd/system/lshttpd.service; enabled; preset: enabled)
     Active: active (running) since Thu 2026-09-25 10:02:11 UTC; 5s ago

lsws es un alias de la unidad lshttpd, así que ambos nombres sirven. Verifica también la versión de PHP instalada:

/usr/local/lsws/lsphp83/bin/php -v
PHP 8.3.x (cli) (built: ...) ( NTS )

Por defecto OpenLiteSpeed escucha en el puerto 8088 (sitio de ejemplo) y en el 7080 (consola WebAdmin). Lo cambiarás en los siguientes pasos.

Paso 3: Establecer la contraseña de WebAdmin y abrir el cortafuegos

La consola WebAdmin es la interfaz web desde la que se gestiona toda la configuración. Define el usuario y la contraseña de administración con el script incluido:

sudo /usr/local/lsws/admin/misc/admpass.sh
Please specify the user name of administrator.
This is the user name required to login the administration Web interface.

User name [admin]: admin

Please specify the administrator's password.
This is the password required to login the administration Web interface.

Password:
Retype password:
Administrator's username/password is updated successfully!

Abre los puertos web. Para el puerto 7080 de WebAdmin, permite solo tu IP de administración (your_admin_ip) en lugar de dejarlo abierto a Internet:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from your_admin_ip to any port 7080 proto tcp
sudo ufw status

Abre https://your_server_ip:7080 en el navegador, acepta el aviso del certificado autofirmado e inicia sesión con las credenciales que acabas de crear.

Paso 4: Crear el directorio del sitio

Crea la raíz de documentos del dominio y una página PHP de prueba:

sudo mkdir -p /var/www/your_domain/html /var/www/your_domain/logs
sudo nano /var/www/your_domain/html/index.php
<?php
echo "OpenLiteSpeed funciona. PHP " . PHP_VERSION;

Los procesos de OpenLiteSpeed se ejecutan como el usuario nobody y el grupo nogroup, que solo necesitan leer los archivos. Asigna la propiedad a tu usuario y permisos de lectura para el resto:

sudo chown -R $USER:$USER /var/www/your_domain/html
sudo chmod -R 755 /var/www/your_domain

Si tu aplicación necesita escribir en algún directorio (por ejemplo wp-content/uploads en WordPress), concede escritura solo a ese directorio.

Paso 5: Configurar PHP 8.3 como procesador por defecto

OpenLiteSpeed ejecuta PHP a través de una External App de tipo LSAPI llamada lsphp. Apúntala a la versión 8.3 que instalaste:

  1. En WebAdmin, ve a Server Configuration > External App.
  2. Edita la aplicación lsphp (icono del lápiz).
  3. En el campo Command, escribe lsphp83/bin/lsphp (la ruta es relativa a /usr/local/lsws).
  4. Pulsa Save.

Comprueba en Server Configuration > Script Handler que la extensión php está asociada al manejador lsphp. Así cualquier host virtual que no defina su propio manejador usará PHP 8.3.

Paso 6: Crear el host virtual del dominio

Un host virtual agrupa la configuración de un sitio: raíz de documentos, registros, reglas de reescritura y SSL.

  1. Ve a Virtual Hosts y pulsa + (Add).
  2. Rellena:
    • Virtual Host Name: your_domain
    • Virtual Host Root: /var/www/your_domain/
    • Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
    • Enable Scripts/ExtApps: Yes
    • Restrained: Yes
  3. Pulsa Save. Si WebAdmin avisa de que el archivo de configuración no existe, pulsa CLICK TO CREATE y guarda de nuevo.
  4. Abre el host virtual recién creado, pestaña General, y edita la primera sección:
    • Document Root: $VH_ROOT/html/
    • Domain Name: your_domain
  5. En la misma pestaña, en Index Files, pon Use Server Index Files en No e Index Files en index.php, index.html. Guarda.
  6. En la pestaña Rewrite, edita Rewrite Control y pon Enable Rewrite y Auto Load from .htaccess en Yes. Esto permite usar las reglas .htaccess de aplicaciones como WordPress o Laravel. Guarda.

La configuración queda guardada en /usr/local/lsws/conf/vhosts/your_domain/vhconf.conf.

Paso 7: Crear el listener HTTP en el puerto 80

Los listeners definen en qué IP y puerto escucha el servidor, y a qué host virtual envían cada dominio.

  1. Ve a Listeners y pulsa +.
  2. Rellena Listener Name: HTTP, IP Address: ANY IPv4, Port: 80, Secure: No. Guarda.
  3. Abre el listener HTTP, sección Virtual Host Mappings, pulsa + y elige el host virtual your_domain con Domains: your_domain. Guarda.
  4. Aplica los cambios con el botón de Graceful Restart (icono de flechas en la barra superior).

Opcionalmente, elimina el listener Default del puerto 8088 si no vas a usar el sitio de ejemplo. Comprueba desde el servidor que el sitio responde y que PHP se ejecuta:

curl -i http://your_domain
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Server: LiteSpeed

OpenLiteSpeed funciona. PHP 8.3.x

Paso 8: Activar HTTPS con Let's Encrypt

Instala Certbot desde los repositorios de Ubuntu y obtén un certificado con el método webroot, que deja un archivo de validación dentro de la raíz del sitio y no necesita detener el servidor:

sudo apt install certbot
sudo certbot certonly --webroot -w /var/www/your_domain/html -d your_domain --deploy-hook "systemctl restart lsws"
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/your_domain/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/your_domain/privkey.pem

El parámetro --deploy-hook se guarda en la configuración de renovación, de modo que OpenLiteSpeed se reinicia y carga el certificado nuevo cada vez que Certbot lo renueve automáticamente.

Ahora crea el listener seguro en WebAdmin:

  1. Listeners > +: Listener Name HTTPS, IP Address ANY IPv4, Port 443, Secure Yes. Guarda.
  2. Abre el listener HTTPS, pestaña SSL, edita SSL Private Key & Certificate y rellena:
    • Private Key File: /etc/letsencrypt/live/your_domain/privkey.pem
    • Certificate File: /etc/letsencrypt/live/your_domain/fullchain.pem
    • Chained Certificate: Yes
  3. En la pestaña General del listener, añade en Virtual Host Mappings el host your_domain con el dominio your_domain.
  4. Haz un Graceful Restart.

Para redirigir todo el tráfico HTTP a HTTPS, edita el host virtual, pestaña Rewrite, y en Rewrite Rules añade:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Guarda, reinicia de forma controlada y verifica ambos protocolos:

curl -I http://your_domain
curl -I https://your_domain
HTTP/1.1 301 Moved Permanently
Location: https://your_domain/

HTTP/2 200
server: LiteSpeed

Comprueba también que la renovación automática funcionará:

sudo certbot renew --dry-run

Paso 9: Usar LSCache con tu aplicación

El módulo de caché de OpenLiteSpeed viene compilado y activo, pero no cachea nada por sí mismo: la aplicación indica qué páginas se pueden cachear mediante cabeceras. La forma práctica de aprovecharlo es instalar el plugin LSCache de tu CMS, por ejemplo LiteSpeed Cache para WordPress desde el directorio de plugins. Con el plugin activo, puedes comprobar si una página se sirve desde la caché:

curl -sI https://your_domain | grep -i x-litespeed-cache
x-litespeed-cache: hit

La primera petición devuelve miss y las siguientes hit.

Solución de problemas

curl devuelve 404 o la página del sitio de ejemplo. El dominio no está asociado al host virtual en el listener. Revisa Virtual Host Mappings en el listener del puerto correspondiente y haz un Graceful Restart; los cambios en WebAdmin no se aplican hasta reiniciar.

Los archivos PHP se descargan en lugar de ejecutarse o devuelven 503. Revisa que la External App lsphp apunta a lsphp83/bin/lsphp y que el binario existe con ls /usr/local/lsws/lsphp83/bin/. El registro de errores está en /usr/local/lsws/logs/error.log.

No se puede acceder a WebAdmin en el puerto 7080. Comprueba que tu IP actual coincide con la regla de UFW (sudo ufw status) y que el proceso escucha con sudo ss -tlnp | grep 7080.

Certbot falla la validación. El registro A del dominio debe apuntar a este servidor y el puerto 80 debe responder con el host virtual correcto, porque Certbot escribe el reto en /var/www/your_domain/html/.well-known/acme-challenge/.

Conclusión

Tienes OpenLiteSpeed con PHP 8.3 sirviendo tu dominio por HTTPS, con renovación automática del certificado y la consola WebAdmin restringida a tu IP. Como siguientes pasos puedes instalar MariaDB y desplegar WordPress con el plugin LiteSpeed Cache, añadir más hosts virtuales siguiendo los pasos 4 a 8, o instalar LSPHP 8.4 junto a la 8.3 y asignarlo a un sitio concreto con su propia External App.