GNU/Linux >> Tutoriales Linux >  >> Debian

Instalar WordPress con Nginx en Debian 10/11

Resumen

La siguiente publicación mostrará los pasos para instalar WordPress con Nginx en Debian 10 y también en Debian 11. En un solo servidor Debian instalaremos y configuraremos la pila LEMP (Nginx, PHP y MariaDB) y al final instalaremos y ejecutaremos WordPress. En otras palabras, nuestro único servidor Debian ejecutará el servidor web Nginx, el servidor MariaDB y ejecutará WordPress en conjunto.

WordPress también se puede configurar y ejecutar en varios servidores separados (servidor web separado y servidor de base de datos separado). Si necesita una configuración como esa (con una base de datos remota), puede consultar cómo configurarla en esta publicación. Otro método para instalar y ejecutar WordPress es con Docker, que se trata en esta publicación.

Instalar bibliotecas y paquetes necesarios

sudo apt install nginx php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl mariadb-server

Una vez que se complete la instalación, inicie Nginx y MariaDB si no se están ejecutando y habilítelos para que se inicien automáticamente en el arranque.

sudo systemctl start nginx.service

sudo systemctl enable nginx.service

sudo systemctl start mariadb.service

sydo systemctl enable mariadb.service

Configurar la base de datos

Inicie y configure el servidor mariadb con una base de datos, usuario y privilegios de concesión.

Antes de eso, primero se recomienda ejecutar la instalación segura:

sudo mysq_secure_installation

Cuando se le solicite el cambio de contraseña de root, puede omitirlo, pero eso depende de si necesita cambiar la contraseña de root o no. Con el resto de las preguntas solicitadas, puede continuar y elegir la opción Sí. Similar como en la imagen de abajo:

luego acceda al servidor de la base de datos y cree la base de datos, un usuario y establezca privilegios

sudo mysql -u root -p


CREATE DATABASE sampledbwp;


GRANT ALL ON sampledbwp.* TO 'sample-admin'@'localhost' IDENTIFIED BY 'SamplePassword1';


quit

Con estos comandos, creamos la base de datos:sampledbwp, creamos el usuario sample-admin en localhost y otorgamos todos los privilegios para leer y escribir la base de datos que acabamos de crear.

Instalar y configurar WordPress

Navegue al siguiente directorio y descargue y extraiga la instalación de WordPress:

cd /var/www/html/

sudo wget https://wordpress.org/latest.tar.gz

sudo tar -xzfv latest.tar.gz

Cambie al directorio de wordpress y cambie el nombre del archivo wp-config-sample.php a wp-config.php

cd wordpress

mv wp-config-sample.php wp-config.php

Ahora vamos a editar el archivo de configuración de WordPress:

sudo nano wp-config.php

En el archivo de configuración, debemos agregar el usuario de la base de datos, el nombre de la base de datos y la contraseña que creamos en el servidor MariaDB y agregar claves salt desde:https://api.wordpress.org/secret-key/1.1/salt/. Consulte la siguiente imagen de muestra:

Guardar y salir.

Configure los permisos correctos para la instalación de WordPress para que sea accesible desde Internet:

sudo chown -R www-data:www-data /var/www/html/wordpress

sudo chmod -R 755 /var/www/html/wordpress

Configurar Nginx

Pasando a la configuración del servidor web nginx. El primer paso es crear el archivo de configuración para nuestro sitio web de WordPress. Ejecute el siguiente comando para iniciar el editor de texto:

sudo nano /etc/nginx/sites-disponible/wordpress.conf

A continuación encontrará la configuración de muestra:

server {
        listen 80;
        listen [::]:80;
        root /var/www/html/wordpress;
        index  index.php index.html index.htm;
        server_name mysite.com www.mysite.com;

        error_log /var/log/nginx/mysite.com_error.log;
        access_log /var/log/nginx/mysite.com_access.log;
        
        client_max_body_size 100M;
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

Guardar y salir.

Nota – Vuelva a verificar y confirme la raíz de su instalación de wordpress y la versión de php-fpm que se ejecuta en su servidor. Deben coincidir en el archivo de configuración.

Al final, debería verse así:

La configuración predeterminada aún permanece en Nginx y está activa. Hasta que no se elimine, su configuración no tendrá lugar, lo que significa que no se podrá acceder a su sitio web de WordPress, por lo que debemos eliminar la configuración predeterminada:

sudo rm /etc/nginx/sites-available/default

sudo rm /etc/nginx/sites-enabled/default

Cree el enlace simbólico para nuestra nueva configuración de wordpress de Nginx:

sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/

Después de eso, verifique dos veces la configuración con:

sudo nginx -t

y reinicie Nginx

sudo systemctl restart nginx

Pruebe si WordPress está activo en el navegador accediendo a él con la dirección IP del servidor o con la URL (si ha asignado el nombre de dominio) y complete la instalación:

Y eso es todo. Ahora tiene un sitio web de WordPress en funcionamiento.

Pocas sugerencias y consejos de seguridad

Aquí me gustaría señalar algunas sugerencias para una instalación de WordPress más segura y segura y cómo mantenerlo.

  • La primera sugerencia es eliminar el archivo xmlrpc.php

Este archivo no es un punto crucial de WordPress y WordPress puede funcionar sin este archivo sin ningún problema. El archivo xmlrpc se usó en las primeras etapas de WordPress como servicio, donde los clientes de blogs se conectan a WordPress a través de xmlrpc para publicar contenido nuevo (en resumen). Este archivo ahora es la causa de muchos y varios ataques maliciosos (DDoS, fuerza bruta, etc.).

En este ejemplo, podemos eliminar este archivo con el comando:

sudo rm /var/www/html/wordpress/xmlrpc.php

Una nota también:con cada actualización/actualización de WordPress, este archivo volverá a aparecer, por lo que es necesario repetir la acción cada vez que se actualice WordPress.

  • Eliminar wp-config-sample.php

En esta publicación, cambiamos el nombre de este archivo a wp-config.php. Lo hicimos de esta manera ya que agregamos manualmente las credenciales de la base de datos para que WordPress se conecte al servidor de la base de datos y también agregamos las claves salt. Este archivo también reaparece con cada actualización/actualización de WordPress y se sugiere eliminarlo, ya que está expuesto a muchos ataques maliciosos que pueden provocar la eliminación de su sitio.

  • Ocultar URL de inicio de sesión de wp y agregar inicio de sesión 2FA

Se recomienda encarecidamente cambiar el inicio de sesión de URL predeterminado para evitar ataques de fuerza bruta y agregar un inicio de sesión de autenticación de dos factores. Puede hacerlo fácilmente con complementos como:WPS Hide login y miniOrange 2-Factor. Además, ahora WordPress también tiene su inicio de sesión 2FA de forma predeterminada.

  • Agregue el complemento de firewall y no use una cuenta con el nombre de usuario admin

Uno de los primeros complementos que se recomienda instalar es un complemento de firewall, como Wordfence o Sucuri

Resumen

Cubrimos los pasos sobre cómo instalar WordPress con Nginx en Debian 10 y también en Debian 11. Este escenario donde WordPress se sirve con su base de datos en una sola máquina de servidor es una buena opción si también está comenzando ahora y no tiene un presupuesto adicional para gastar en infraestructura o si es un principiante que prueba WordPress por primera vez en un alojamiento en la nube/dedicado/VM/VPS o simplemente para algunos propósitos de prueba.

Pero una desventaja que puede causar con el tiempo es que si todavía tiene este escenario en producción, puede ser bastante difícil mantener el servidor cuando se necesitan actualizaciones, ya que puede causar tiempos de inactividad. Es por eso que es una práctica común tener al menos dos servidores y separar la instalación de WordPress teniendo en un servidor solo el servidor web (Nginx o Apache) y la instalación de WordPress y el otro el servidor de la base de datos (MariaDB, MySQL). Puede consultar el proceso de configuración para este tipo de entorno en esta publicación.

Muchas gracias por su tiempo…


Debian
  1. Cómo instalar Nginx en Debian 8 (Jessie)

  2. Cómo instalar Nginx en Debian 9 (Stretch)

  3. Cómo instalar Webmin en Debian 10/11

  4. Instalar Plone con Nginx en un VPS Debian 8

  5. Cómo instalar WordPress con Nginx en Debian 10

Cómo instalar el último PHP 8.1 en Debian 11/10

Cómo instalar el servidor SVN en Debian 11/10

Cómo instalar Nginx con PHP-FPM en Debian 10

Cómo instalar WordPress con LEMP Stack en Debian 11 Bullseye

Cómo instalar WordPress con LAMP Stack en Debian 11 Bullseye

Cómo instalar phpMyAdmin con Nginx en Debian 11