C√≥mo instalar y configurar OpenLiteSpeed ‚Äč‚ÄčServer en Fedora 31 junto con MariaDB

Servidor web OpenLiteSpeed

OpenLiteSpeed ‚Äč‚Äčes una versi√≥n ligera y de c√≥digo abierto del servidor LiteSpeed ‚Äč‚Äčdesarrollado por LiteSpeed ‚Äč‚ÄčTechnologies. Es compatible con las reglas de reescritura de Apache, HTTP/2 y HTTP/3 junto con los protocolos TLS v1.3 y QUIC. Viene con un panel de administraci√≥n basado en WebGUI que lo hace diferente de otros servidores y m√°s f√°cil de administrar.

En este tutorial, aprenderemos c√≥mo instalar OpenLiteSpeed ‚Äč‚ÄčServer en Fedora 31 junto con PHP 7.4 y el servidor MariaDB.

requisitos previos

  • Servidor web basado en Fedora 31.
  • Una cuenta de usuario no root con privilegios sudo.
  • Actualice su sistema.
    $ sudo dnf update
    
  • paquete libnsl. Este paquete contiene la interfaz de cliente p√ļblica para los servicios NIS. Para instalarlo, emita el siguiente comando.
    $ sudo dnf install libnsl -y
    

Paso 1: configurar el cortafuegos

Antes de comenzar con el tutorial, debemos configurar Fedora Firewall, que generalmente est√° habilitado de manera predeterminada. Primero verifiquemos el estado del firewall.

$ sudo systemctl status firewalld

Si no funciona, inicie el firewall.

$ sudo systemctl start firewalld

A continuación, debemos habilitar SSH, HTTP, HTTPS y los puertos 7080, 8088 para el firewall.

$ sudo firewall-cmd --permanent --add-service=ssh
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo firewall-cmd --permanent --add-port=7080/tcp
$ sudo firewall-cmd --permanent --add-port=8088/tcp

Cuando haya terminado, puede ver la lista de exenciones que se implementar√°n.

$ sudo firewall-cmd --permanent --list-all

Cuando esté satisfecho con los cambios, vuelva a cargar el Firewall para que los cambios estén activos.

$ sudo firewall-cmd --reload

Habilite el firewall para que se vuelva a cargar en cada arranque.

$ sudo systemctl enable firewalld

Paso 2 – Instalar OpenLiteSpeed

Ejecute el siguiente comando para descargar el paquete binario OpenLiteSpeed ‚Äč‚Äčdel sitio web. Al momento de escribir este tutorial, la √ļltima versi√≥n disponible era la 1.6.4. Verifique la √ļltima versi√≥n desde la p√°gina de descargas y cambie la URL seg√ļn sea necesario.

$ wget https://openlitespeed.org/packages/openlitespeed-1.6.4.tgz

Extraiga el archivo.

$ tar -zxvf openlitespeed-1.6.4.tgz

Cambie al directorio openlitespeed y ejecute el script de instalación.

$ cd openlitespeed
$ sudo ./install.sh

Inicie el servidor web.

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

Comprobar el estado del servidor.

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

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

Servidor web OpenLiteSpeed

Paso 3 – Instalar PHP

El servidor OpenLiteSpeed ‚Äč‚Äčse env√≠a con PHP 5.6 que est√° prehabilitado. Pero queremos usar PHP 7.4, as√≠ que instalaremos nuestra copia.

Instale el repositorio REMI, que es el repositorio oficial de Fedora para instalar paquetes PHP.

$ sudo dnf -y install https://rpms.remirepo.net/fedora/remi-release-31.rpm

Habilite los repositorios remi y remi-php74 y deshabilite el repositorio remi-modular. Esto habilita el repositorio requerido para instalar paquetes de PHP 7.4.

$ sudo dnf config-manager --set-enabled remi
$ sudo dnf config-manager --set-enabled remi-php74
$ sudo dnf config-manager --set-disabled remi-modular

Instale PHP 7.4 junto con algunos paquetes adicionales.

$ sudo dnf install php php-mysqlnd php-gd php-mcrypt php-bcmath php-litespeed

Verifica tu instalación de PHP.

$ php -v
PHP 7.4.0 (cli) (built: Nov 26 2019 20:13:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
   with Zend OPcache v7.4.0, Copyright (c), by Zend Technologies

Puede verificar los módulos PHP habilitados.

$ php --modules

Configuraremos PHP para que funcione con OpenLiteSpeed ‚Äč‚Äčm√°s adelante.

Paso 4 – Instalar MariaDB

Instale el servidor MariaDB.

$ sudo dnf install mariadb-server

Inicie y habilite el servicio MariaDB.

$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

Asegure su instalaci√≥n de MariaDB. Este script establecer√° su contrase√Īa de root, eliminar√° a los usuarios an√≥nimos, no permitir√° el inicio de sesi√≥n de root remoto y eliminar√° las tablas de prueba. Elija una contrase√Īa segura y responda 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, puede iniciar sesión en el shell de MySQL usando el siguiente comando.

$ sudo mysql -u root -p

Cree una base de datos de prueba y un usuario con permiso de acceso. Reemplace testdb y testuser con nombres apropiados para su configuraci√≥n. Reemplace la contrase√Īa con una contrase√Īa segura.

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

Salga del shell de MySQL.

exit

Paso 5: configurar OpenLiteSpeed

Configurar panel de administración

Establezca las credenciales del panel de Administrador.

$ sudo /usr/local/lsws/admin/misc/admpass.sh

Puede establecer tanto el nombre de usuario como la contrase√Īa con este comando. Tambi√©n puede usar este comando en caso de que olvide sus datos de inicio de sesi√≥n.

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

Cambie el puerto HTTP de nuevo a 80

Permítanos cambiar el puerto HTTP predeterminado a 80. Inicie sesión en su panel de administración en http://:7080 con las credenciales que acaba de crear.

Ser√° recibido por la siguiente pantalla.

Panel de OpenLiteSpeed

Visite la sección Oyentes de la izquierda. Verá los oyentes predeterminados con el puerto 8080.

Oyentes

Haga clic en el Vista botón para ver los detalles de configuración. En la siguiente página bajo Oyente Predeterminado > Página Generalhaga clic en el icono de edición y cambie el puerto de 8088 a 80.

Oyentes predeterminados

Cambiar n√ļmero de puerto

Haga clic en Guardar y luego reinicie el servidor haciendo clic en el reinicio elegante botón.

recargar servidor

Paso 6 – Configurar PHP

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

Haga clic en el Configuraci√≥n del servidor en la secci√≥n de la izquierda y luego en la pesta√Īa Aplicaci√≥n externa. Ver√° una aplicaci√≥n LiteSpeed ‚Äč‚Äčexistente para PHP 5.6. Crearemos nuestra propia aplicaci√≥n LiteSpeed ‚Äč‚Äčpara PHP 7.4. Puede cambiar f√°cilmente entre ellos m√°s adelante si lo desea.

aplicación externa

Haga clic en el bot√≥n Agregar para crear una nueva aplicaci√≥n. Para el tipo, seleccione Aplicaci√≥n LiteSpeed ‚Äč‚ÄčSAPI y haga clic en Siguiente.

Aplicación SAPI

A continuación, agregue la configuración a continuación. Deje 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: /usr/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

Haga clic en Guardar cuando haya terminado.

PHP 7.4

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

Ve a la Controlador de secuencias de comandos pesta√Īa y editar el controlador lsphp. Cambie el nombre de la manija a lsphp74 del men√ļ desplegable.

Controlador de secuencias de comandos

Haga clic en Guardar y luego reinicie el servidor haciendo clic en el reinicio elegante botón.

Para comprobar si su PHP se ha cambiado correctamente, visite http:///phpinfo.php en tu navegador.

Información 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 de registros contendr√° los registros del servidor.

A continuación, abra la consola de administración y acceda a la Servidores virtuales de la izquierda y haga clic en el botón Agregar.

Agregar host virtual

Complete 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

Detalles del host virtual

Haga clic en el botón Guardar cuando haya terminado. Obtendrá el siguiente error porque el archivo de configuración no existe a partir de ahora. Haga clic en el enlace para crear el archivo de configuración.

Guardar configuración

Haga clic en el botón Guardar nuevamente para terminar de crear el host virtual.

Una vez creado el host virtual, vaya a Hosts virtuales -> Elija Host virtual (example.com) -> General y modifique la configuración como se indica.

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

Configurar host virtual

Haga clic en el botón Guardar cuando haya terminado. A continuación, necesitamos configurar los archivos de índice. Haga clic en el botón de edición en los archivos de índice debajo de la sección general. Configure las siguientes opciones.

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

Configurar el uso de archivos de índice del servidor

Haga clic en Guardar cuando haya terminado. A continuación, debemos elegir Archivos de registro. Vaya a la sección Registro y haga clic en Editar contra Registro de host virtual y complete los siguientes valores.

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

Configurar registro

Puede elegir el nivel de registro como DEPURAR si está en una máquina de producción/desarrollo.

Haga clic en Guardar y luego abra el Registro de acceso sección. 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

configuración del archivo access.log

Haga clic en Guardar cuando haya terminado. A continuación, tenemos que configurar Control de acceso bajo la Seguridad sección. Establezca los siguientes valores.

Allowed List: *
Denied List: Not set

LCA

Haga clic en Guardar cuando haya terminado. A continuación, debemos configurar el controlador de secuencias de comandos. Establezca los siguientes valores.

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

Oyente de PHP

A continuación, debemos establecer Control de reescritura en la sección Reescribir. Establezca los siguientes valores.

Enable Rewrite: Yes
Auto Load from .htaccess: Yes
Log Level: Not Set

Reescribir reglas

Y por √ļltimo, necesitamos configurar los Oyentes. Vaya a la secci√≥n Oyentes y haga clic en el bot√≥n Ver contra Oyente predeterminado. Luego, haga clic en el bot√≥n Agregar contra Asignaciones de host virtual para agregar una nueva asignaci√≥n y establecer los siguientes valores.

Virtual Host: example.com
Domains: example.com

nombre de host

Haga clic en Guardar cuando haya terminado. Ahora, haga clic en el botón Reinicio elegante para aplicar todos los cambios anteriores y reiniciar el servidor.

Paso 8 – Configurar SSL

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

$ sudo dnf install certbot

Obtenga el certificado SSL.

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

Siga 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-03-07. 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 abra la consola de administración y vaya a Oyentes >> Agregar nuevo oyente y suma los siguientes valores.

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

Configuración SSL

Haga clic en Guardar cuando haya terminado. A continuación, vaya a Asignaciones de host virtual sección bajo el Oyente SSLhaga clic en el botón Agregar y complete los siguientes valores.

Virtual Host: example.com
Domains: example.com

Mapeo de host virtual

Haga clic en Guardar cuando haya terminado.

A continuaci√≥n, vaya a Oyentes >> Oyente SSL >> Pesta√Īa SSL >> Certificado y clave privada SSL (bot√≥n Editar) y complete los siguientes valores

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

Oyente SSL

Haga clic en Guardar cuando haya terminado. Reinicie el servidor haciendo clic en el botón Reinicio elegante.

Paso 9 – Sitio de prueba

Cree un archivo de prueba en su directorio html.

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

Pegue el siguiente código en el editor Nano.

<html>
<head>
    <h2>OpenLiteSpeed Server Install Test</h2>
</head>
    <body>
    <?php echo '<p>Hello,</p>';

    // Define PHP variables for the MySQL connection.
    $servername = "localhost";
    $username = "testuser";
    $password = "password";

    // Create a MySQL connection.
    $conn = mysqli_connect($servername, $username, $password);

    // Report if the connection fails or is successful.
    if (!$conn) {
        exit('<p>Your connection has failed.<p>' .  mysqli_connect_error());
    }
    echo '<p>You have connected successfully.</p>';
    ?>
</body>
</html>

Visite su sitio en https://ejemplo.com en un navegador y debería ver la siguiente página.

Sitio de prueba

Eso es todo por este tutorial. Si tiene alguna pregunta, dispárela en los comentarios a continuación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *