Cómo instalar WordPress con LAMP y Let’s Encrypt SSL gratis en Rocky Linux

WordPress es uno de los Sistemas de Gestión de Contenidos (CMS) más populares del momento, lo utilizan millones de personas. El proyecto WordPress comenzó en 2003 como una bifurcación del CMS «b2/cafelog», viene con una licencia GPLv2, y se convierte en software libre y de código abierto.

En la actualidad, más del 34% de los sitios web de Internet utilizan WordPress. Una de las razones por las que WordPress es tan popular es porque es sencillo, fácil de usar y flexible. Con cientos/miles de plugins, WordPress puede utilizarse de diferentes maneras, como simple motor de blogs, sitios web de comercio electrónico, perfil de empresa sencillo, comunidad de foros en línea, etc.

En esta guía, aprenderás a instalar el CMS WordPress en Rocky Linux 8.4. Instalarás WordPress bajo la pila LAMP (Linux, Apache2/httpd, MySQL/MariaDB y PHP).

Requisitos previos

  • Un servidor Rocky Linux. Asegúrate de que todos los paquetes están actualizados a la última versión.
  • Un usuario con privilegios de root. Este usuario obtendrá los privilegios de root mediante el comando sudo.

Instalación del servidor web Apache/Httpd

Al principio, instalarás el servidor web Apache o httpd en el servidor Rocky Linux.

1. Ejecuta el siguiente comando dnf para instalar el servidor web httpd.

sudo dnf install httpd

Escribe«y» y pulsa«Intro» para confirmar e instalar los paquetes httpd.

Instalar el servidor web httpd

2. Una vez completada la instalación, habilita e inicia el servicio httpd mediante el siguiente comando.

sudo systemctl enable httpd
sudo systemctl start httpd

El comando«systemctl enable» permitirá que el servicio se inicie en cada arranque.

3. Después, ejecuta el siguiente comando para verificar el servicio httpd.

sudo systemctl status httpd

Y obtendrás un resultado similar al de abajo.

iniciar la activación y comprobación del servidor web httpd

Como se ve en la captura superior, el httpd está activo y funcionando.

Instalar paquetes PHP

Por ahora, el CMS WordPress necesita PHP 7.4 o superior para la instalación. Ahora vas a instalar PHP 7.4 desde el repositorio remi.

1. Ejecuta el siguiente comando para añadir el repositorio epel y remi

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Escribe «y» y pulsa «Intro» para añadir el repositorio epel y remi.

2. Una vez finalizada la instalación, verifica el repositorio epel y remi utilizando el siguiente comando.

sudo dnf repolist

Verás el repositorio epel y remi en la lista de repositorios.

Comprobación del repositorio EPEL y REMI

2. A continuación, restablece el módulo por defecto del repositorio PHP. A continuación, habilita el módulo para PHP 7.4 del repositorio remi.

Ejecuta el siguiente comando para restablecer el repositorio por defecto del módulo php.

sudo dnf module reset php

En el proceso, escribe«y» y pulsa«Intro» para añadir la clave gpg del repositorio remi.

Importar clave GPG repositorio REMI

Después, ejecuta el siguiente comando para habilitar el módulo php desde el repositorio remi.

sudo dnf module enable php:remi-7.4

Escribe«y» para confirmar y pulsa «Enter» para continuar. Ahora estás listo para instalar PHP y todas las extensiones para la instalación de WordPress.

Activar el repositorio REMI PHP 7.4

3. Ejecuta el siguiente comando para instalar php con algunas extensiones necesarias.

sudo dnf install php php-common php-mysqlnd php-gd php-imagick php-bcmath

Una vez completada la instalación, pasa al siguiente paso.

Instalación y configuración del servidor MariaDB

En esta etapa, instalarás el servidor de base de datos MariaDB, asegurarás la implementación de MariaDB y crearás una nueva base de datos y un nuevo usuario para WordPress.

1. Para instalar el servidor de bases de datos MariaDB, ejecuta el siguiente comando.

sudo dnf install mariadb mariadb-server

Espera a que se instale mariadb.

Instalar el servidor de bases de datos MariaDB

2. 3. Una vez completada la instalación, habilita e inicia el servicio MariaDB mediante el siguiente comando.

sudo systemctl enable mariadb
sudo systemctl start mariadb

4. El mariadb estará activo y en funcionamiento, ejecuta el siguiente comando para verificar el servicio MariaDB.

sudo systemctl status mariadb

Si el servicio mariadb se está ejecutando, obtendrás una salida similar a la siguiente.

Iniciar habilitar y cehck MariaDB estadísticas de servicio

5. A continuación, tienes que asegurar tu despliegue de MariaDB estableciendo la contraseña de root para MariaDB y eliminando algunas configuraciones por defecto. Para ello, puedes utilizar la herramienta de línea de comandos«mysql_secure_installation«, que se incluye en la instalación por defecto de MariaDB.

Ejecuta el comando «mysql_secure_installation» que aparece a continuación.

mysql_secure_installation

Al principio, se te pedirá que establezcas la contraseña de root de mariadb.

Escribe tu contraseña fuerte de root de mariadb y repítela, luego pulsa «Intro» para continuar.

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

Ahora escribe «Y» y pulsa «Intro» para eliminar el usuario anónimo por defecto del servidor mariadb.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
… Success!

Después, desactiva el inicio de sesión remoto para el usuario«root» por defecto. Escribe«Y» y pulsa «Intro» para continuar.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
… Success!

Escribe «Y« de nuevo para eliminar la base de datos por defecto«test» y pulsa «Intro«.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Y por último, vuelve a teclear «Y« para recargar todos los privilegios de las tablas y aplicar una nueva configuración.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
… Success!

Ahora el proceso se ha completado y verás la siguiente salida.

Cleaning up...

All done!  If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Crear base de datos y usuario para WordPress

1. Accede al intérprete de comandos mariadb utilizando el comando mysql que aparece a continuación.

mysql -u root -p

2. Ahora ejecuta la siguiente consulta mysql para crear una nueva base de datos«wordpress_db«.

CREATE DATABASE wordpress_db;

3. Ejecuta la siguiente consulta para crear un nuevo usuario de base de datos«wpuser«. Cambia«strongpassword» por tu contraseña segura.

CREATE USER wpuser@localhost IDENTIFIED BY 'strongpassword';

4. Permite al usuario «wpuser» acceder y escribir en la «wordpress_db» utilizando la siguiente consulta.

GRANT ALL PRIVILEGES ON wordpress_db.* to wpuser@localhost;

5. Ahora recarga todos los privilegios de las tablas para aplicar la nueva configuración de la base de datos.

FLUSH PRIVILEGES;

6. Después puedes escribir«quit» y pulsar«Enter» para salir del intérprete de comandos mariadb.

Crear base de datos y usuario para WordPress

Descargar WordPress

1. Cambia el directorio de trabajo a «/var/www» y descarga el código fuente de WordPress utilizando el comando wget como se indica a continuación.

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

2. Extrae el código fuente de WordPress«latest.tar.gz» y obtendrás un nuevo directorio«wordpress«, luego cambia el propietario del directorio «wordpress» al usuario «apache».

tar -xzvf latest.tar.gz
sudo chown -R apache:apache wordpress/

Ahora ya estás listo para configurar la instalación de WordPress.

Configurar WordPress

En esta fase, editarás la configuración de WordPress «wp-config.php», establecerás los detalles de la base de datos y añadirás la clave y las sales de autenticación (para una protección de seguridad adicional).

1. En primer lugar, cambia el directorio de trabajo a«/var/www/wordpress«.

cd /var/www/wordpress/

2. Copia la configuración de ejemplo«wp-config-sample.php» en«wp-config.php«, y edita el archivo de configuración con el editor nano.

cp wp-config-sample.php wp-config.php
nano wp-config.php

3. Cambia los detalles de la base de datos (DB_NAME, DB_USER y DB_PASSWORD) con la información de tu base de datos.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress_db' );
/** MySQL database username */
define( 'DB_USER', 'wpuser' );

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

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

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

4. Visita este enlace para generar las claves y sales de autenticación, luego pega la configuración en tu archivo«wp-config.php» como se indica a continuación.

/**#@+
 * Authentication unique keys and salts.
 *
 * Change these to different unique phrases! You can generate these using
 * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
 *
 * You can change these at any point in time to invalidate all existing cookies.
 * This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'v$4/xyGF7t!^(-Xr~lUKT,1oBxOpxzXPAs)kPE_C%Oc^~^%JN]C-y(k>~Wj+JZRM');
define('SECURE_AUTH_KEY',  'y<|#/jfYs,Y_l;{[`2uNp9SMNH8zNGK[eb&RYqb-+bd<a,Fi<9z9rj2_#=R(5O&s');
define('LOGGED_IN_KEY',    '&U8Z{I~,xV%D>FDq+Qx{7@?ZD|_GgYby)z,l5jZDVqLC#&#+]#/6zh1-JQf6n6+X');
define('NONCE_KEY',        'pQv#Z_;q$4E: `AV.0eu-L7JA_BN-dvHV#W|;#s7>PTA<Vfs13S|-pE7RYV8+LX)');
define('AUTH_SALT',        '?;-?bWr%zTbx7lphp&]=IQ-P8D?ItOzs?4rGtaNI,kypb4xj$&X|ueIDA}5v?sj|');
define('SECURE_AUTH_SALT', 'mn<t0DVAfMX*SpqKC7NE}xFNZ|4c_N{s7|s-iKR4Jvc#GPc.9H:aW9%k2r?nAe;Z');
define('LOGGED_IN_SALT',   'ni D0H;5wrM3NQLWe<R-Y$j-_{)4{v*abQ(kAbhNrmi&+EXFMW-Gv7SQb6ya[)!s');
define('NONCE_SALT',       '=BMV@@hmv:~G/<+_8fPvQ(m%oR.A)%ZPtp``sZWK! !G6C%UYPrKU{xQJD.<bd45');
/**#@-*/

Pulsa«Ctrl+x» y escribe «y» para guardar y salir.

Habilitar httpd mod_ssl en Rocky Linux

En este tutorial, instalarás WordPress y lo protegerás con SSL de Letsencrypt. Así que necesitas habilitar el mod_ssl para el servidor httpd en el Rocky Linux.

1. Instala el paquete«mod_ssl» utilizando el siguiente comando dnf.

sudo dnf install mod_ssl mod_http2

2. Después, genera el SSL por defecto para localhost utilizando el comando openssl que aparece a continuación.

openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

Puedes pulsar enter para todas las preguntas porque este certificado sólo se utilizará para localhost, no para el nombre de dominio de WordPress.

Generar SSL para localhost

3. Ahora ejecuta el siguiente comando para asegurarte de que el mod_ssl está disponible en el servidor web httpd.

apachectl -M | grep ssl

Si obtienes una salida como«ssl«, entonces el mod_ssl está habilitado. De lo contrario, obtendrás una salida en blanco.

Activar mod_ssl httpd Rocky Linux

Generar SSL Letsencrypt en Rocky Linux

En esta fase, instalarás la herramienta cerbot y generarás los certificados SSL para la instalación de WordPress. Generarás SSL Letsencrypts con el plugin webroot.

1. Ejecuta el siguiente comando para instalar la herramienta certbot para generar SSL Letsencrypt.

sudo dnf install certbot

Espera a que finalice el proceso de instalación.

2. Una vez finalizada la instalación, crea un nuevo directorio para la autorización de letsencrypt utilizando los siguientes comandos.

sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt

3. A continuación, cambia el directorio de trabajo al «/etc/httpd/conf.d/» y crea una nueva configuración «well-known.conf» utilizando el editor nano.

cd /etc/httpd/conf.d/
nano well-known.conf

Añade las siguientes configuraciones.

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

Pulsa«Ctrl+x» y escribe«y» para guardar y salir.

4. Ahora ejecuta los siguientes comandos para verificar la configuración httpd y reinicia el servicio httpd.

apachectl configtest
sudo systemctl restart httpd

Si no tienes ningún error, estás listo para generar SSL Letsencrypt con el plugin webroot.

Configurar el plugin webroot de certbot

5. Antes de generar SSL Letsencrypt, asegúrate de que tu nombre de dominio está resuelto en la dirección IP del servidor. Después, puedes generar SSL Letsencrypt con el plugin webroot ejecutando el comando certbot que aparece a continuación. Además, cambia la dirección de correo electrónico y el nombre de dominio por los tuyos.

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d domain.com -d www.domain.com

Cuando finalice el proceso, tus certificados SSL estarán disponibles en el directorio«/etc/letsencrypt/live/domain.com/«.

Configurar un host virtual para WordPress

En este paso, añadirás una nueva configuración de host virtual apache/httpd para WordPress.

1. Cambia el directorio de trabajo a«/etc/httpd/conf.d» y crea una nueva configuración«wordpress.conf» utilizando el editor nano.

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

2. Cambia el nombre de dominio detallado y el directorio de la ruta SSL por los tuyos y pega la configuración en el archivo «wordpress.conf».

# httpd port 80
<VirtualHost *:80>
  ServerName domain.com
  ServerAlias www.domain.com
# automatic redirect http to https
Redirect permanent / https://domain.com/
</VirtualHost>

# httpd port 443/ssl
<VirtualHost *:443>
ServerName domain.com
ServerAlias www.domain.com

# WordPress path directory
DocumentRoot /var/www/wordpress

Protocols h2 http:/1.1

<If "%{HTTP_HOST} == 'www.domain.com'">
Redirect permanent / https://domain.com/
</If>

ErrorLog /var/log/httpd/domain.com-error.log
CustomLog /var/log/httpd/domain.com-access.log combined

SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression off

<Directory /var/www/wordpress/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>

<Directory /var/www/wordpress/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [PT,L]
</Directory>
</VirtualHost>

Pulsa«Ctrl+x» y escribe«Y» para guardar la configuración y salir.

3. A continuación, ejecuta el siguiente comando para verificar la configuración de httpd.

sudo apachectl configtest

Si no obtienes ningún error, reinicia el servicio httpd utilizando el siguiente comando.

sudo systemctl restart httpd

Ahora ya estás listo para la instalación de WordPress a través del navegador web.

Configurar el host virtual Apache

Instalación de WordPress

Si toda la configuración relacionada con el servidor está completa, puedes acceder a tu instalación de WordPress con el navegador web.

1. Abre tu navegador web y escribe la dirección URL de tu instalación de WordPress.

http://domain.com

Ahora serás redirigido a la conexión segura HTTPS y obtendrás la página que se muestra a continuación.

Elegir idioma Instalación de WordPress

Selecciona el idioma de tu instalación de WordPress, el predeterminado es«Inglés (estados unidos)«, y luego haz clic en«Continuar«.

2. Ahora escribe el«Título de tu sitio» y escribe un nuevo nombre de usuario, correo electrónico y contraseña para tu instalación de WordPress.

A continuación, haz clic en el botón«Instalar WordPress» para iniciar la instalación.

Instalar WordPress

3. Una vez completada la instalación, aparecerá la siguiente página.

Instalación correcta de WordPress

Haz clic en el botón «Iniciar sesión» para continuar.

4. Ahora serás redirigido a la página de inicio de sesión de WordPress.

Página de inicio de sesión de WordPress

Escribe tu nombre de usuario y contraseña, y haz clic en «Iniciarsesión«.

5. Aparecerá la página de índice predeterminada de WordPress.

Índice por defecto de WordPress

6. Mueve el cursor al menú«Mi Blog» y haz clic en«Panel» o«Temas«, y obtendrás el panel de administración de WordPress como se muestra a continuación.

Panel de administración de WordPress

7. 7. Para instalar el plugin de WordPress, mueve el cursor al menú «Plugin» y haz clic en«Añadir nuevo«, entonces serás redirigido a la página de plugins.

Prueba de instalación de plugins de WordPress

Elige el plugin que quieras instalar y haz clic en«Instalar ahora«, después puedes hacer clic en el botón«Activar» para activar el plugin.

Conclusión

Enhorabuena! has instalado con éxito el CMS WordPress con LAMP Stack en el servidor Rocky Linux. A continuación se muestra todo lo que has aprendido en este tutorial:

  • Instalación de LAMP Stack
  • Asegurar la implementación de MariaDB
  • Crear una base de datos mysql y un usuario desde el shell mysql/mariadb
  • Configurar el servidor web apache/httpd para el plugin webroot certbot
  • Generar SSL Letsencrypt
  • Y la última es una instalación de WordPress

Para el siguiente paso, puedes elegir o comprar temas e instalarlos en tu WordPress.

También te podría gustar...