En este tutorial, explicaremos cómo instalar WordPress con Nginx MariaDB en AlmaLinux 9/Rocky Linux 9. El tutorial lo guiará para instalar y configurar Nginx como servidor web., PHP, y MariaDB como sistema de base de datos.
WordPress es el CMS más popular (Sistema de gestión de contenidos). Es una plataforma gratuita y de código abierto escrita en PHP y combinada con una base de datos MySQL o MariaDB para el backend..
requisitos previos:
- Un AlmaLinux 9 servidor dedicado o KVM VPS con acceso root o una cuenta de usuario normal con privilegios sudo.
- Actualizar el sistema:
sudo dnf update -y
- Instalar Nginx:
sudo dnf install nginx -y
Inicie y habilite el servicio Nginx:
sudo systemctl start nginx && sudo systemctl enable nginx
Abra el firewall para Nginx:
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload
sudo firewall-cmd --add-service=https --permanent sudo firewall-cmd --reload
- Instalar MariaDB:
Agregar el repositorio MariaDB:
sudo vi /etc/yum.repos.d/mariadb.repo
Agregue la configuración del repositorio:
[mariadb] name = MariaDB baseurl = https://rpm.mariadb.org/10.11/rhel/$releasever/$basearch gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck = 1
Instalar el paquete:
sudo dnf install mariadb-server -y
Iniciar y habilitar MariaDB:
sudo systemctl start mariadb && sudo systemctl enable mariadb
Crear una base de datos y un usuario.:
mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit
MariaDB viene con una contraseña de root predeterminada que no es muy segura. Para proteger MariaDB, ejecuta el siguiente comando:
sudo mysql_secure_installation
Follow the prompts to set a new root password, eliminar usuarios anónimos, and disable remote root login.
- Install PHP:
sudo dnf install epel-release sudo dnf module install php:8.1 sudo dnf install php-fpm php-mysqlnd php-mbstring php-gd -y
Verify PHP installation:
php -v
Configure cgi.fix_pathinfo:
sudo vi /etc/php.ini
b. Uncomment the cgi.fix_pathinfo parameter by removing the semicolon (;) at the beginning of the line.
C. Set the value of cgi.fix_pathinfo to 0:
cgi.fix_pathinfo=0
d. Save and exit the php.ini file.
Restart php-fpm service:
sudo systemctl restart php-fpm
- Configure Nginx:
sudo vi /etc/nginx/conf.d/example.com.conf
Add config (update it with your data):
server {
server_name server_domain_name_or_IP;
root /var/www/wordpress;
index index.html index.htm index.nginx-debian.html index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Test the configuration file.
sudo nginx -t
If there are no errors, restart the Nginx to make the necessary changes.
sudo systemctl restart nginx
- Get and extract WordPress:
cd /tmp curl -O https://wordpress.org/latest.tar.gz tar xzvf latest.tar.gz -C /var/www/ cd /var/www/wordpress/ cp wp-config-sample.php wp-config.php
Change the ownership to www-data user and group.
sudo chown -R nginx:nginx /var/www/wordpress/
- Configure wp-config.php:
Generate keys:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
Copy the secret key and paste it into the WordPress configuration file wp-config.php.
sudo nano wp-config.php
Find the section that contains the dummy values for those settings.
It will look like:
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
Elimine esas líneas y pegue los valores que copió desde la línea de comando.
Establecer valores:
nano wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpressuser');
define('DB_PASSWORD', 'password');
define('FS_METHOD','direct');
- Configurar un certificado SSL (update it with your data):
sudo dnf install certbot python3-certbot-nginx sudo certbot --nginx -d example.com
Ahora que los archivos de WordPress están descargados e instalados, necesitamos configurar WordPress. Para hacer esto, abra un navegador web y navegue hasta su sitio web de WordPress. Deberías ver la pantalla de instalación de WordPress..
Siga las indicaciones para completar la instalación de WordPress.. Deberá proporcionar la siguiente información:
- Título del sitio: El nombre de tu sitio web.
- Descripción: Una breve descripción de su sitio web..
- Nombre de usuario: El nombre de usuario de su cuenta de administración de WordPress.
- Contraseña: La contraseña de su cuenta de administración de WordPress.
- Dirección de correo electrónico: Su dirección de correo electrónico.
Una vez que haya ingresado toda la información, haga clic en el Install WordPress
botón. Se instalará WordPress y usted iniciará sesión en el panel de administración de WordPress..
Una vez que haya instalado WordPress, es importante asegurar su instalación.