Wordpress

De La Wiki de KiVi

¿Qué es WordPress?

WordPress es un simple sistema de «bloggin» gratuito y de código abierto que solo precisa de un servidor web, una base de datos y el lenguaje PHP para trabajar.

En la entrada anterior ya expliqué cómo crear nuestro servidor LAMP en nuestro servidor Fedora, ahora solo falta alojar páginas, en el caso de WordPress es muy sencillo, ya que se puede instalar directamente de los repositorios oficiales, aunque se puede descargar perfectamente de su página oficial e instalarlo, de hecho, el procedimiento mediante los repositorios es muy parecido, puesto que descargamos la base web e igualmente la tenemos que asociar a una base de datos y poner en marcha el «alias» en el servidor web.

Lo primero que haremos es descargar el paquete:

sudo dnf install wordpress

Esto instala toda la página web principal en:

/usr/share/wordpress

El fichero de configuración en:

/etc/wordpress/wp-config.php

Y genera un fichero de configuración en el servidor web:

/etc/httpd/conf.d/wordpress.conf

Aun así, la página no está activa, ya que, por defecto, aun reiniciando el servicio, la página tiene ciertas restricciones así que empecemos la configuración paso a paso.

Configurando el servidor web

Como ya se explicó en la anterior entrada, el servidor web se centra en los ficheros de configuración encontrados en /etc/httpd/conf.d/, en el caso de wordpress ya se genera uno automáticamente, si lo abrimos encontramos que ya ha generado un Alias, es decir, un nombre que se asigna a una ruta, en este caso:

Alias /wordpress /usr/share/wordpress

Con lo que si accedemos a: http://servidor/wordpress, ya sabemos qué directorio va a cargar. Seguidamente, explica los directorios y sus configuraciones entre <Directori> y </Directory>, aquí explica cada uno de los directorios, cuáles son sus configuraciones, en nuestro caso nos interesa la configuración correspondiente a :

<Directory /usr/share/wordpress>

En el mismo fichero ya comenta que solo esta permitido el acceso via local por lo que no podremos acceder desde otro equpo para configurarlo, para ello hay que modificar la linia: Require local y cambiarla a Require all granted, el resto de configuración queda igual, por ejemplo:

Cerramos el fichero guardando y aplicamos los cambios con:

sudo systemctl restart httpd

Creando la base de datos y acabando la configuración

Ahora toca crear la base de datos, por seguridad, hay que crear un usuario para esta base de datos y asignarlo, para ello, primero nos conectamos al servicio Mariadb con:

mysql -u root -p

Y crearemos primero el usuario:

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'F3d0r4-01';

Acto seguido creemos la base de datos:

CREATE DATABASE IF NOT EXISTS wordpress;

Le asignamos todos los privilegios de la nueva base de datos y sus tablas al nuevo usuario:

GRANT ALL PRIVILEGES ON wordpress.* TO 'admin'@'localhost' IDENTIFIED BY 'F3d0r4-01';

Y por último aplicamos los privilegios y salimos:

FLUSH PRIVILEGES;
quit

Una vez hecho esto configuramos editando el fichero antes nombrado:

sudo nano /usr/share/wordpress/wp-config.php

Recordemos que solo es un enlace simbólico. Y hay que cambiar las variables definidas y dejarlas como en la imagen:

Como podemos ver, definimos la base de datos creada como ‘wordpress‘, el usuario ‘admin‘, su contraseña, el lugar donde se aloja (al ser el mismo servidor, es ‘localhost‘) y la codificación que por defecto es ‘utf8‘.

El siguiente paso es acceder al lugar mediante el navegador, por ejemplo:

http://192.168.1.241/wordpress

Y acabar de crear el sitio asignando un título, un usuario administrador, su contraseña y correo electrónico que se hará servir de contacto.

Y lo siguiente es ver en acción la página web:

Ahora para modificarla solo hay que acceder al directorio «wp-admin»

E identificarnos con nuestro usuario y saltar al panel de configuración de worpress, con el tiempo explicaré en una serie de videos cómo crear tu blog y tu página.

Por ahora os dejo con un video explicativo y un enlace de interés.

Instalación manual

IMPORTANTE – antes de hacer la instalación, para evitar conflictos, si ya hicimos la instalación por repositorio, tenemos que desinstalarla.

sudo dnf remove wordpress

También hace falta recordar que esto no elimina la base de datos, solo el directorio de instalación. Por seguridad, el mismo sistema guarda los ficheros de configuración cambiando la extensión y, al no borrar la base de datos, conservaremos los usuarios, contraseñas, grupos….

Ahora procedemos a la descarga y la extracción del fichero:

cd /var/www
sudo wget https://wordpress.org/latest.zip
sudo unzip latest.zip
rm -rf latest.zip

Si tenemos activado el SELinux ( ya lo explicaré), debemos darle contexto al directorio y sus archivos ( como root ):

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/wordpress/data(/.)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/wordpress/config(/.)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/wordpress/apps(/.)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/wordpress/data(/.)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/wordpress/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/wordpress/.user.ini'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/wordpress/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?'
restorecon -Rv '/var/www/wordpress/'

Y, por seguridad, damos los permisos al directorio:

sudo chown -R apache:apache /var/www/wordpress
sudo chmod -R 770 /var/www/wordpress

Seguimos con la configuración del archivo de host de Apache:

sudo nano /etc/httpd/conf.d/wp.conf
Alias /wordpress /var/www/wordpress

<Directory /var/www/wordpress>
  AllowOverride All
  Order allow,deny
  Allow from all
  Require all granted
</Directory>

Y reiniciamos el servicio con:

sudo systemctl restart httpd

Y accedemos a la página que reside nextcloud:

https://192.168.100.241/wordpress

Y procedemos con la instalación.