Servidor web · 14 min read · Nov 24, 2025

Cómo instalar y configurar el servidor OpenLiteSpeed junto con MariaDB y PHP en Ubuntu 20.04

OpenLiteSpeed es una versión ligera y de código abierto del servidor LiteSpeed desarrollado por LiteSpeed Technologies. Viene con un panel de administración basado en WebGUI que lo hace diferente de otros servidores y más fácil de gestionar.

En este tutorial, aprenderemos cómo instalar el servidor OpenLiteSpeed en Ubuntu 20.04 junto con PHP 7.4 y el servidor MariaDB.

Prerrequisitos

  • Servidor web basado en Ubuntu 20.04.
  • Una cuenta de usuario no root con privilegios de sudo.

Actualiza tu sistema.

$ sudo apt update
$ sudo apt upgrade

Paso 1 - Configurar el Firewall

Antes de comenzar con el tutorial, necesitamos configurar el Firewall poco complicado (UFW) que generalmente está habilitado por defecto. Primero, verifiquemos el estado del firewall.

Necesitamos habilitar SSH, HTTP, HTTPS y los puertos 7080, 8088 para el firewall.

$ sudo ufw allow OpenSSH
$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow 7080/tcp
$ sudo ufw allow 8088/tcp

Verifica el estado del firewall.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
7080/tcp                   ALLOW       Anywhere                  
8088/tcp                   ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
7080/tcp (v6)              ALLOW       Anywhere (v6)             
8088/tcp (v6)              ALLOW       Anywhere (v6)     

Si no está funcionando, inicia el firewall.

$ sudo ufw enable

Paso 2 - Instalar OpenLiteSpeed

Hay varias versiones de OpenLiteSpeed que puedes instalar. Las versiones recomendadas son de la serie 1.6.x o 1.7.x al momento de escribir este tutorial.

Usaremos el repositorio oficial de OpenLiteSpeed para nuestro tutorial, que mantiene solo la versión 1.6.x.

Agrega la clave del repositorio de OpenLiteSpeed.

$ wget -qO - https://rpms.litespeedtech.com/debian/lst_repo.gpg | sudo apt-key add -

Agrega el repositorio.

$ echo "deb http://rpms.litespeedtech.com/debian/ focal main" | sudo tee /etc/apt/sources.list.d/openlitespeed.list

Actualiza el repositorio.

$ sudo apt update

Instala OpenLiteSpeed

$ sudo apt install openlitespeed

Verifica el estado del servidor.

$ sudo /usr/local/lsws/bin/lswsctrl status
litespeed is running with PID 21825.

Si no está en ejecución, puedes iniciarlo con el siguiente comando.

$ sudo /usr/local/lsws/bin/lswsctrl start

Abre http://:8088 para acceder a tu servidor web. Deberías ver la siguiente página.

Página predeterminada de OpenLiteSpeed

Paso 3 - Instalar PHP

El servidor OpenLiteSpeed se envía con PHP 7.3 que está prehabilitado. Pero queremos usar PHP 7.4, así que instalaremos nuestra propia copia.

Instala PHP 7.4 junto con algunos paquetes adicionales.

$ sudo apt install lsphp74 lsphp74-common lsphp74-mysql lsphp74-curl

Verifica tu instalación de PHP.

$ /usr/local/lsws/lsphp74/bin/php7.4 -v
PHP 7.4.5 (cli) (built: May  7 2020 23:08:38) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.5, Copyright (c), by Zend Technologies

Puedes verificar los módulos de PHP habilitados.

$ /usr/local/lsws/lsphp74/bin/php7.4 --modules

Configuraré PHP para trabajar con OpenLiteSpeed más adelante.

Paso 4 - Instalar MariaDB

Instala el servidor MariaDB.

$ sudo apt install mariadb-server

Inicia y habilita el servicio de MariaDB.

$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

Asegura tu instalación de MariaDB. Este script establecerá tu contraseña de root, eliminará usuarios anónimos, deshabilitará el inicio de sesión remoto de root y eliminará tablas de prueba. Elige una contraseña fuerte y responde a las preguntas como se describe a continuación.

$ sudo mysql_secure_installation
[sudo] password for username: 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB 
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Una vez hecho esto, puedes iniciar sesión en el shell de MySQL usando el siguiente comando.

$ sudo mysql -u root -p

Crea una base de datos de prueba y un usuario con permisos de acceso. Reemplaza testdb y testuser con nombres apropiados para tu configuración. Reemplaza password con una contraseña fuerte.

CREATE DATABASE testdb;
CREATE USER 'testuser' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
FLUSH PRIVILEGES;

Sal del shell de MySQL.

exit

Paso 5 - Configurar OpenLiteSpeed

Configurar el panel de administración

Establece las credenciales del panel de administrador.

$ 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]: 

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!

También puedes usar este comando en caso de que olvides tus datos de inicio de sesión.

Para acceder al panel de administración, abre http://:7080.

En tu primer inicio de sesión, tu navegador dará advertencias diciendo que tu conexión no es privada. Haz clic en Avanzado y haz clic en “Aceptar el riesgo y continuar” (en caso de Firefox) o “Proceder a (inseguro) “ (en caso de navegador basado en Chromium). No verás la advertencia nuevamente.

Serás recibido por la siguiente pantalla.

Página de inicio de sesión de OpenLiteSpeed

Cambiar el puerto HTTP de nuevo a 80

Cambiemos el puerto HTTP predeterminado a 80. Inicia sesión en tu panel de administración en http://:7080 con las credenciales que acabas de crear.

Serás recibido por la siguiente pantalla.

Página de inicio de OpenLiteSpeed

Visita la sección Listeners desde la izquierda. Verás los oyentes predeterminados con el puerto 8080.

Oyentes de OpenLiteSpeed

Haz clic en el botón Ver para ver la configuración de detalles. En la siguiente página, bajo Listener Default > General Page, haz clic en el ícono de Editar y cambia el puerto de 8080 a 80.

Oyente predeterminado de OpenLiteSpeed

Editar oyente de OpenLiteSpeed

Haz clic en Guardar y luego reinicia el servidor haciendo clic en el botón Reinicio suave.

Paso 6 - Configurar PHP

En este paso, necesitamos asociar nuestra copia de PHP 7.4 con el servidor.

Haz clic en la sección Configuración del servidor a la izquierda y luego en la pestaña Aplicación externa. Verás una aplicación LiteSpeed existente para PHP 7.3. Crearemos nuestra propia aplicación LiteSpeed para PHP 7.4. Puedes cambiar fácilmente entre ellas más adelante si lo deseas.

Aplicaciones externas

Haz clic en el botón Agregar para crear una nueva aplicación. Para el tipo, selecciona LiteSpeed SAPI App y haz clic en Siguiente.

Configuración de aplicación externa

A continuación, agrega la configuración a continuación. Deja todos los demás campos en blanco.

Name: lsphp74
Address: uds://tmp/lshttpd/lsphp.sock
Max Connections: 35
Environment: PHP_LSAPI_MAX_REQUESTS=500
             PHP_LSAPI_CHILDREN=35
             LSAPI_AVOID_FORK=200M
Initial Request Timeout (secs): 60
Retry Timeout : 0
Persistent Connection: Yes
Response Buffering: no
Start By Server: Yes(Through CGI Daemon)
Command: lsphp74/bin/lsphp
Back Log: 100
Instances: 1
Priority: 0
Memory Soft Limit (bytes): 2047M
Memory Hard Limit (bytes): 2047M
Process Soft Limit: 1400
Process Hard Limit: 1500

Haz clic en Guardar cuando termines.

Aplicación LiteSpeed SAPI

Ahora que hemos creado nuestra propia aplicación basada en PHP 7.4, necesitamos indicarle al servidor que comience a usarla.

Ve a la pestaña Manejador de scripts y edita el manejador lsphp. Cambia el nombre del manejador a lsphp74 desde el menú desplegable.

Definición del manejador de scripts

Haz clic en Guardar y luego reinicia el servidor haciendo clic en el botón Reinicio suave.

Para probar si tu PHP se ha cambiado correctamente, visita http:///phpinfo.php en tu navegador.

Información de PHP

Paso 7 - Configurar el Host Virtual

Primero, necesitamos crear directorios para nuestro host virtual.

$ sudo mkdir /usr/local/lsws/example.com/{html,logs} -p

El directorio html contendrá los archivos públicos y el directorio logs contendrá los registros del servidor.

A continuación, abre la consola de administración y accede a la sección Hosts Virtuales desde la izquierda y haz clic en el botón Agregar.

Resumen de Hosts Virtuales

Completa los valores como se especifica

Virtual Host Name: example.com
Virtual Host Root: $SERVER_ROOT/example.com/
Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
Follow Symbolic Link: Yes
Enable Scripts/ExtApps: Yes
Restrained: Yes
External App Set UID Mode: Server UID

Configuración del Host Virtual

Haz clic en el botón Guardar cuando termines. Obtendrás el siguiente error porque el archivo de configuración no existe en este momento. Haz clic en el enlace para crear el archivo de configuración.

Configuración del Host Virtual

Haz clic en el botón Guardar nuevamente para terminar de crear el Host Virtual.

Una vez creado el host virtual, ve a Hosts Virtuales -> Elegir Host Virtual (example.com) -> General y modifica la configuración como se indica.

Document Root: $VH_ROOT/html/
Domain Name: example.com
Enable Compression: Yes

Sección General del Host Virtual

Haz clic en el botón Guardar cuando termines. A continuación, necesitamos configurar los archivos de índice. Haz clic en el botón editar contra Archivos de índice debajo de la Sección General. Establece las siguientes opciones.

Use Server Index Files: No
Index files: index.php, index.html, index.htm
Auto Index: No

Archivos de índice de OpenLiteSpeed

Haz clic en Guardar cuando termines. A continuación, necesitamos elegir los archivos de registro. Ve a la sección Registro y haz clic en Editar contra Registro del Host Virtual y completa los siguientes valores.

Use Server’s Log: Yes
File Name: $VH_ROOT/logs/error.log
Log Level: ERROR
Rolling Size (bytes): 10M

Registro del Host Virtual

Puedes elegir el Nivel de Registro como DEBUG si estás en una máquina de producción/desarrollo.

Haz clic en Guardar y luego haz clic en el signo más en la sección Registro de Acceso para agregar una nueva entrada. Completa los siguientes valores.

Log Control: Own Log File
File Name: $VH_ROOT/logs/access.log
Piped Logger: Not Set
Log Format: Not Set
Log Headers: Not Set
Rolling Size (bytes): 10M
Keep Days: 30
Bytes log: Not Set
Compress Archive: Yes

Registro de Acceso de OpenLiteSpeed

Haz clic en Guardar cuando termines. A continuación, necesitamos configurar Control de Acceso en la sección Seguridad. Establece los siguientes valores.

Allowed List: *
Denied List: Not set

Control de Acceso de OpenLiteSpeed

Haz clic en Guardar cuando termines. A continuación, necesitamos establecer la Definición del Manejador de Scripts. Establece los siguientes valores.

Suffixes: php
Handler Type: LiteSpeed SAPI
Handler Name: [Server Level]: lsphp74

Definición del Manejador de Scripts

A continuación, necesitamos establecer Control de Reescritura en la sección Reescribir. Establece los siguientes valores.

Control de Reescritura

Y por último, necesitamos establecer los oyentes. Ve a la sección Listeners y haz clic en el botón Ver contra Oyente Predeterminado. Luego, haz clic en el botón Agregar contra Mapeos de Host Virtual para agregar un nuevo mapeo y establece los siguientes valores.

Haz clic en Guardar cuando termines. Ahora, haz clic en el botón Reinicio suave para aplicar todos los cambios anteriores y reiniciar el servidor.

Paso 8 - Configurar SSL

Configurar SSL en OpenLiteSpeed requiere que configuremos dos certificados. Un certificado autofirmado para el servidor en general y un servidor específico de Let’s Encrypt.

Primero, creemos el Certificado Autofirmado.

$ openssl req -x509 -days 365 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes
Generating a RSA private key
..++++
......................++++
writing new private key to 'key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Puedes presionar enter en todos los campos y dejarlos vacíos.

Los certificados ahora se almacenan en el directorio /home/user. Necesitaremos esta información más adelante.

Para usar Let’s Encrypt, necesitamos instalar la herramienta Certbot.

$ sudo apt install certbot

Obtén el certificado SSL.

$ sudo certbot certonly --webroot -w /usr/local/lsws/example.com/html/ -d example.com

Sigue el aviso interactivo.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree
in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
-------------------------------------------------------------------------------
(Y)es/(N)o: N
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
Using the webroot path /usr/local/lsws/example.com/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example/fullchain.pem. Your key file has 
   been saved at:
   /etc/letsencrypt/live/linode.nspeaks.com/privkey.pem Your cert will
   expire on 2020-09-04. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Ahora abre la consola de administración y ve a Listeners >> Agregar nuevo oyente y agrega los siguientes valores.

Listener Name: SSL
IP Address: ANY
Port: 443
Secure: Yes

Oyente SSL

Haz clic en Guardar cuando termines. A continuación, ve a la sección Mapeos de Host Virtual bajo el Oyente SSL haciendo clic en SSL, haz clic en el botón Agregar y completa los siguientes valores.

Virtual Host: example.com
Domains: example.com

Haz clic en Guardar cuando termines.

A continuación, ve a Listeners >> SSL Listener >> SSL Tab >> SSL Private Key & Certificate (botón Editar) y completa los siguientes valores para el certificado autofirmado que creamos antes.

Private Key File: /home/user/key.pem
Certificate File: /home/user/cert.pem
Chained Certificate: Yes

Clave y certificado SSL autofirmados

A continuación, ve a Virtual Hosts >> example.com >> SSL Tab >> SSL Private Key & Certificate (botón Editar) y completa los siguientes valores con el Certificado de Let’s Encrypt.

Private Key File: /etc/letsencrypt/live/example.com/privkey.pem
Certificate File: /etc/letsencrypt/live/example.com/fullchain.pem
Chained Certificate: Yes

Clave y certificado SSL de Let's Encrypt

Haz clic en Guardar cuando termines.

Reinicia el servidor haciendo clic en el botón de reinicio suave.

Paso 9 - Probar el sitio

Crea un archivo de prueba en tu directorio html.

$ sudo nano /usr/local/lsws/example.com/html/index.php

Pega el siguiente código en el editor Nano.



    

Prueba de instalación del servidor OpenLiteSpeed

Hola,

'; // Define variables PHP para la conexión MySQL. $servername = "localhost"; $username = "testuser"; $password = "password"; // Crea una conexión MySQL. $conn = mysqli_connect($servername, $username, $password); // Informa si la conexión falla o es exitosa. if (!$conn) { exit('

Tu conexión ha fallado.

' . mysqli_connect_error()); } echo '

Te has conectado exitosamente.

'; ?>

Visita tu sitio en https://example.com en un navegador y deberías ver la siguiente página.

Prueba del sitio OpenLiteSpeed

Eso es todo por este tutorial. Si tienes alguna pregunta, déjalas en los comentarios a continuación.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.