La instalación de WordPress se realiza generalmente usando Apache, pero hay una muy buena alternativa a ella. Nginx es un servidor web de código abierto, lanzado en 2004, es un servidor web robusto, ligero y muy potente! Hay varios beneficios de usarlo en lugar de Apache, vamos a hablar un poco sobre los lados positivos y negativos de esta configuración. En este tutorial aprenderás a instalar, configurar y optimizar WordPress usando Nginx como servidor web, PHP 7.4 y también generaremos el certificado SSL usando letsencrypt para habilitar el protocolo HTTPS.
¿Por qué usar Nginx?
Hay varias razones para utilizar Nginx, en mi caso decidí utilizar porque ya tenía una instalación para otra aplicación web con Nginx, para ahorrar recursos de la máquina decidí probar esta configuración de Wordpres + Nginx y estaba muy contento con el resultado. Otras razones para usar: Es compatible con proxy inverso, almacenamiento en caché integrado muy eficiente (FastCGI), streaming de medios, equilibrio de carga y más. Está diseñado para tener un bajo consumo de memoria, muchas conexiones simultáneas y optimizado para entregar archivos estáticos como imágenes y vídeos.
Requisitos previos
- Servidor Ubuntu 18.04/20.04 con acceso root y una IP pública
- Un dominio para configurar el acceso y emitir el certificado SSL
Cómo instalar WordPress con Nginx
Vayamos a la parte técnica, accedamos por ssh a la máquina que va a configurar y siga los siguientes pasos:
1. Actualización del sistema
En primer lugar, actualice las referencias del paquete del sistema.
$sudo actualización adecuada
Ahora actualice los programas a la versión más reciente (este paso es opcional pero recomendado).
$sudo actualización de apartamentos
2. Instalación de Nginx
Vamos a instalar Nginx directamente desde el repositorio de Ubuntu.
$sudo apt install nginx
Este paso puede tardar un tiempo, se instalará y configurará Nginx en su máquina, al final comprobar si el servicio se está ejecutando.
$sudo estado systemctl nginx
3. Configuración del cortafuegos
Si está en cualquier equipo que tenga UFW habilitado, ejecute el siguiente comando para agregar Nginx como de confianza.
$ sudo ufw permitir 'Nginx Full'
4. Instalación y configuración de la base de datos MySQL
Nuestra instalación de WordPress necesitará una base de datos, puede ser tanto MariaDB como MySQL, en este tutorial vamos a utilizar la última opción.
$sudo instalar mysql-server
Asegúrese de que la instalación se realizó correctamente.
$sudo estado de systemctl mysql
Ahora tenemos que introducir por línea de comandos en MySQL para crear la base de datos y el usuario para WordPress.
$ mysql -u root -p
Con el siguiente comando crearemos una base de datos llamada wordpre
ss con charset utf8mb4.
mysql> CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Ahora necesitamos crear un usuario y darle permiso para acceder a nuestra base de datos recién creada. Cambie su usuari
o al nombre de usuario deseado y YourSS tam
bién, recuerde utilizar una contraseña segura.
mysql> GRANT ALL ON wordpress.* A YourUser 'localhost' IDENTIFICADO POR 'YourSword';
Renueve los privilegios de MySQL y salga de la línea de comandos.
privilegios de vaciado;
mysql> EXIT;
Ahora vamos a ejecutar una comprobación de seguridad de MySQL, este paso es opcional pero muy recomendable.
$sudo mysql_secure_installation
5. Instalación de PHP 7.4
Primero ejecute los siguientes comandos para actualizar el sistema y agregar y configurar php ppa en su servidor.
$sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$sudo actualización adecuada
Ahora vamos a instalar PHP 7.4 y todos los plugins necesarios para WordPress.
$sudo apt instalar php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-i php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl unzip -y
Asegúrese de que la instalación se ha realizado correctamente.
$php-fpm7.4 -v
Puede cambiar algunos ajustes importantes, como el tamaño máximo de carga y el tiempo de ejecución de PHP.
sudo nano /etc/php/7.4/fpm/php.ini
file_uploads - Activado
allow_url_fopen - Activado
upload_max_filesize 100M
post_max_size 64 millones de euros
memory_limit 256 millones de euros
max_execution_time 360
max_input_vars 3000
max_input_time 1000
6. Instalación de WordPress
Primero vamos a crear la carpeta donde estará nuestra instalación de WordPress.
$sudo mkdir -p/var/www/html/yourite.com
Navegue a la carpeta y descargue la última versión de WordPress.
$cd/var/www/html/seusite.com && wget https://wordpress.org/latest.tar.gz
Ahora tenemos que extraer y mover los archivos a la raíz de la carpeta deseada.
$ tar xf latest.tar.gz && mv wordpress/* .. /
Ahora agrega los permisos necesarios para que el servidor web pueda acceder a los archivos de instalación.
$sudo chown -R www-data: /var/www/html/yourite.com
7. Configuración de Nginx para WordPress
Ahora necesitamos configurar Nginx para reconocer nuestro dominio y la instalación de WordPress. Para ello crearemos un archivo en la carpeta /etc/nginx/sites-disponible c
on el nombre de nuestro dominio. Con tu editor favorito, nano en mi caso, crea el archivo.
$sudo nano /etc/nginx/sites-disponible
Copie y pegue el siguiente contenido.
servidor
escuchar 80;
escuchar[::] :80;
server_name seusite.com www.seusite.com;
root /var/www/yoursite.com;
index.php;
• Archivos de registro
access_log /var/log/nginx/yourite.com.access.log;
error_log /var/log/nginx/yourite.com.error.log;
• Creamos la configuración para el Favicon básico
ubicación á /favicon.ico ?
try_files @empty /favicon.ico;
access_log apagado;
log_not_found apagado;
expira máx. ;
}
• Configuración de robots.txt para motores de búsqueda
ubicación : /robots.txt ?
permitir todo;
log_not_found apagado;
access_log apagado;
try_files $uri /index.php?$args;
}
• Configuración para realizar la instalación de wordpress
ubicación / ?
try_files $uri $uri/ /index.php?$args;
}
• Incluimos la configuración de FastCGI
ubicación : .php$
incluir fragmentos/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
• Hemos añadido una configuración de caché para archivos de imagen, css y javascript
ubicación.* . (js-css-png-jpg-jpeg-gif-ico-svg)$
expira máx. ;
log_not_found apagado;
}
}
Ahora crea un acceso directo (enlace simbólico) a este archivo recién creado nuestro.
$sudo ln -s /etc/nginx/sites-available/yoursite.com/etc/nginx/sites-enabled/
Ahora reinicie Nginx para que se aplique la nueva configuración del sitio.
$ sudo systemctl reinicio nginx
8. Instalar Let's Encrypt y Generar el certificado SSL
En este paso ya necesita haber configurado la señal de su dominio a su servidor, necesitaremos que el servidor ya sea accesible por Internet público. Instalar y configurar Certbot, generará y configurará automáticamente el certificado en la instalación de Nginx.
$sudo add-apt-repository ppa:certbot/certbot
$sudo apt install python-certbot-nginx
$ sudo certbot --nginx -d seusite.com -d www.seusite.com
Aparecerá un breve cuestionario, aceptará los términos y responderá a todas las preguntas cuidadosamente. En el último paso elegir para redirigir todo el tráfico HTTP a HTTPS, se encargará de configurar la redirección automáticamente.
9. Configuración de WordPress
Si todo salió bien, ahora puedes acceder a la instalación de WordPress en tu navegador escribiendo tu dominio en el caso de este tutorial https://seusite.co
m. Ahora es muy simple, sólo tienes que seguir y responder al cuestionario de instalación de WordPress, informar a la base de datos, usuario y contraseña que configuramos en el paso 4.
Ahora solo tienes que aprovechar tu nueva y optimizada instalación de WordPress. Una vez configurado, utilice plugins de caché que tengan compatibilidad de configuración con Nginx para optimizar aún más la velocidad de su sitio.
Nginx es una opción excelente debido a su alto rendimiento, eficiencia en el uso de recursos, escalabilidad, y seguridad. Si necesitas un servidor web o reverse proxy que maneje grandes cantidades de tráfico con eficiencia, sirva contenido estático rápidamente, y sea flexible para adaptarse a arquitecturas modernas (como microservicios), Nginx es la opción indicada. Además, su comunidad activa y soporte comercial hacen que sea una herramienta confiable para proyectos de todo tipo.