Vamos a ver en este artículo cómo instalar WordPress en CentOS 8 / CentOS Stream 8 paso a paso, uno de los mejores sistemas CMS que puedes instalar en tu servidor o VPS CentOS para publicar contenido y crear comunidad.
Contenido
Antes de instalar WordPress en CentOS 8
Si quieres completar esta guía de instalación de WordPress en CentOS 8 / CentOS Stream 8 deberías partir de estos mínimos requerimientos:
- Una máquina CentOS 8 / CentOS Stream 8 actualizada.
- Un entorno tipo LAMP, es decir, servicio web con PHP (versión recomendada 7.4 ó superior) y bases de datos.
- Acceso a consola con un usuario con capacidades de sudo o el propio root.
- Conexión a Internet.
Si no tienes aún preparado el entorno necesario, puedes consultar nuestra guía de instalación LAMP en CentOS 8.
También necesitaremos algunas herramientas del sistema disponibles en los repositorios de CentOS 8:
~$ sudo yum install -y policycoreutils-python-utils tar wget
Cómo descargar WordPress en CentOS 8
Tenemos que descargar WordPress para CentOS 8 desde la página oficial, ya que la instalación manual es el método más aconsejable, teniendo en cuenta la frecuencia de actualizaciones de este CMS.
Siguiendo el enlace «Consigue WordPress» llegaremos a los enlaces de descarga, tanto en formato .zip como en formato .tar.gz:
Puedes descargar directamente desde el navegador, pero en este caso copiaré el enlace al paquete .tar.gz para descargarlo desde consola mediante el comando wget:
~$ wget https://es.wordpress.org/latest-es_ES.tar.gz
Cómo instalar WordPress en CentOS 8
Para instalar WordPress en CentOS 8 tendremos que realizar una serie de tareas previas que pasamos a describir a continuación.
Preparación de la base de datos
WordPress necesita una base de datos propia del servicio que tengamos instalado en CentOS 8, ya sea MySQL o MariaDB, así que debemos crear tanto la base como el usuario que la manejará. Podemos hacer esta tarea con el cliente mysql:
~$ mysql -u root -p
En primer lugar crearemos la base de datos:
> create database wordpress charset utf8mb4 collate utf8mb4_unicode_ci;
Y a continuación creamos el usuario que manejará la base de datos. Si usas MySQL 8 con el plugin de autenticación caching_sha2_password por defecto, usa esta sentencia:
> create user wordpress@localhost identified with mysql_native_password by 'XXXXXXXX';
Es importante tener en cuenta este detalle porque WordPress no es capaz de usar el plugin caching_sha2_password, y hay que crear el nuevo usuario con el plugin estándar mysql_native_password.
Si tu sistema de bases de datos no tiene ese plugin por defecto (MariaDB, MySQL 5.x, etc.), puedes usar esta sentencia más sencilla:
> create user wordpress@localhost identified by 'XXXXXXXX';
En cualquier caso, hay que dar los permisos necesarios a este usuario sobre la nueva base de datos:
> grant all privileges on wordpress.* to wordpress@localhost;
Sólo queda salir del cliente:
> exit
Preparación de PHP
WordPress necesita una serie de extensiones de PHP instaladas en CentOS 8, como pueden ser bcmath, gd, imagick, json, mbstring, xml y zip. Nos aseguraremos de instalar estas extensiones con yum.
Para cualquier versión de PHP, instala estos paquetes:
~$ sudo yum install -y php-bcmath php-gd php-intl php-json php-mbstring php-pecl-zip php-xml
Si además usas PHP 7.4, 8.0 u 8.1 procedente del repositorio Remi, es recomendable instalar también la extensión imagick:
~$ sudo yum install -y php-pecl-imagick-im6
Preparación del directorio de WordPress
Vamos a descomprimir el paquete que acabamos de descargar en la ubicación definitiva de WordPress, dentro de la página por defecto de CentOS 8, ya que los archivos se encuentran organizados en una carpeta llamada wordpress/:
~$ sudo tar xf latest-es_ES.tar.gz -C /var/www/html/
WordPress necesita escribir en su propio directorio de instalación, así que cambiaremos el propietario de este directorio por el usuario con que corre el servidor web, que en el caso de CentOS 8 para Apache es apache:
~$ sudo chown -R apache: /var/www/html/wordpress/
Configuración de SELinux
Si tienes SELinux activado no bastará con dar permisos de escritura al servidor web sobre el directorio de WordPress. Además habrá que definir un contexto de lectura y escritura para el servidor web sobre este directorio y su contenido:
~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/wordpress(/.*)?"
Y aplicaremos el nuevo contexto:
~$ sudo restorecon -R /var/www/html/wordpress/
Por otro lado, WordPress realiza conexiones a través de Internet para distintas funcionalidades, pero SELinux por defecto impide estas conexiones desde las aplicaciones web. Debemos permitir explícitamente estas conexiones:
~$ sudo setsebool -P httpd_can_network_connect on
Preparación del servidor web
A pesar de que en CentOS 8 por defecto el servicio web Apache tiene activado el módulo Rewrite, el uso de archivos .htaccess está bloqueado. Como WordPress utiliza el módulo Rewrite configurándolo mediante un archivo .htaccess en su directorio de instalación, es necesario permitir el uso de estos archivos.
En este ejemplo hemos instalado WordPress como parte de la página web por defecto de CentOS 8, así que podemos crear el siguiente archivo de configuración para WordPress que permitirá el uso de archivos .htaccess en su directorio de instalación y subdirectorios:
~$ sudo nano /etc/httpd/conf.d/wordpress.conf
Añade este bloque Directory, personalizado para este tutorial:
<Directory /var/www/html/wordpress/> AllowOverride All </Directory>
Guarda los cambios y recarga la configuración del servicio web:
~$ sudo systemctl reload httpd
En el caso de usar un servidor virtual exclusivo para WordPress tendrás que realizar una configuración similar en su propio archivo de configuración.
Instalador web de WordPress en CentOS 8
Por fin podemos instalar WordPress en CentOS 8 mediante su instalador web. Para ello en el navegador introduciremos la URL que corresponda, que en este tutorial consiste en añadir el sufijo /wordpress/ a la dirección IP o dominio del servidor CentOS 8.
Por ejemplo, la máquina CentOS Stream 8 que hemos utilizado como ejemplo es accesible en el subdominio centos8.local.lan, así que usaremos http://centos8.local.lan/wordpress como URL:
Pulsaremos el botón «¡Vamos a ello!» de la página de presentación, que nos llevará a la de datos de conexión al servicio de bases de datos:
Introduciremos el nombre de la base de datos, el usuario y la contraseña que creamos anteriormente. El servidor de bases de datos como reside en la misma máquina no se debe modificar. Y el prefijo, a no ser que estés compartiendo la misma base de datos con otras instalaciones de WordPress, tampoco hace falta modificarlo.
Se comprobará la conexión a la base de datos y se guardará la configuración, tras lo que un mensaje nos avisará del éxito de la operación:
Seguiremos el botón «Ejecutar la instalación» y tendremos que suministrar la información relativa al nuevo sitio WordPress y a su administrador:
Cumplimentamos el formulario, teniendo cuidado de no olvidar la clave, de acceso, y pulsamos el botón «Instalar WordPress«:
El proceso apenas lleva unos instantes. Se nos recuerda cuál es el usuario con el que podemos acceder a WordPress (pero no la clave), así que pulsaremos el botón «Acceder«:
Facilitamos los datos de inicio de sesión e inmediatamente apareceremos en nuestro escritorio de WordPress:
Actualización de WordPress sin FTP en CentOS 8
Prácticamente desde el primer momento estaremos realizando actualizaciones de WordPress, añadiendo temas, plugins, etc.
Con la configuración que hemos aplicado en esta guía WordPress será capaa de realizar directamente todas estas tareas sin necesidad de disponer de servicio FTP.
Conclusión
Como has podido comprobar, instalar y configurar WordPress en CentOS 8 / CentOS Stream 8 es un proceso sencillo, aunque algo laborioso, pero el resultado merece la pena para poder distribuir contenido de calidad desde nuestro servidor o VPS CentOS.
¿Tienes alguna duda, pregunta? ¿Quieres notificar un error o realizar una sugerencia de mejora del tutorial? Pues para todo esto, nada mejor que un comentario.
¡Apoya comoinstalar.me!
Si te ha sido verdaderamente útil nuestra guía de instalación y configuración de WordPress en CentOS 8 / CentOS Stream 8, tal vez te apetezca agradecérnoslo contribuyendo al mantenimiento del sitio y la creación de nuevas guías y tutoriales de WordPress y CentOS 8, cosa que puedes hacer dejando 1 $ de propina en PayPal:
O, si te sientes especialmente generoso, invitándonos a un café:
¡Gracias!
Actualizado a la versión 6.0.
Actualizado a la versión 5.9.1.
¡Saludos!
Al instalar WordPress, en «Salud del sitio» el tutorial funciona perfectamente con la versión de PHP 7.4, pero al seguir exactamente los mismos pasos con la versión 8 únicamente sustituyendo la línea «yum module enable -y php:remi-8.0«, al instalar WordPress me sale las siguientes recomendaciones:
– La API REST ha encontrado un error inesperado.
– Un evento programado a fallado.
– Tu sitio no ha podido realizar una solicitud de loopback.
La llamada a la API REST ha dado el siguiente resultado inesperado: (300)
The document name you requested (/index.php) could not be found on this server. However, we found documents with names similar to the one you requested.
Available documents:
/index.html?rest_route=%2Fwp%2Fv2%2Ftypes%2Fpost&context=edit (common basename)
Si has actualizado a la versión 8 sobre la 7.4 puede que algo no haya quedado del todo bien. Desde luego en una instalación limpia sobre la 8.0 funciona perfecto. Prueba de nuevo deshabilitando antes SELinux y si no tiene nada que ver, echa un vistazo al registro del servicio web y al registro del servicio PHP-FPM.
¿Cómo publicas la página de WordPress?, ¿Se debería de hacer un index dentro de /var/www/html? WordPress crea una carpeta, ¿me puedes ayudar? He seguido todos los pasos y todo está instalado, pero si pongo el IP del webserver todavía sale la página del Apache.
PD: Ahí te va mi donación.
¡Hola, Ignacio! A la instalación de este ejemplo se accede añadiendo la ruta /wordpress a la dirección IP o nombre DNS del servidor CentOS 8.
Si quieres acceder sin añadir dicha ruta tendrías que modificar la configuración del servicio web, editando el archivo httpd.conf:
~$ sudo nano /etc/httpd/conf/httpd.conf
Cambia la directiva DocumentRoot para que quede así:
#DocumentRoot «/var/www/html»
DocumentRoot «/var/www/html/wordpress»
Recarga la configuración del servicio web:
~$ sudo systemctl reload httpd
Ahora tendrás que conectar a la base de datos MariaDB/MySQL con tu usuario administrador y consultar algunos valores de la tabla wp_options de la base de datos de WordPress:
> select * from wordpress.wp_options where option_name=’siteurl’;
+———–+————-+————————————+———-+
| option_id | option_name | option_value | autoload |
+———–+————-+————————————+———-+
| 1 | siteurl | http://centos8.local.lan/wordpress | yes |
+———–+————-+————————————+———-+
Tenemos que actualizar option_value para eliminar la ruta /wordpress:
> update wordpress.wp_options set option_value=’http://centos8.local.lan’ where option_name=’siteurl’;
Si lanzamos de nuevo la consulta anterior veremos que el valor ha cambiado:
> select * from wordpress.wp_options where option_name=’siteurl’;
+———–+————-+————————–+———-+
| option_id | option_name | option_value | autoload |
+———–+————-+————————–+———-+
| 1 | siteurl | http://centos8.local.lan | yes |
+———–+————-+————————–+———-+
Hay que hacer lo mismo con el registro para el valor home de la columna option_name, que podemos modificar directamente:
> update wordpress.wp_options set option_value=’http://centos8.local.lan’ where option_name=’home’;
Y ya podrías cerrar el cliente de MariaDB/MySQL.
Ya puedes acceder a WordPress como sitio principal de tu servidor CentOS 8.
¡Excelente! ¡Gracias!
Gracias a ti por el apoyo. Me alegro de que funcione.
Hola, no se cargan las imágenes del último apartado de configuración de WordPress en la página web.
Hola, Pablo. Acabo de revisarlo y carga todo perfectamente.
Quería donar, pero sólo uso Paypal.
¡Hola! El botón «Donar» de esta página funciona con Paypal. ¡Gracias!