En esta guía te enseño a instalar wordpress en un servidor VPS con Debian12 utilizando la pila LEMP (Linux, Ngnix, PHP, MariaDB) al que añadimos phpmyadmin y la cache de objetos Redis.
Ante todo tengo que decirte que este manual lo he creado desde mi propia experiencia, con muy pocos, por no decir, ningún conocimiento en servidores VPS o Linux, por lo que encontrarás los pasos muy detallados y orientados a usuarios con nivel muy bajo.
Después de mucho leer, mucho probar y mucho reiniciar el servidor y volver a instalar, por fin puedo presumir de tener una web en un VPS no administrado sin tener conocimientos previos.
Y tengo que decir, que aunque parezca muy difícil, complicado o que hablamos en chino, la verdad es que es todo mucho más fácil de lo que parece y siguiendo los pasos correctos, podrás administrar tu propio servidor VPS.
Así que ya sabes, si tu servidor compartido se te ha quedado pequeño o lento y quieres probar con un VPS con Ngnix, MariaDB y PHP, sigue leyendo este manual para torpes.
Servidor VPS para WordPress
Después de muchos años utilizando servidores compartidos para crear páginas webs, me decidí a dar el paso y montar mi primera página web en un servidor VPS utilizando la pila LEMP (Linux, Nginx, PHP).
La principal diferencia entre un VPS y un Hosting compartido es que tienes tu propia dirección IP y tus propios recursos para tu web (RAM, SSD y Procesadores) en vez de compartir ip y prestaciones con otros usuarios.
De esta manera, tu web no se verá afectada por el uso que hagan de los recursos compartidos otros usuarios con sus instalaciones.
Para iniciarme en este mundo me he decantando por un VPS no administrado, es decir, no hay ningún panel de control instalado tipo CPanel para crear y gestionar páginas webs, aunque si es cierto que se pueden instalar, pero en mi caso tampoco lo necesito, ya que solo voy a instalar una web.
Para ello, he contratado un VPS con AlexHost Web Hosting, por muchos motivo: La relación precio – prestaciones, muy superior a la competencia, y por ser un Hosting Offshore, es decir, un hosting donde se pueden crear sin problemas webs de temática bastante delicadas sin miedo a denuncias o borrados de contenido.
Además, si quieres un 5% de descuento extra al contratar tu VPS con AlexHost puedes utilizar mi cupón de descuento U94GG76FBZ2P.
Instalar WordPress en Nginx con Debian12
Una vez que has contratado tu VPS, recibirás un email con los datos de acceso al panel de control de tu VPS donde podrás consultar datos tan importantes como la dirección ip de tu servidor y su contraseña.
Para realizar la instalación de todos los componentes necesarios voy a utlizar Putty, es un emulador de terminal que se puede utilizar en Windows para conectarse con un servidor via ssh.
Te recomiendo primero que crees tu propia clave privada y que configures Putty para utilizarla, así tendrás una capa extra de seguridad y evitarás tener que memorizar la contraseña de tu VPS.
Tras conectar a tu VPS vía ssh con Putty, verás una pantalla muy parecida a esta. A partir de ahora, podrás empezar a instalar los complementos necesarios para tener tu web en WordPress con Ngnix en un VPS con Debian12. Y no te preocupes, si te equivocas o algo no funciona como es debido, siempre puedes reseterar el VPS y volver a estado original para empezar desde cero.
1. Actualizar Paquetes del Sistema
Es importante empezar actualizando los paquetes del sistema para aseguranos que tenemos el VPS con las últimas actualizaciones.
Para ello, una vez que estas conectado a tu VPS via ssh, tienes que enviar este código:
sudo apt update && sudo apt upgrade -y2. Instalar Ngnix
Una vez que has actualizado los paquetes del sistema, es el momento de instalar en tu VPS Nginx.
Nginx es un servidor web de alto rendimiento, conocido por su eficiencia y versatilidad. A diferencia de otros servidores web más tradicionales, como Apache2, Nginx fue diseñado para manejar un gran número de conexiones simultáneas de manera muy eficiente, que lo convierte en una excelente opción para sitios web con mucho tráfico.
Para realizar la instalación utilizamos el código:
sudo apt install nginx -y
Una vez que se ha completado la instalación, tienes que iniciar y habilitar Ngnix para que se ejecute al inicio utilizando este código:
sudo systemctl start nginx
sudo systemctl enable nginxSi todo ha ido bien, abre la url de tu web o la ip de tu VPS en el navegador web y deberias ver la página predeterminada de Ngnix.
3. Instalar MariaDB
MariaDB es un sistema de gestión de bases de datos muy popular y de código abierto, que se caracteriza por tener un excelente rendimiento y capacidad de manejar un gran volumen de datos. Además es compatible con MySQL.
Será el sistema que utilizaremos para crear y gestionar la base de datos de nuestro WordPress en Ngnix.
Instalamos MariaDB:
sudo apt install mariadb-server -yA continuación hay que asegurar la instalación de MariaDB. Durante este proceso tendrás qwue establecer una contraseña y deberás responder a algunas preguntas con Y/N.
sudo mysql_secure_installation- Enter current password for root (enter for none): Establece una contraseña para el usuario root.
- Switch to unix_socket authentication [Y/n]: N
- Change the root password [Y/n]: N
- 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
Verifica que MariaDB esta corriendo en tu servidor:
sudo systemctl status mariadb
4. Crear una Base de Datos en MariaDB
Ahora que ya tienes instalado MariaDB en tu VPS con Debian12 para gestionar las bases de datos, es el momento de crear la base de datos que utilizará tu wordpress.
Conéctate al servidor MariaDB como usuario root:
sudo mysql -u root -p
Ejecuta los siguientes comandos para crear tu base de datos y su usuario:
CREATE DATABASE wordpress_db;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'tu_contraseña_segura';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;- Sustituye ‘wordpress_db’ por el nombre que quieras asignar a tu base de datos.
- Sustituye ‘wordpress_user’ por el nombre que quieras asignar al usuario de esa base de datos.
- Sustituye ‘tu_contraseña_segura’ por una contraseña para la base de datos.
Recuerda estos datos por que los vamos a necesitar más adelante para configurar wordpress.
5. Instalar PHP-FMP
El siguiente paso es instalar PHP-FMP que es el manejador de PHP que trabaja con Ngnix y que funciona como un intermediario entre este y el inérprete de PHP. Además está diseñado para ofrecer un rendimiento optimizado, mejorando la gestión y eficiecia de procesos.
Para instalar PHP-FMP en nuestro VPS con Debian12 junto con Ngnix utiliza este comando:
sudo apt install php-fpm php-mysql -yUna vez completada la instalación de PHP-FMP en el VPS, es necesario editar la configuración de PHP para mejorer el rendimiento. Para ello, utilizamos ‘nano’, un sencillo editor de textos que se ejecuta desde la terminal ssh o desde Putty.
Utiliza este comando para abrir el archivo de configuración de PHP:
sudo nano /etc/php/8.2/fpm/php.ini
Dentro de este archivo, utiliza la combinación de teclas Ctrl+W para buscar los parámetros que tienes que modificar:
memory_limit = 256Mupload_max_filesize = 64Mpost_max_size = 64Mmax_execution_time = 300
Una vez modificados, guarda los cambios en el archivo (Ctrl+O) y sal del editor (Ctrl+X).
Ahora necesitamos reiniciar PHP-FMP para que los cambios se hagan efectivos con el comando:
sudo systemctl restart php8.2-fpm6. Configurar Ngnix para WordPress
A continuación debemos configurar Ngnix para que funcione sin problemas con la instalación de Worpress que haremos después.
Para ello, lo que tenemos que hacer es crear un archivo de configuración para el sitio web que vamos a instalar en nuestro VPS con Debian12.
De nuevo volvemos a utilizar el editor ‘nano’ con este comando:
sudo nano /etc/nginx/sites-available/wordpressSe abrira una pantalla totalmente en negro y sin nada escrito. Es ahí donde tienes que pegar el siguiente contenido:
server {
listen 80;
server_name tu_dominio;
root /var/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}Sustituye ‘tu_dominio’ por el domino que vas a utilizar con tu página web sin las www. Al no tener un sistema DNS instalado en el servidor para gestionar los dominos como en CPanel, creo que la mejor forma de apuntar el dominio al VPS es utilizar Cloudflare.
Simplemente añade tu dominio a Cloudflare y cambia la ip de tu antiguo servidor por la ip del servidor VPS que estás configurando.
Guarda el archivo (Ctrl+O) y sal del editor (Ctrl+X).
Por último, necesitamos activar el sitio y recarbar Ngnix para que los cambios hagan efecto:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Si todo ha ido bien, deberías ver algo parecido a la imagen superior donde te dice que todo está OK.
En este punto, ya hemos finalizado de instalar y configurar la pila LEMP (Linux, PHP, MariaDB y Ngnix) en nuestro VPS con Debian12. Ahora es el turno de instalar WordPress y completar el proceso.
Descargar e Instalar WordPress en VPS con Ngnix
Utilizaremos WordPress para crear nuestro sitio web por ser uno de los sistemas más utilizados y populares. La descarga de WordPress y su instalación en nuestro VPS con Debian12 y Ngnix la haremos vía ssh utilizando de nuevo Putty.
Una vez que te has conectado a tu VPS, utiliza el siguiente comando para descargar e instalar WordPress:
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvf latest.tar.gz
sudo mv wordpress /var/www/El proceso es rápido, y una vez que haya finalizado, tenemos que ajustar los permisos de los archivos de WordPress con el comando:
sudo chown -R www-data:www-data /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress1. Crear Archivo de Configuración de Worpress
Ahora tenemos que editar el archivo de configuración de WordPress que será el que conecte nuestra instalación con la base de datos que creamos anteriormente.
Utiliza este comando para acceder al archivo:
cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
nano /var/www/wordpress/wp-config.phpModifica en el archivo las siguientes líneas:
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wordpress_user');
define('DB_PASSWORD', 'tu_contraseña_segura');
define('DB_HOST', 'localhost');- Sustituye ‘wordpress_db’ por el nombre de tu base de datos.
- Sustituye ‘wordpress_user’ por el nombre de usuario.
- Sustituye ‘tu_contraseña_segura’ por la contraseña de tu base de datos.
Guarda los cambios (Ctrl+O) y sal del editor (Ctrl+X).
2. Instalar phpmyadmin en Ngnix
Este paso es opcional ya que nuestra instalación de WordPress ya debería estar funcionando correctamente. Sin embargo, yo prefiero instalar también phpmyadmin, que es un gestor visual de bases de datos, por si necesito modificar o realizar copias de seguridad manuales.
Instala phpmyadmin con el comando:
sudo apt install phpmyadmin -yDurante la instalación no selecciones ningún servidor web, tan solo pulsa intro para continuar y selecciona ‘no’ cuando te pregunte si quieres configurar una base de datos para phpmyadmin.
Ahora es necesario agregar phpmyadmin a Ngnix con el comando:
sudo ln -s /usr/share/phpmyadmin /var/www/wordpress/phpmyadminY reiniciar Ngnix para guardar los cambios:
sudo systemctl reload nginx3. Completar la instalación de WordPress
Estamos terminado. Tan solo tienes que completar la instalación de WordPress en Ngnix con Debia12, para lo que tienes que abrir el navegador e introducir la url de tu sitio web y seguir los pasos para completar la instalación de wordpress.
Completado estos simples pasos, ya podrás acceder al panel de control de tu sitio WordPress instalado en un VPS con Debian12 y Ngnix.
Ahora tan solo te queda añadir el contenido o instalar una copia de seguridad de tu web para utilizar en este nuevo servidor.