GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instale WordPress en Ubuntu 18.04 con Nginx, MariaDB, PHP7.2 (LEMP)

Este tutorial le mostrará cómo instalar WordPress en Ubuntu 18.04 con Nginx, MariaDB y PHP7.2 (LEMP Stack). WordPress es el CMS (Content Management System) más popular del mundo. Se estima que más de un tercio de los sitios web actuales funcionan con WordPress. PHP7.2 se convirtió en el repositorio de Ubuntu 18.04 y WordPress funciona perfectamente con él.

Requisito previo

Para seguir este tutorial, debe tener un servidor Ubuntu 18.04 con al menos 1 GB de RAM. Si está buscando un VPS (servidor privado virtual), puede hacer clic en este enlace especial para obtener $ 50 de crédito gratis en DigitalOcean. (Solo para nuevos usuarios). Si ya es usuario de DigitalOcean, puede hacer clic en este enlace especial para obtener $50 de crédito gratis en Vultr (solo para nuevos usuarios).

También necesita un nombre de dominio, para que los visitantes puedan escribir un nombre de dominio en la barra de direcciones del navegador web para acceder a su sitio. Registré mi nombre de dominio en NameCheap porque el precio es bajo y ofrecen protección de privacidad whois gratis de por vida.

Este tutorial asume que ya configuró una pila LEMP en Ubuntu 18.04. Si no es así, consulta el siguiente tutorial.

  • Cómo instalar LEMP Stack (Nginx, MariaDB, PHP7.2) en Ubuntu 18.04

Después de terminar la instalación de LEMP, regrese aquí y siga leyendo.

Paso 1:Descarga WordPress

SSH en su servidor Ubuntu 18.04 y actualice el software existente.

sudo apt update && sudo apt upgrade

A continuación, vaya a la página de descarga de wordpress.org y descargue el archivo zip. Puede adquirir el enlace de descarga directa haciendo clic con el botón derecho en el botón de descarga y seleccionando copy link location .

Luego, en la línea de comandos, escriba wget seguido del enlace de descarga directa para descargar WordPress a su servidor Ubuntu 18.04.

wget https://wordpress.org/latest.zip

A continuación, extraiga el archivo zip con el siguiente comando.

sudo apt install unzip

sudo unzip latest.zip -d /usr/share/nginx/

El archivo se extraerá a /usr/share/nginx/ directorio. Un nuevo directorio llamado wordpress se creará (/usr/share/nginx/wordpress). Ahora podemos cambiarle el nombre como se muestra a continuación. Reemplace example.com con su nombre de dominio real.

sudo mv /usr/share/nginx/wordpress /usr/share/nginx/example.com

Paso 2:Cree una base de datos y un usuario para el sitio de WordPress

Inicie sesión en el shell de MariaDB como root con el siguiente comando.

sudo mariadb -u root

o

sudo mysql -u root

Una vez que haya iniciado sesión, cree una base de datos para WordPress usando el siguiente comando. Lo nombré wordpress , pero puede usar el nombre que desee, como el nombre de su sitio. (No omita el punto y coma).

create database wordpress;

Luego ingrese el siguiente comando para crear un usuario de base de datos para WordPress. Este comando también otorga todos los privilegios de la base de datos de WordPress al usuario. Reemplazar wpuser y your-password con su nombre de usuario y contraseña preferidos.

grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';

Vacíe la tabla de privilegios para que los cambios surtan efecto y luego salga del shell de MariaDB.

flush privileges;

exit;

Paso 3:Configurar WordPress

Vaya a su directorio de WordPress.

cd /usr/share/nginx/example.com/

Copie el archivo de configuración de muestra y cámbiele el nombre a wp-config.php .

sudo cp wp-config-sample.php wp-config.php

Ahora edite el nuevo archivo de configuración con un editor de texto de línea de comandos como Nano.

sudo nano wp-config.php

Busque las siguientes líneas y reemplace los textos en rojo con el nombre de la base de datos, el nombre de usuario y la contraseña que creó en el paso anterior.

/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

Guarde y cierre el archivo. Para guardar el archivo en el editor de texto Nano, presione Ctrl+O , luego presione Enter para confirmar. A continuación, presione Ctrl+X para salir.

También necesitamos configurar el usuario de Nginx (www-data ) como propietario del directorio del sitio de WordPress usando el siguiente comando.

sudo chown www-data:www-data /usr/share/nginx/example.com/ -R

Paso 4:Cree un bloque de servidor Nginx para WordPress

Crearemos el archivo de bloque del servidor en /etc/nginx/conf.d/ directorio. El nombre del archivo debe terminar con .conf .

sudo nano /etc/nginx/conf.d/example.com.conf

Coloque los siguientes textos en el archivo. Reemplace los textos rojos con su propio nombre de dominio. No olvide crear registros A para su nombre de dominio.

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /usr/share/nginx/example.com/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~* /wp-sitemap.*\.xml {
     try_files $uri $uri/ /index.php$is_args$args;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  #enable gzip compression
  gzip on;
  gzip_vary on;
  gzip_min_length 1000;
  gzip_comp_level 5;
  gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;
  gzip_proxied any;

  # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Guarde y cierre el archivo. Luego pruebe las configuraciones de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx.

sudo systemctl reload nginx

Introduzca su nombre de dominio en la barra de direcciones del navegador.

example.com

o

example.com/wp-admin/install.php

Verá el asistente de instalación de WordPress. Seleccione un idioma.

Si no se muestra el asistente de instalación, probablemente necesite instalar algunas extensiones de PHP7.

sudo apt install php-imagick php7.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-common php7.2-gd php7.2-json php7.2-cli php7.2-curl php7.2-zip

Luego recarga PHP-FPM y Nginx. Ahora debería mostrarse el asistente.

sudo systemctl reload php7.2-fpm nginx

Antes de ingresar su información confidencial en el asistente de configuración, se recomienda habilitar HTTPS para evitar el secuestro de tráfico.

Paso 5:habilitar HTTPS

Para cifrar el tráfico HTTP, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en el servidor Ubuntu 18.04.

sudo apt install certbot python3-certbot-nginx

Y ejecute este comando para obtener e instalar el certificado TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com

donde

  • --nginx :use el complemento Nginx.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts :agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra SSL/TLS Stripping.
  • --staple-ocsp :activa el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.
  • --email :Correo electrónico utilizado para el registro y el contacto de recuperación.
  • -d va seguido de una lista de nombres de dominio, separados por comas. Puede agregar hasta 100 nombres de dominio.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Ahora, si vuelve a cargar el asistente de configuración de WordPress, puede ver que HTTP se redirige automáticamente a la conexión HTTPS.

Paso 6:finalice la instalación con el asistente de configuración

Cree una cuenta de administrador y haga clic en Instalar WordPress botón.

Y ahora su nuevo sitio de WordPress está instalado.

Cómo redirigir www a no-www (o viceversa)

Ya hemos habilitado la redirección de HTTP a HTTPS, lo que queda por hacer es redirigir www a no-www, o viceversa. Es muy fácil. Simplemente vaya a Panel de control de WordPress> Configuración> Generales y configure su versión preferida (www o no www) en Dirección de WordPress y Dirección del sitio . Asegúrese de incluir el https:// prefijo.

Evitar solicitudes maliciosas

Después de instalar WordPress, no es necesario acceder a /wp-admin/setup-config.php y /wp-admin/install.php URL más. Sin embargo, los malhechores pueden acceder a estas dos URL y, si se encuentra una vulnerabilidad, el malhechor podría acceder a su back-end de WordPress. Para evitar el acceso a estas dos URL, agregue las siguientes líneas en el bloque del servidor Nginx. Agrégalos antes de la ubicación location ~ \.php$ { línea.

location ~* ^/wp-admin/(setup-config|install)\.php$ {
       deny all;
}

Si no desea que otras personas registren una cuenta en su sitio de WordPress, puede agregar las siguientes líneas para restringir el acceso a /wp-login.php URL, por lo que solo su dirección IP puede acceder a esta URL. Reemplace 78.56.34.12 con su propia dirección IP.

location = /wp-login.php {
    try_files $uri $uri/ /index.php?$args;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
    include snippets/fastcgi-php.conf; 
 
    allow 78.56.34.12;
    deny all;
}

No olvide volver a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Si no tiene una dirección IP estática en su red doméstica, puede configurar un servidor VPN en un centro de datos.

Cómo enviar correos electrónicos en WordPress

Su sitio de WordPress necesita enviar correos electrónicos como correos electrónicos de registro de cuenta, correos electrónicos de restablecimiento de contraseña, correos electrónicos de notificación de comentarios, etc. En lugar de usar costosas soluciones de terceros como Gsuite para crear direcciones de correo electrónico profesionales para su sitio web, puede seguir este tutorial de iRedMail para configurar configure su propio servidor de correo con su propio nombre de dominio, para que pueda tener buzones de correo ilimitados y enviar correos electrónicos ilimitados sin gastar mucho dinero.

Tenga en cuenta que es una buena práctica instalar el servidor de correo y WordPress en dos servidores privados virtuales diferentes porque no desea que el servidor de correo disminuya la velocidad de su sitio de WordPress, y el servidor de correo perderá la dirección IP de su sitio de WordPress si están en el mismo servidor privado virtual, lo que significa que los piratas informáticos pueden eludir cualquier CDN (red de entrega de contenido) que esté utilizando y lanzar un ataque DDoS directamente en su servidor de origen.

Una vez que su servidor de correo esté en funcionamiento, puede instalar un complemento SMTP en WordPress, para que pueda conectarse a su servidor de correo y enviar correos electrónicos. Ve a tu panel de control de WordPress -> Complementos , haga clic en Agregar nuevo para instalar un nuevo complemento.

Luego escribe WP Mail SMTP en el cuadro de búsqueda. Instale y active el WP Mail SMTP de WPForms complemento.

Vuelva a cargar la página web del panel de control de WordPress, verá WP Mail SMTP en la barra de menú izquierda. Haga clic en él y seleccione Configuración .

Luego, desplácese hacia abajo hasta la sección Mailer. De forma predeterminada, se selecciona el correo de PHP. Necesitamos cambiarlo a Otro SMTP .

Desplácese hacia abajo y deberá ingresar la configuración de SMTP.

  • Ingrese el nombre de host de su servidor de correo.
  • Seleccione TLS como cifrado.
  • Utilice el puerto 587.
  • Habilitar autenticación.
  • Ingrese una dirección de correo electrónico de su dominio y la contraseña.

Después de guardar la configuración, puede probar el envío de correo electrónico cerrando sesión en el panel de control de WordPress y haciendo clic en perdió su contraseña enlace para enviar un correo electrónico de restablecimiento de contraseña.

Siguiente paso

  • También puede usar la herramienta de línea de comandos WP-CLI para administrar su sitio de WordPress.
  • Puede usar WPScan para escanear las vulnerabilidades de su sitio de WordPress.
  • Para monitorear el rendimiento de back-end de su sitio de WordPress, puede usar Nginx Amplify.

Espero que este tutorial te haya ayudado a instalar WordPress en Ubuntu 18.04 con Nginx, MariaDB y PHP7.2 (pila LEMP). Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín informativo gratuito para obtener más consejos y trucos. Cuídate 🙂


Ubuntu
  1. Cómo instalar WordPress con Nginx en Ubuntu 18.04

  2. Cómo instalar SuiteCRM con Nginx en Ubuntu 16.04

  3. Cómo instalar Magento con Nginx en Ubuntu 16.04

  4. Cómo instalar Wordpress con Nginx, MariaDB y HHVM en Ubuntu 16.04 LTS

  5. Cómo instalar WordPress con LEMP en Ubuntu 20.04

Instale WordPress en Ubuntu 20.04 con Apache, MariaDB, PHP7.4 (LAMP)

Instale WordPress en Ubuntu 20.04 con Nginx, MariaDB, PHP7.4 (LEMP)

Cómo instalar WordPress 4.7 en Ubuntu 16.04 con Apache, MariaDB, PHP7

Cómo instalar LEMP Stack (Nginx, MariaDB, PHP7.1) en Ubuntu 17.10

Cómo instalar LEMP Stack (Nginx, MariaDB, PHP7.2) en Ubuntu 18.04 LTS

Instalar WordPress con Nginx en Ubuntu 18.04