En esta entrada veremos cómo instalar WordPress en CentOS 7 paso a paso. Con la popularidad que ha alcanzado este CMS, crear una web con WordPress es uno de los usos mayoritarios de los servidores web o VPS CentOS, gracias a la inmensa y creciente cantidad de temas y plugins de que dispone. Sin más preámbulos, vamos ya a instalar WordPress en Linux CentOS.
Dispones de adaptaciones de este tutorial para otras versiones de CentOS y otros sistemas operativos que puedes encontrar con nuestro buscador.
Contenido
Antes de instalar WordPress en CentOS 7
Antes de poder empezar a crear una página web con WordPress en nuestro servidor CentOS 7 necesitamos instalarlo. Pero para hacer funcionar WordPress nuestro sistema CentOS debe cumplir una serie de requisitos.
Requisitos de WordPress en CentOS 7
Para el ejemplo que seguiremos en este tutorial necesitamos cumplir una serie de requisitos, como son:
- Tener un usuario con privilegios de administración, a través del comando sudo.
- Un sistema CentOS 7 configurado como servidor LAMP, es decir, servidor web con PHP y servidor de bases de datos MySQL o Mariadb.
- WordPress necesita una base de datos y un usuario con permisos sobre esa base de datos. Por tanto necesitarás poder acceder a MariaDB para crear ambos. Si no tienes permisos para administrar MariaDB tendrás que pedirle al administrador que te proporcione una base y un usuario con su contraseña.
También necesitaremos algunas herramientas del sistema que podemos obtener de los repositorios de CentOS 7, cuya información actualizaremos:
~$ sudo yum update
E instalaremos los paquetes necesarios:
~$ sudo yum install -y policycoreutils-python wget
Cómo descargar WordPress para CentOS 7
Podemos descargar WordPress para CentOS 7 desde el sitio oficial, para lo que accederemos a la sección de descargas de WordPress en español y veremos el botón de descargas, pero lo que haremos será copiar el enlace del paquete .tar.gz que hay justo debajo:
El enlace que hemos copiado lo pegaremos como argumento del comando wget en una consola para descargar el paquete de WordPress directamente desde la web oficial de descargas:
~$ wget https://es.wordpress.org/latest-es_ES.tar.gz
Cómo instalar WordPress en CentOS 7
Ya tenemos descargado el paquete de la última versión disponible de WordPress. Ahora vamos a descomprimirlo en su ubicación definitiva, en este ejemplo en /var/www/html/:
~$ sudo tar xf latest-es_ES.tar.gz -C /var/www/html/
Ahora tendremos una instalación de WordPress en /var/www/html/wordpress/ accesible vía web usando como URL la dirección IP o dominio del servidor CentOS 7 y el sufijo /wordpres. En este ejemplo http://centos7.local.lan/wordpress sería la URL que utilizaríamos.
Pero aún debemos hacer alguna cosa más antes de entrar en la configuración del nuevo sitio.
Cómo crear una base de datos y un usuario para WordPress
WordPress necesita una base de datos para almacenar todos los datos del sitio. Por tanto, durante la instalación el script instalador nos pedirá con qué base de datos va a trabajar y cuál es el usuario autorizado con permisos sobre esa base de datos.
En esta sección vamos a crear una nueva base de datos sobre MariaDB/MySQL y un usuario para manejarla.
Iniciaremos el cliente de consola mysql con un usuario con suficientes privilegios dentro del sistema de bases de datos (en este ejemplo usaré root):
~$ mysql -u root -p
Creamos la base de datos con el juego de caracteres óptimo para trabajar con textos en español:
> create database wordpress charset utf8mb4 collate utf8mb4_unicode_ci;
Para MariaDB y MySQL 5.x creamos así el usuario que manejará la base:
> create user wordpress@localhost identified by 'XXXXXXXX';
Si usas MySQL 8 entonces hay que asegurarse de que el usuario tenga el plugin de autenticación adecuado, por lo que usaremos esta otra sentencia:
> create user wordpress@localhost identified with mysql_native_password by 'XXXXXXXX';
Otorgamos los permisos necesarios al usuario sobre la base de datos:
> grant all privileges on wordpress.* to wordpress@localhost;
Sólo queda salir del cliente mysql:
> exit
Estos datos los anotaremos para usarlos durante la instalación vía web de WordPress.
Extensiones de PHP necesarias para WordPress
WordPress necesita algunas extensiones de PHP presentes en CentOS 7, como pueden ser bcmath, gd, imagick, mbstring, mcrypt, xml y zip.
Nos aseguraremos de que estén instaladas:
~$ sudo yum install -y php-bcmath php-gd php-intl php-mbstring php-pecl-imagick-im6 php-pecl-mcrypt php-pecl-zip php-xml
Habrá que recargar la configuración del servicio web para que carguen las nuevas extensiones:
~$ sudo systemctl reload httpd
Cómo configurar el servidor web
WordPress utiliza reescritura de URLs, por lo que el módulo Rewrite, si se trata de Apache, debería estar cargado en el servidor web, que es la configuración por defecto en CentOS 7.
La configuración del módulo Rewrite se carga a través de un archivo .htaccess en el directorio de WordPress. El problema está en que la configuración por defecto de Apache ignora los archivos .htaccess, así que crearemos una configuración adicional de Apache en un archivo independiente:
~$ sudo nano /etc/httpd/conf.d/wordpress.conf
Añadiremos un bloque Directory para la ruta de instalación de WordPress, en este ejemplo en /var/www/html/wordpress/:
<Directory /var/www/html/wordpress/> AllowOverride All </Directory>
El valor All de AllowOverride permitirá el uso del archivo .htaccess en este directorio concreto y sus subdirectorios.
Si estás instalando WordPress usando su propio servidor virtual, habrá que hacer una configuración similar en el archivo correspondiente.
En cualquier caso, es necesario recargar la configuración del servidor web para aplicar los cambios:
~$ sudo systemctl reload httpd
Cómo configurar los permisos de escritura para WordPress
Durante la ejecución del script de instalación, WordPress necesitará crear y modificar archivos dentro del directorio de instalación, pero al hacerlo a través del servidor web este no tiene permisos de escritura.
Lo que haremos será cambiar el usuario y el grupo al que pertenece el directorio de instalación de WordPress y todo su contenido. Ahora el usuario y el grupo serán aquellos con los que se ejecuta el servicio web que, en el caso de Apache para CentOS 7, suele ser apache:
~$ sudo chown -R apache:apache /var/www/html/wordpress/
Adicionalmente, al instalar WordPress en CentOS 7 nos encontramos que este sistema incorpora seguridad extendida SELinux. Esto implica que debemos cambiar el contexto del directorio de WordPress como escribible por el servidor web (por defecto todo lo que cuelga de /var/www/ se considera contenido de sólo lectura).
Definimos el nuevo contexto:
~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/wordpress(/.*)?"
Ya podemos aplicar estos cambios:
~$ sudo restorecon -R /var/www/html/wordpress/
Estamos listos para ejecutar el instalador web de WordPress.
Cómo instalar WordPress con el instalador web
Para iniciar la instalación de WordPress en CentOS 7, accedemos desde un navegador con la URL adecuada (http://centos7.local.lan/wordpress en este ejemplo):
Continuamos pinchando en el botón «¡Vamos a ello!» y llegamos a la pantalla donde se nos solicitan los datos de conexión a la base de datos que creamos anteriormente para el nuevo sitio WordPress:
Introduciremos el nombre de la base, el usuario que la manejará y la contraseña de este usuario. El servidor de la base de datos es localhost porque es la misma máquina que el servidor web, que es la configuración normal. Si el servidor de bases de datos estuviera en otra máquina habría que introducir su dirección IP o nombre de máquina.
El prefijo de tabla se deja tal cual, a no ser que estemos usando una misma base de datos para varios sitios web; en ese caso, para cada sitio WordPress se debería usar un prefijo de tabla distinto. Como en este ejemplo la base de datos es exclusiva para el sitio, no hace falta modificar el prefijo.
Una vez que hayamos cumplimentado todos los datos requeridos, pinchamos en «Enviar» para continuar. El instalador comprobará el acceso a la base de datos y construirá toda la estructura de tablas necesarias. Hecho esto nos informa de que todo ha ido bien y que podemos seguir con la instalación:
Pinchamos en «Ejecutar la instalación» y continúa el proceso. En el siguiente paso de la instalación se nos pide información básica para el sitio WordPress, como:
- El nombre del sitio
- El nombre del usuario con el que accederemos a WordPress
- La clave de acceso para este usuario
- El correo electrónico del usuario o administrador
- Si deseamos que el sitio sea indexable por los robots de los buscadores dejaremos la casilla desmarcada. En caso contrario (por estar el sitio «en obras»), la marcamos.
Una vez cumplimentados todos estos datos con los valores convenientes, pinchamos en «Instalar WordPress» para terminar la instalación.
La siguiente pantalla nos informa de la finalización de la instalación de WordPress, además del nombre de usuario con el que debemos acceder. Precisamente podremos acceder a WordPress pinchando en «Acceder» y nos llevará a la pantalla de acceso:
En la pantalla de acceso indicaremos el nombre de usuario y la contraseña que indicamos anteriormente. Si queremos guardar la sesión, para no tener que introducir las credenciales la próxima vez que queramos acceder, marcamos la casilla. Para iniciar la sesión, pinchamos en «Acceder«, y nos llevará al escritorio de nuestro sitio WordPress.
¡Enhorabuena, ya sabes instalar WordPress en CentOS 7!
Conclusión
Hemos visto cómo instalar WordPress en CentOS 7, de manera sistemática y sencilla. Ahora crear una página web con WordPress ya sólo depende de tu creatividad.
Podrás montar tantos sitios WordPress como quieras simplemente descomprimiendo el mismo paquete que descargaste una y otra vez. Basta con repetir los pasos de la instalación, crear los servidores virtuales o carpetas web, las bases de datos y ejecutar los scripts de instalación.
Si echas en falta algún paso o dato, has detectado algún error o tienes alguna duda o sugerencia, déjame un comentario.
¡Apoya comoinstalar.me!
Si te ha gustado esta guía para instalar WordPress en CentOS 7 y te gustaría contribuir para mantener este sitio on-line y disfrutar de más tutoriales… ¡cualquier mínima contribución es bienvenida! Puedes contribuir dejando 1 $ de propina en PayPal:
O, si te sientes especialmente agradecido, invitándome a un café:
¡Gracias!
Actualizado a la versión 6.0.
Actualizado a la versión 5.9.1.
Actualizado a la versión 5.8.2.
Tengo una duda y es que no sé cómo cambiar para que quede con el dominio en vez de la IP del servidor.
Lo ideal es usar para la instalación la dirección que se utilizará para el acceso habitual. Entiendo que has instalado con la dirección IP y ahora quieres usar el dominio. Lo más fácil sería borrar el directorio web y la base de datos y volver a realizar la instalación usando el dominio. Otra opción más avanzada es conectar a la base de datos de WordPress y modificar en la tabla wp_options los valores de las claves siteurl y home, sustituyendo dirección IP por dominio.
Todo muy bien, solo que no debiste crear la carpeta wordpress, no queremos estar poniendo esa ruta de más sino la URL propia e ingresar de frente.
Es un poco discutible eso de qué debí o no debí hacer. En cualquier caso, no todo el mundo dispone de un servidor CentOS 7 exclusivo para WordPress, dominios para configurar servidores virtuales, etc. La mayoría de la gente que visita estos tutoriales simplemente está aprendiendo a realizar la instalación, utiliza más aplicaciones web en su máquina, etc. Cualquiera que disponga de un servidor exclusivo con dominio, etc. sabe cómo realizar los ajustes para lo que comentas, y si no fuera así, en este mismo sitio tenemos guías de cómo configurar el servicio web para ello sobre CentOS 7.
Muy buen tutorial, estimado. Para que sea multisitio, he buscado tutoriales pero nada que funcione como se debe, ¿sabes de alguno?, saludos y gracias por compartir la info.
Por suerte encontré este tutorial, al que me estoy adecuando, voy a seguir este paso para que todo salga bien.
El tema es siguiente: ¿Cómo hago para migrar una página existente a este nuevo servidor? Si me pueden explicar algunos pasos.
Desde ya muchas gracias….
Hola, Óscar. Cuando tengas WordPress correctamente instalado en CentOS 7, instala algún plugin de migración en el sitio viejo y en el nuevo, y sigue las instrucciones. Hay varios plugins para hacer esto, son sencillos de usar.
Increíble, nunca había seguido un tutorial que funcionara paso por paso.
Mayormente suelen funcionar, por eso los publicamos 😉
Hola, tienen un tutoria para cambiar la ruta, funciono perfecto pero mi pagina queda como http://www.dominio.com/wordpress y no http://www.dominio.com ya que toda la instalación queda en /wordpress como arreglo esto 🙁
me han dicho que agregue estas rutas pero no funciona
define(‘WP_HOME’,’https://www.mipagina.com’);
define(‘WP_SITEURL’,’https://www.mipagina.com’);
Edita la configuración del servidor web, en /etc/httpd/conf/httpd.conf, para que DocumentRoot apunte a /var/www/html/wordpress/ en lugar de a /var/www/html/
¡Hola! Al realizar el cambio, mi sitio carga sin CSS… ¿Debo otorgar privilegios especiales a la carpeta?
¡Hola, Jonathan! WordPress guarda en la tabla wp_options de su base de datos un par de filas con el nombre siteurl y home, cuyos valores son las URLs de acceso a la aplicación. Por ejemplo, para la instalación en este tutorial ambas tendrían el valor http://centos7.local.lan/wordpress. Si realizamos un cambio de configuración que resulte en el cambio de URL de acceso, habrá que reflejar este cambio en ambas filas de la tabla. Hecho el cambio, el sitio volverá a funcionar con normalidad.
Buenos dias!
Dar las gracias por este magnifico tutorial y tan completo.!!
Me ha funcionado todo de maravilla…!!!
Simplemente comentar que el PHP es el 5 y no el 7.
Si pudieras hacer otro tuto para ver como se actualiza a PHP 7 estaria genial.
Aun asi, gracias por el tiempo dedicado. Me ha servido de gran ayuda.!!!
Un saludo
¡Hola! Debido a que estaba trabajando sobre la versión de 32 bits de CentOS 7 no pude hacerlo antes, pero ya están actualizadas las guías de instalación tanto de PHP como la de la pila LAMP para usar la versión 7.3 de CentOS.