Instala un Wordpress en Linux - Debian con PHP8.3 Mysql 8 y Nginx
Hoy algo diferente. No soy muy fan de Wordpress pero en algunos casos tienes que hacerlo porque no hay otro remedio! Como tengo que hacer una instalación de un nuevo sitio wordpress de 0, aprovecharé para documentarla y que me queden los pasos para el futuro!
No soy un experto en este framework por lo que seguramente habrá mejores formas de instalarlo así que no me matéis! :D
Creación de un usuario en el servidor
Antes de nada, crearemos un usuario para el hosting de este sitio web. Me siento más cómodo que cada instancia tenga sus credenciales asociadas. De esta forma si accedes con el usuario, solo podrás (en principio) acceder a la información de cada sitio únicamente. Para ello usa el comando add user. Tendrás que especificar los datos del usuario y los datos de acceso
sudo adduser [tu_nombre_de_usuario]
Ahora ya tienes tu usuario creado con tu home configurado. Será del estilo /home/[tu_nombre_de_usuario]. En principio no le voy a dar permiso para sudo ya que creo que no lo va a necesitar. De esta forma queda el usuario "limitado"
Descargar el Wordpress en el directorio
Ya que tenemos el usuario preparado, vamos a descargar y preparar el wordpress en su sitio. En mi caso lo publicaré en el home del usuario ya que no lo voy a usar para otra cosa. Me lo bajaré de aquí con el comando wget y lo descomprimiré
wget https://es.wordpress.org/latest-es_ES.zip && unzip latest-es_ES.zip
rm latest-es_ES.zip
Un paso importante son los permisos de los ficheros, da igual que los apliques ahora o después pero hacer lo tienes que hacer!. Principalmente los permisos pueden ser [usuario]:www-data o directamente www-data:www-data en todo los directorios
chown www-data:www-data -R /home/[tu_nombre_de_usuario]/wordpress
Cear usuario en Mysql
El servidor que tengo es un Debian 11 con Mysql 8 por lo que vamos a crear también un usuario de base de datos que solo tenga acceso a la ddbb del worpress. También por tranquilidad y seguridad. Simplemente entra en mysql con un usuario con privilegios y crea la base de datos y el usuario. Algo del estilo:
CREATE USER 'tu_usuario'@'localhost' IDENTIFIED BY 'tu_contraseña';
CREATE DATABASE tu_base_de_datos;
GRANT ALL PRIVILEGES ON tu_base_de_datos.* TO 'tu_usuario'@'localhost';
FLUSH PRIVILEGES;
Crear fpm custom php8.3
Como también tenemos php8.3, vamos a crear nuestro fpm propio. Porque?, principalmente porque así podemos aplicar configuraciones propias solo para este entorno y no afectamos los demás sitios que tengamos en el servidor (si los tenemos claro). Muy sencillo para hacerlo. Simplemente:
# Acceder al directorio de pool de fpm
cd /etc/php/8.3/fpm/pool.d/
# Crear un nuevo fpm con la config básica
cp www.conf tu_nuevo_sitio.conf
Debes editar el fichero y cambiar el nombre del fpm y el path donde escucha según lo que tú quieras:
# Cambia [www] por [tu_nombre_del_sitio]
# Cambia listen = /run/php/php8.3-fpm.sock por tu_nombe_custom.sock
Para lanzar el nuevo fpm, reinicia el servicio
service php8.3-fpm restart
Habilita el nuevo sitio en Nginx
Este punto ya te lo he documentado aquí
Instala el Wordpress
Ahora que ya tenemos todas las partes preparadas, vamos a juntar toda la configuración. Tenemos:
- Un sitio en Nginx configurado y funcionando
- Un fpm también preparado
- Usuario y base de datos en Mysql listo
- Ficheros de wordpress en el directorio
Ahora tenemos 2 opciones para continuar:
- Especificar de forma manual la parametrización del fichero wp-config.php
- Acceder vía web y realizar la configuración paso a paso
Estoy algo vago hoy por lo que lo vamos hacer mediante la interfaz web. Es más lento pero no tengo que andar escribiendo el fichero a mano... Simplemente accedemos a la web y comenzamos el proceso:
Configuración de base de datos
- Esperar a que realiza parte de la instalación
Configuración general del sitio
- Esperar a que se complete la instalación
- Listo!! Ya tenemos nuestro wordpress instalado y funcionando