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:
Selecciona tu idioma y haz clic en el botón Continuar. Deberías ver la página de configuración del sitio de WordPress:
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:
Haz clic en el botón Iniciar sesión. Serás redirigido a la página de inicio de sesión de 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:
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.