Cómo instalar WordPress con Nginx en AlmaLinux 8

WordPress es un sistema de gestión de contenidos (CMS) gratuito, de código abierto y el más popular del mundo, construido íntegramente en PHP. Lo utilizan miles de personas en todo el mundo para crear blogs, sitios web de negocios y tiendas de comercio electrónico. Tiene grandes características, como un panel de administración sencillo y fácil de usar, miles de plugins, una enorme comunidad, tematización en profundidad, personalización y mucho más.

En esta guía, te mostraremos cómo instalar WordPress con Apache y Let’s Encrypt SSL en AlmaLinux 8.

Requisitos previos

  • Un servidor con AlmaLinux 8.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada en el servidor.

Instalar el servidor LAMP

WordPress requiere que el servidor LAMP esté instalado en tu servidor. Puedes instalarlo con el siguiente comando:

dnf install httpd mariadb-server php php-mysqlnd php-dom php-simplexml php-xml php-xmlreader php-curl php-exif php-ftp php-gd php-iconv php-json php-mbstring php-posix php-sockets php-tokenizer unzip -y

Después de instalar el servidor LAMP, inicia el servicio Apache y MariaDB, y permite que se inicien al reiniciar el sistema:

systemctl start mariadb
systemctl start httpd
systemctl enable mariadb
systemctl enable httpd

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar la base de datos MariaDB

En primer lugar, tendrás que establecer la contraseña de root de MariaDB y asegurar la instalación de MariaDB. Puedes hacerlo con el siguiente comando:

mysql_secure_installation

Responde a todas las preguntas como se muestra a continuación:

Enter current password for root (enter for none): 
Set root password? [Y/n] Y
New password: 
Re-enter new password: 
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

Una vez que hayas terminado, inicia sesión en MariaDB con el siguiente comando:

mysql -u root -p

Una vez que hayas iniciado la sesión, crea una base de datos y un usuario para WordPress:

MariaDB [(none)]> CREATE DATABASE wordpress;
MariaDB [(none)]> CREATE USER `wordpress`@`localhost` IDENTIFIED BY 'password';

A continuación, concede todos los privilegios a la base de datos de WordPress con el siguiente comando:

MariaDB [(none)]> GRANT ALL ON wordpress.* TO `wordpress`@`localhost`;

A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Una vez que hayas terminado, puedes pasar al siguiente paso.

Descarga WordPress

A continuación, cambia el directorio a la raíz web de Apache y descarga la última versión de WordPress con el siguiente comando:

cd /var/www/html
wget https://wordpress.org/latest.tar.gz

Una vez completada la descarga, extrae el archivo descargado con el siguiente comando:

tar -xvzf latest.tar.gz

A continuación, cambia el directorio a wordpress y cambia el nombre del archivo de configuración de ejemplo:

cd wordpress
mv wp-config-sample.php wp-config.php

A continuación, edita el archivo de configuración con el siguiente comando:

nano wp-config.php

Define la configuración de tu base de datos como se muestra a continuación:

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

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

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

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

Guarda y cierra el archivo cuando hayas terminado, y establece los permisos adecuados para el directorio de WordPress:

chown -R apache:apache /var/www/html/wordpress

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Apache para WordPress

A continuación, tendrás que crear un archivo de configuración del host virtual de Apache para WordPress. Puedes crearlo con el siguiente comando:

nano /etc/httpd/conf.d/wordpress.conf

Añade las siguientes líneas:

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot "/var/www/html/wordpress"
   ServerName wordpress.example.com
   ErrorLog "/var/log/httpd/example.com-error_log"
   CustomLog "/var/log/httpd/example.com-access_log" combined

<Directory "/var/www/html/wordpress">
   DirectoryIndex index.html index.php
   Options FollowSymLinks
   AllowOverride All
   Require all granted
</Directory>
</VirtualHost>

Guarda y cierra el archivo y luego reinicia el servicio Apache para aplicar los cambios:

systemctl restart httpd

Puedes comprobar el estado del Apache con el siguiente comando:

systemctl status httpd

Deberías obtener la siguiente salida:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-07-09 03:30:47 EDT; 3s ago
     Docs: man:httpd.service(8)
 Main PID: 4153 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 12524)
   Memory: 24.5M
   CGroup: /system.slice/httpd.service
           ??4153 /usr/sbin/httpd -DFOREGROUND
           ??4155 /usr/sbin/httpd -DFOREGROUND
           ??4156 /usr/sbin/httpd -DFOREGROUND
           ??4157 /usr/sbin/httpd -DFOREGROUND
           ??4158 /usr/sbin/httpd -DFOREGROUND

Jul 09 03:30:47 AlmaLinux systemd[1]: Stopped The Apache HTTP Server.
Jul 09 03:30:47 AlmaLinux systemd[1]: Starting The Apache HTTP Server...

Una vez que hayas terminado, puedes pasar al siguiente paso.

Asegurar WordPress con Let’s Encrypt SSL

A continuación, tendrás que instalar el cliente Certbot para instalar el SSL de Let’s Encrypt para WordPress. Puedes instalarlo con el siguiente comando:

dnf install epel-release -y 
dnf install certbot python3-certbot-apache

A continuación, obtén e instala un certificado SSL para tu dominio lets con el siguiente comando:

certbot --apache -d wordpress.example.com

Se te pedirá que proporciones tu dirección de correo electrónico y que aceptes las condiciones del servicio:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for wordpress.example.com
Performing the following challenges:
http-01 challenge for wordpress.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/httpd/conf.d/wordpress.conf
Redirecting all traffic on port 80 to ssl in /etc/httpd/conf.d/wordpress.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://wordpress.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: [email protected]).


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wordpress.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wordpress.example.com/privkey.pem
   Your certificate will expire on 2022-02-09. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Configurar el cortafuegos

A continuación, tendrás que permitir los puertos 80 y 443 a través del cortafuegos. Puedes permitirlos con el siguiente comando:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https

A continuación, recarga el firewalld para aplicar los cambios:

firewall-cmd --reload

Una vez que hayas terminado, puedes pasar al siguiente paso.

Accede al panel de control de WordPress

A continuación, abre tu navegador web y accede al panel de administración de WordPress utilizando la URL https://wordpress.example.com. Serás redirigido a la siguiente página:

Elige la lengua

Selecciona tu idioma y haz clic en el botón Continuar. Deberías ver la página de configuración del sitio de WordPress:

Detalles del sitio

Proporciona la información de tu sitio y haz clic en el botón Instalar WordPress. Una vez completada la instalación, deberías ver la siguiente página:

Instalación de WordPress con éxito

Haz clic en el botón Iniciar sesión. Serás redirigido a la página de inicio de sesión de WordPress:

Entra en WordPress

Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de WordPress en la siguiente página:

Panel de control de WordPress

Conclusión

Enhorabuena! has instalado con éxito WordPress con Apache y Let’s Encrypt SSL en AlmaLinux 8. Ahora puedes crear tu propio sitio web fácilmente con WordPress. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...