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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
3. Una vez completada la instalación, aparecerá la siguiente página.
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.
Escribe tu nombre de usuario y contraseña, y haz clic en «Iniciarsesión«.
5. Aparecerá la página de índice predeterminada 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.
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.
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.