Cómo instalar Openlitespeed en Debian con Plesk

Cómo instalar onpenlitespeed en Debian con Plesk

Con la llegada de los Core Web Vital, los técnicos de Hosting buscan la mejor forma siempre de optimizar recursos, sacar el máximo provecho y obtener la mejor valoración posible en velocidad y usabilidad, así como mejorar la experiencia del usuario.

Llevamos años trabajando en este servicio de Optimización Web WPO, desde la búsqueda de proveedores de hosting de calidad, la mejor red y velocidad, así como los mejores sistemas en seguridad y rendimiento.

¿Por qué es importante la velocidad web?

Ganar un 0,1 segundo en el tiempo de carga de tu tienda online mejoraría en ventas de un 8%”

Todos los años realizamos una comparativa entre los proveedores de hosting más conocidos y hosting web de ámbito nacional, somos muy partidarios de trabajar con servidores dedicados o servidores VPS, ya que podemos conseguir grandes precios cercanos al hosting compartidos, pero con un gran rendimiento para nuestra web o tienda online.

Este último año las pruebas realizadas con WordPress y Prestashop sobre los hostings con LiteSpeed han tenido un gran puntuación en los core Web Vitals, como sabréis este proyecto tiene su versión OpenSource conocida como Openlitespeed y el cual queremos explicar como configurar en nuestro Servidor Web.

¿Por qué es importante la velocidad web?

Sin duda se trata de varios de los pilares que actualmente influyen más en SEO y posicionamiento en buscadores, simplemente mejorando la velocidad de la web o los valores de Core Web vitals podemos llegar a un aumento en más de un 30% de los ingresos según ejemplos citados por Google. O reducir la tasa de rebote o abandono de carritos en un 7%.

Recientes estudios revelados por la compañía de Sistrix en el aporte de SEO y la experiencia de página , muestran que los ajustes de velocidades o adaptaciones de core Web vitals aun no tiene una importancia directa en el SEO Orgánico.

En nuestras pruebas realizadas, con web que mantenemos no hemos visto tampoco a fecha de julio de 2021 una relación directa tras cambiar puntuaciones en más de un 60% los core web vitals. Los dos nuevos cambios de algoritmos por parte de Google parecen indicar que será un factor importante y debemos seguir trabajándolo.

Los datos muestran que una tienda online con campañas de Google Ads, con solo un 1 segundo de retraso puede ocasionar un aumento de rebote del 53% o reducir las conversiones en un 20%.

Sabías que un 75% de los usuarios se estresa si la web no carga rápido, ante situaciones de estrés las personas no suelen encontrarse cómodas para realizar un proceso de compra o contacto y finalmente terminan por posponerlo.

Quieres conocer aun más sobre la importancia de la velocidad web y el WPO en conversiones.

Si quieres un gran rendimiento en tus campañas de Google Ads no dudes en invertir en WPO, la velocidad web, es un factor determinante en las conversiones.

¿Qué es LiteSpeed o OpenliteSpeed?

Una vez valorada la importancia de la usabilidad y del WPO para nuestra web, retomemos el how-to de como montar OpenliteSpeed con Plesk.

LiteSpeed es un servidor Web muy liviano que permite aprovechar mejor el hardware de nuestro hosting, gracias a su tecnología y sus sistemas de cache mejoran la capacidad de nuestra web pudiendo recibir más tráfico simultaneo, pero además es capaz de mejorar la velocidad de carga, y para los amantes de las métricas, mejorara nuestra puntuación en los core Web vitals.

La versión de LiteSpeed es una versión que funciona con CPANEL y Plesk tiene una gran integración y se implanta de forma rápida, tiene compatibilidad con el htaccess que tenemos en nuestra tienda online.

Si tenemos un servidor de LiteSpeed o Openlitespeed, debemos tener instalado el plugin de WordPress:

Plugin LiteSpeed Para WordPress

Si por el contrario tenemos una tienda online y hemos apostado por el Líder Europeo del ecommerce Prestashop, tendremos que instalar el modulo:

Modulo Prestashop LiteSpeed

Últimamente se ha estado hablando mucho de este servidor web, aunque en sus versiones de pago son algo caras por la licencia. Pero, a la hora de revisar los números de aumentos de conversión, llegamos a la conclusión de que se trata de una inversión de Futuro.

 En esta ocasión lo vamos a instalar sobre Debian y compararemos LiteSpeed contra Apache y Nginx.¿Cuáles son las ventajas de LiteSpeed?

Su arquitectura sorprende al tratar todo por eventos, lo que supone menos procesos y mayor escalabilidad con el mismo hardware. Incorpora el nuevo protocolo http3 que trae como mejora la reducción en respuesta TCP, al tratar peticiones por UDP.

Cuenta con una consola de administración bastante intuitiva y funcional, una pena que no pueda integrarse en la versión de Cpanel o Plesk si no es comprando la versión Enterprise, algo que pretendemos solucionar con este artículo.

Cuenta con sistemas Anti-DDoS y Modsecurity V3 para detección de ataques, no permitirá tener a salvo nuestra tienda online y página web con el 85% de los ataques más conocidos.

Cuenta con un módulo de cache que mejora en algunas comparaciones a Varnish o Memcache, si instalamos en nuestro WordPress o PrestaShop el plugin adecuado la mejora es sustancial.

Os dejamos unos datos obtenidos de la página oficial, podemos apreciar como un wordpress es capaz de mejorar las peticiones por segundo con respeto a sus competidores.

imagen blog performance

¿Por qué Debian y no Centos para mi VPS en el Hosting?

En esta ocasión y tras la noticia de que la versión de Centos abandona su continuidad debemos apostar por otras de las grandes distribuciones Linux para servidores Web. Un aporte de estabilidad a nuestros proyectos, y si que es cierto que de base cuanta con un sistema bastante liviano frente a Centos.

¿Cómo instalar OpenliteSpeed en Debian 10?

Como hemos visto son todo ventajas pero, sin duda la versión OpenliteSpeed no es para todos los usuarios y se requiere bastantes conocimientos en sistemas Linux.

Pongamos nos manos a la obra 😊

Comencemos con algunas dependencias que luego nos harán falta para poder compilar versiones de PHP dentro de Openlitespeed

sudo apt-get install build-essential autoconf libtool bison re2c

Aquí os dejamos un error por no tener las dependencias necesarias:

Error: “Error Could Not Configure PHP Build”

openlitespeed

También necesitaremos el paquete “pkg-config” para ello desde nuestra shell ejecutaremos.

apt-get install -y pkg-config

Error compilando php en openlitespeed

configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met:

apt-get install libxml2-dev

No package 'libxml-2.0' found

error: Package requirements (openssl >= 1.0.1) were not met:

apt-get install libssl-dev

configure: error: Package requirements (sqlite3 > 3.7.4) were not met:

apt-get install libsqlite3-dev

configure: error: Package requirements (zlib >= 1.2.0.4) were not met:

apt-get install zlib1g-dev

error: Package requirements (libcurl >= 7.15.5) were not met:

apt-get install libcurl4-openssl-dev

Package requirements (oniguruma) were not met:

apt-get install libonig-dev

Añadimos el repositorio de OpenliteSpeed sobre Debian

wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | bash

litespeed

Lanzamos nuestra instalación de paquetes.

apt install openlitespeed

En nuestro caso instalamos Openlitespeed con compatibilidad para PHP 7.3, recordemos que la versión 7.2 de PHP ha sido deprecada por seguridad.

Compatibilidad Openlitespedd

La instalación de OpenLiteSpeed en nuestro caso da el siguiente error:

writing new private key to '/usr/local/lsws/admin/conf/webadmin.key'
dpkg: error processing package openlitespeed (--configure):
installed openlitespeed package post-installation script subprocess was killed by signal (Killed)
Setting up lsphp73-opcache (7.3.23-1+buster) ...
Creating config file /usr/local/lsws/lsphp73/etc/php/7.3/mods-available/opcache.ini with new version
Processing triggers for libc-bin (2.28-10) ...
Errors were encountered while processing:
openlitespeed
E: Sub-process /usr/bin/dpkg returned an error code (1)

El fallo se debe a que ya tenemos un servicio corriendo sobre el puerto que usa Openlitespeed el 7080, por lo que debemos cambiarlo previamente antes de lanzar la configuración.

compatibilidad openlitespedd

Para ello editamos el fichero:

vi /usr/local/lsws/admin/conf/admin_config.conf

Cambiamos el puerto por defecto para no entrar en conflicto con Plesk.

Lanzamos el proceso de configuración:

dpkg --configure openlitespeed

Y ya lo tenemos correctamente configurado.

configuracion openlitespeed

Creamos el enlace simbólico para que la versión de php sea compatible con la recién instalada 7.3 en nuestro caso.

ln -sf /usr/local/lsws/lsphp73/bin/lsphp /usr/local/lsws/fcgi-bin/lsphp5

E iniciamos nuestro nuevo servidor web con OpeliteSpeed por primera vez.

/usr/local/lsws/bin/lswsctrl start

servidor openlitespeed

La clave inicial para la configuración y el acceso a OpenliteSpeed lo podremos ver ejecutando el comando:

tail -f /usr/local/lsws/adminpasswd

Ahora debemos configurar nuestro cortafuegos para abrir los puertos especificados, recordar que estos comandos también podemos dejarlo establecidos con el Firewall de Plesk.

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 80 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Vamos a comprobar nuestras versiones de openlitespeed:

/usr/local/lsws/bin/lshttpd -v

version openlitespeed

Como siempre viene bien tener una documentación oficial de Openlitespeed.

Ya lo tenemos todo listo para entrar en la web.

acceso openlitespeed

Ahora vamos a permitir a Openlitespeed interpretar los .htaccess para seguir manteniendo reglas y redirecciones.

permisos openlitespeed

Ahora creamos un VirtualHost en mi caso como tenemos plesk apunto hacia directorio la ruta web

virtualhost modificado

Como vemos nos aparece un mensaje de advertencia, donde haremos clic en “Click to Create”.

Una de los pilares de cualquier servidor web es la seguridad, es importante para la imagen de nuestra empresa y sobre todo si tenemos un ecommerce con sistemas de pago tokenizado.

Con la instalación por defecto de plesk vemos que los permisos pertenecen al usuario www-data:

psaserv:x:1003:psaadm,psaftp,www-data,lsadm

Luego configuraremos este usuario para permitir el inicio del servicio LSWS, no ha gustado mucho esta guía de como implementar un Chroot para LiteSpeed.

Añadimos el usuario LSWS al grupo de www-data, psaserv, psacln.

useradd -g www-data -s /bin/false LSWS

[email protected]:/usr/local/lsws# adduser LSWS www-data

Adding user `LSWS' to group `www-data' ...

Adding user LSWS to group www-data

Done.

[email protected]:/usr/local/lsws# adduser LSWS psaserv

Adding user `LSWS' to group `psaserv' ...

Adding user LSWS to group psaserv

Done.

[email protected]:/usr/local/lsws# adduser LSWS psacln

Adding user `LSWS' to group `psacln' ...

Adding user LSWS to group psacln

Done.

[email protected]:/usr/local/lsws# adduser LSWS lsadm

Luego cambiaremos la configuración de Openlitespeed, sobre el fichero httpd_config.php.

Editamos fichero:

Vi conf/httpd_config.conf

image 1

En la zona de “user” colocaremos nuestro usuario recién creado, y usaremos el grupo www-data para los permisos de plesk.

image 2

Tras guardar la configuración reiniciaremos el servicio de LiteSpeed.

/usr/local/lsws/bin/lswsctrl restart

image 3

Tras reiniciar recibimos el siguiente error.

ERROR[14130] Failed to open the real time report: /tmp/lshttpd/.rtreport.2!

Debemos borrar los reportes antiguos situados en el raíz.

El motivo son los permisos de los ficheros report, los eliminaremos para que los regenere de nuevo.

rm -rf /tmp/lshttpd/.rtreport*

En este momento ni el listener ni el VirtualHost iniciaban por ello desde consola copiamos el fichero de ejemplo y fuimos cambiando la información.

cd /usr/local/lsws/conf/vhosts

cp -r Example/ digitaldot.es

chown -R lsadm.nogroup dominio.es

Al crear y cambiar el usuario al lanzar la web nos aparece el siguiente error.

[29047] [X.X.X.X:52298#:lsapi] [Module:Cache] createEntry failed, may due to no permission to write file or file is updating.

Solución: borrar para que la regenere.

rm -rf /usr/local/lsws/cachedata/*

Una vez solucionado, desde la interfaz gráfica vamos a establecer algunas configuraciones de los logs, y activaremos los servicios de compresión para mejorar la velocidad.

plesk

Estableceremos en nuestro Listener los ficheros index.php, ya que los cms que instalaremos serán prestashop o wordpress.

ficheros index
virtualhost instalacion web

Nosotros en los logs hemos decido aumentar los días para un mayor seguimiento y tener más depuración.

logs e1630482506541
logs aumentar dias

Tras realizar con plesk migrator el traspaso de la web, vemos un error, por permisos en el fichero de wp-config.php.

imagen codigo
permisos cache

Desde plesk ya podemos gestionar los permisos de nuestros ficheros.

image 5

En la pestaña seguridad de nuestro VirtualHost debemos permitir el acceso desde cualquier ip si no nos bloquearía las visitas.

plesk config e1630493382495

Vamos a parar el nginx y el http para evitar conflictos con OpenLiteSpeed

herramientas plesk

Como podemos ver el servidor nginx y web están desactivados y parados.

nginx

Ahora vamos a listener a poner nuestro puerto 443 ya que solo activaremos nuestro servidor de LiteSpeed por un puerto seguro con cifrado Letsencrypt, otra de las ventajas de usar la vinculación con Plesk es que podremos generar y renovar certificados digitales de forma fácil.

plesk 443
plesk2

Vamos a la pestaña SSL y colocaremos las rutas que plesk nos genera para los certificados digitales, por defecto nos aparecen estar rutas, que sustituiremos.

$SERVER_ROOT/conf/cert/server.key

$SERVER_ROOT/conf/cert/server.crt

$SERVER_ROOT/conf/cert/intermediate.crt

Configuración de rutas para el listener.

cat /usr/local/lsws/admin/conf/webadmin.key > /usr/local/lsws/conf/cert/server.key

cat /usr/local/lsws/admin/conf/webadmin.crt > /usr/local/lsws/conf/cert/server.crt

Recordemos que desde hace más de 2 años el certificado suele ser un factor de posicionamiento obligatorio para buscadores.

Por ello vemos donde Plesk almacena los certificados desde letsencrypt para usar la potencia de su interfaz web para integrarlo con nuestro servidor web openlitespeed.

Trabajamos con:

/usr/local/psa/var/modules/letsencrypt/etc/live/domain/

Ejemplo:

plesk3
pleask4 e1630483118654

Como vemos en la siguiente imagen los permisos de los letsencrypt están con el grupo psaadm, luego debemos añadir el usuario lsadm.

codigo 1

[email protected]:/usr/local/lsws# adduser lsadm psaadm

Adding user `lsadm' to group `psaadm' ...

Adding user lsadm to group psaadm

Done.

Como el fichero de configuración se guarda en:

$SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf is recommended

Creamos la estructura de carpetas necesaria para letsencrypt.

mkdir /usr/local/lsws/letsencrypt

Ahora generamos un enlace simbólico de carpetas.

ln -s /usr/local/psa/var/modules/letsencrypt/etc/live/ /usr/local/lsws/letsencrypt/

Establecemos los permisos.

chown lsadm.nogroup letsencrypt

Ahora el certificado lo configuro tanto en listener como en VirtualHost, en nuestro caso es un servidor único para nuestra página web.

$SERVER_ROOT/letsencrypt/live/dominio.es

$SERVER_ROOT/letsencrypt/live/dominio.es/privkey.pem

$SERVER_ROOT/letsencrypt/live/dominio.es/fullchain.pem

certificado serverhost

Ahora tenemos la página web con certificado digital, y escuchando por un protocolo web seguro.

certificacion serverhost e1630483316829

Vamos a conectar nuestro directorio de plesk crearemos enlaces simbólicos de nuevo.

mkdir  /usr/local/lsws/vhosts

ln -s /var/www/vhosts/ /usr/local/lsws/vhosts

Ahora cambiamos el virtual host root donde apunamos a ala ruta que tenemos de plesk.

directorio plesk

En plesk trabaja con la carpeta httpdocs y no con html luego cambiamos el Document root, como trabajaremos con wordpress ponemos index.php en vez index.html.

httpdocs plesk

$SERVER_ROOT/vhosts/vhosts/dominio.es

$SERVER_ROOT/vhosts/vhosts/$VH_ROOT/httpdocs/

Creo dos carpetas que necesitamos, protected, y cgi-bin

[email protected]:/usr/local/lsws/vhosts/vhosts/dominio.es# mkdir httpdocs/protected

[email protected]:/usr/local/lsws/vhosts/vhosts/dominio.es# mkdir cgi-bin

Vamos a activar Rewrite, para que nuestras reglas de htaccess funcionen sin problemas, para nuestro virtualhost.

rewrite e1630483563480

Ahora al intentar acceder a la web nos aparece un error de LiteSpeed 403 acceso denegado.

error litespeed

El error de LiteSpeed es por permisos debemos meter al usuario de LiteSpeed en el grupo de esta suscripción.

[email protected]:/usr/local/lsws/vhosts/vhosts/digitaldot.es# adduser lsadm psacln

Adding user `lsadm' to group `psacln' ...

Adding user lsadm to group psacln

Done.

[email protected]:/usr/local/lsws/vhosts/vhosts# adduser lsadm psaserv

Adding user `lsadm' to group `psaserv' ...

Adding user lsadm to group psaserv

Done.

error 403
Error 403 OpenLitesSpeed

Después de solucionar los permisos el index.html funciona y procedemos con el .php de wordpress.

uncaught error
Uncaught Error: Call to undefined function mysql_connect

Uncaught Error: Call to undefined function mysql_connect

El problema que la versión de php elegida no tiene activa mysqli, para ello generamos un phpinfo.php aquí podemos observar que tenemos mysqlnd activo, pero no mysqli.

Revisando la documentación oficial de php vemos que tenemos que compilar la versión de php con las siguientes opciones:

--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

Dejamos aquí la documentación oficial.

Ahora vamos a compilar nueva versión de php, dentro de la consola de openlitespeed tools, compile php en mi caso elijo 7.3.26

openlitespeed tools

Cambiamos la versión de configure parámetros por la recomendada en la documentación de php.

plesk5

Versión PHP compilada para soportar Mysqli con Openlitespeed:

plesk6

Os lo dejamos escrito por si es más fácil copiar:

--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --with-gd --enable-shmop --enable-sockets --enable-sysvsem --enable-sysvshm --enable-mbstring --with-iconv --with-mcrypt --with-pdo-mysql --enable-ftp --enable-zip --with-curl --enable-soap --enable-xml --enable-json --with-openssl --enable-bcmath

En el siguiente paso hará una compilación, mirar el proceso de instalación de librerías necesarias para evitar errores durante la compilación.

plesk compilacion

Una vez terminado ejecutamos desde una consulta de root el siguiente comando:

/usr/local/lsws/phpbuild/buildphp_manual_run.sh

Para verificar que esta correctamente instalado podemos listar todas las versiones de php compiladas, que se guardaran en el directorio:

$SERVER_ROOT/fcgi-bin/

Luego entrando en ese directorio podremos ejecutar el script dentro junto con la opción -v.

script

Aquí dejamos un manual oficial de LiteSpeed con los pasos de compilaciones con más detenimiento.

Ahora que tenemos nuestra versión de php con las opciones de mysqli activadas vamos a decirle a nuestro VirtualHost que elija nuestra versión compilada.

Para ello vamos a VirtualHost external app y elegimos añadir.

virtualhost external app e1630493655351

Estas son las opciones que hemos colocado fijándome un poco en el manual que viene oficial y que colocare debajo.

manual

El nombre es un nombre descriptivo, la Address te viene un ejemplo dentro de la explicación de uso de USD en mi caso le añado al socket la versión de php utilizada.

En max connections como tenemos un buen servidor usaremos 50 pero esto dependerá un poco.

Y por último en comando específico la ruta absoluta donde está nuestra versión de php compilada.

/usr/local/lsws/fcgi-bin/lsphp-7.3.26

Guardamos y nos vamos a la pestaña Script Handler, deberemos dejarlo como esta pantalla:

script 1

Una vez realizado esto, reiniciamos nuestro openlitespeed y veremos que en phpinfo.php nos cambia la versión y nos muestra que ya tenemos mysqli activo.

Os dejamos el manual de compilar oficial de openlitespeed, la verdad que la documentación de este servidor web nos ha sorprendido un poco, aunque los dolores de cabeza han sido varios no nos vamos a engañar.

manueal compilar

Llegando a este punto no podría ser todo tan fácil, wordpress nos muestra un nuevo mensaje de error.

Mysqlri_real_connect()

mysql

Pero tranquilos la solución pasará por configurar en vez de db_host localhost, pondremos la ip 127.0.0.1 dentro del fichero wp-config.php

image 6

Ahora activamos cache como modulo, nos interesa que nuestro nuevo servidor vaya los más rápido posible.

cache e1630484220845

El rendimiento de la página web con wordpress mejoro en su puntuación de los core Web vitals, con esta nueva versión de OpenliteSpeed de 40 a 86%.

1

En digitalDot tenemos claro que cada segundo cuenta y que la salud de una página web es primordial, por eso ofrecemos el mejor servicio de mantenimiento para obtener la mejor velocidad y usabilidad en la web. Tu página está perdiendo usuarios ¿A que esperas para mejorar tu web y recuperarlos?

imagen cierre

OTRAS NOTICIAS SOBRE Actualidad web