Última revisión: 2 de octubre de 2021
- Versiones a instalar
- Configurando el Sistema Operativo
- Instalación de MariaDB
- Instalación de LiteSpeed
- Instalación de PHP
- Instalación de Redis
- Configuración del HTTPS
- Configuración del firewall
- Sobre este documento
Este tutorial ha sido creado en un VPS de Clouding.io. Puedes crear tu propio VPS desde 3€/mes.
Además, tienes la posibilidad de crear tu VPS con la imagen de WordPress en un clic.
COLABORACIÓN
Versiones a instalar
Sistema Operativo: Ubuntu 18
Panel de Control: ninguno
Servidor web: LiteSpeed
Base de Datos: MariaDB 10.3
Procesador: PHP 7.3
Caché: Redis
Aquí te dejamos un pequeño manual de instalación desde una instalación de sistema operativo básico de Ubuntu 18.
Configurando el Sistema Operativo
Una vez esté instalado el sistema operativo, lo primero que configuraremos será la hora del servidor. En este caso configuraremos la zona horaria de Madrid.
timedatectl set-timezone 'Europe/Madrid'
timedatectl set-ntp on
Lo siguiente que haremos es comprobar la versión del sistema operativo y, posteriormente, hacer una actualización completa del mismo.
lsb_release -a
apt -y update && apt -y upgrade && apt -y dist-upgrade && apt -y autoremove
Una vez esta todo actualizado, instalamos algunas herramientas y software base que puede ser útil tener en el sistema.
apt -y install software-properties-common curl vim unzip ufw
Instalación de MariaDB
El siguiente paso será la instalación de la base de datos. En este caso vamos a utilizar MariaDB 10.3. Lo primero que haremos será configurar la descarga, y posteriormente su instalación.
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://tedeco.fi.upm.es/mirror/mariadb/repo/10.3/ubuntu bionic main'
apt -y update && apt -y upgrade && apt -y dist-upgrade && apt -y autoremove
apt -y install mariadb-server mariadb-client
Ahora que está instalada, procederemos a la configuración inicial. Para ello usaremos el sistema se instalación segura, que nos hará algunas preguntas.
mysql_secure_installation
A la pregunta de si queremos cambiar la contraseña, dependiendo de si hemos puesto o no en la instalación, la cambiaremos. En caso de no haber puesto ninguna, es muy recomendable ponerle una contraseña segura.
Set root password? [Y/n]: Y
Al resto de preguntas, contestaremos lo siguiente:
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
En este momento ya tendremos la base de datos configurada. Ahora haremos que se ejecute en los re inicios del sistema y la iniciaremos.
systemctl stop mysql.service
systemctl start mysql.service
Instalación de LiteSpeed
En este momento tenemos la base de datos configurada y vamos a proceder a la instalación del servidor web. En este caso vamos a usar LiteSpeed. Hay que recordar que para el uso de este servidor web es necesario disponer de una licencia. Para ver la última versión del sistema es muy recomendable visitar la ficha de descargas (en este caso se va a utilizar la versión 5.3.8 stable).
cd /root/
bash <( curl https://get.litespeed.sh ) 1234-abcd-5678-EFGH
NOTA: Por favor, sustituye el código 1234-abcd-5678-EFGH por tu licencia.
Y comienza la ronda de preguntas
Do you agree with above license? Yes
Destination [/usr/local/lsws]:
User name [admin]:
Password:
Email addresses [root@localhost]: john@example.com
Please select (0-7) [0]? 0
User [nobody]:
Group [nogroup]:
HTTP port [8088]: 80
Admin HTTP port [7080]:
Setup up PHP [Y/n]: Y
Suffix for PHP script(comma separated list) [php]:
Enable chroot [y/N]: y
Chroot directory without trailing '/': /usr/local/lsws
Would you like to install AWStats Add-on module [y/N]? n
Would you like to have LiteSpeed Web Server started automatically when the server restarts [Y/n]? y
Would you like to start it right now [Y/n]? y
Ahora que tenemos nginx instalado, lo vamos a configurar para que se inicie en los re inicios del sistema automáticamente.
/usr/local/lsws/bin/lswsctrl stop
/usr/local/lsws/bin/lswsctrl start
En este momento ya tenemos el servidor web, por lo que vamos a instalar y a configurar PHP para que funcione correctamente con la base de datos y el servidor web. En este caso vamos a instalar la versión PHP 7.3. Hay que tener en cuenta que LiteSpeed funciona con sus propias versiones de PHP; así que deberemos instalar su sistema propio.
wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh | bash
apt -y update && apt -y upgrade && apt -y dist-upgrade && apt -y autoremove
Instalación de PHP
Ahora definiremos la lista de bibliotecas para instalar.
apt -y install lsphp73 lsphp73-common lsphp73-dev lsphp73-curl lsphp73-imap lsphp73-intl lsphp73-json lsphp73-memcached lsphp73-mysql lsphp73-opcache lsphp73-redis php-imagick php-libsodium libgeoip-dev
Instalación de Redis
Para trabajar con unas mejoras en el rendimiento de la caché de objetos, vamos a dejar listo Redis como sistema de almacenamiento.
apt -y update && apt -y upgrade && apt -y dist-upgrade && apt -y autoremove
apt -y install redis-server
Posteriormente, y de la misma forma que el resto de elementos, lo vamos a configurar para que se inicie automáticamente si se reinicia el servidor.
systemctl stop redis-server.service
systemctl enable redis-server.service
systemctl start redis-server.service
Para evitar problemas con otros servidores web revisaremos y eliminaremos posibles incompatibilidades.
apt -y remove nginx apache2
Configuración del HTTPS
Como vamos a montar nuestra web sobre un servidor web seguro (HTTPS), necesitaremos instalar el generador de certificados de Let’s Encrypt, de forma que previamente prepararemos los sistemas para la creación de claves seguras.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Y en este momento instalaremos el sistema de creación de certificados certbot.
add-apt-repository ppa:certbot/certbot
apt -y update && apt -y upgrade && apt -y dist-upgrade && apt -y autoremove
apt -y install python-certbot-nginx
Para que los certificados se actualicen automáticamente, activaremos una tarea programada (cron) una vez al día que automáticamente renueve los certificados.
crontab -e
Una vez dentro, configuraremos, por ejemplo, que se ejecute a las 06:45 cada mañana.
45 6 * * * certbot renew
Configuración del firewall
Para acabar, vamos a activar el Firewall y dejar solo abierto los puertos de SSH (por los que estamos trabajando en estos momentos) y posteriormente los puertos web, dejando el resto inactivo.
ufw app list
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 8088/tcp
ufw allow 7080/tcp
ufw enable
A partir de este momento podemos reiniciar la máquina si queremos, y ya la tendremos lista para comenzar su uso y montar los sitios web.
Sobre este documento
Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.