Saltar a contenido

Instalación de WordPress

Antes de poder implementar nuestro sitio Web, tendremos que instalar XAMPP, alojarlo en el puerto 8080 e instalar en este la última versión de WordPress, lo cuál será documentado a continuación.

XAMPP

Instalación

XAMPP puede ser descargado desde su página oficial, para transportar el instalador a nuestra máquina virtual utilizaremos wget:

wget https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/8.2.12/xampp-linux-x64-8.2.12-0-installer.run

Una vez descargado, le asignaremos al archivo permisos de ejecución y lo iniciaremos con permisos de administrador, desde la interfaz de instalación seleccionaremos instalar los archivos de desarrollo y confirmaremos que XAMPP será instalado en /opt/lampp:

Instalador de XAMPP.

Instalador de XAMPP.

Una vez terminado, podremos entrar en la ruta donde se instaló el software y controlar este mismo con el binario /opt/lampp/xampp, el cuál utilizaremos para iniciar Apache y MySQL:

  • sudo /opt/lampp/xampp startapache
  • sudo /opt/lampp/xampp startmysql

Configuración

Nuestra intención es utilizar el puerto TLS de XAMPP para comunicarse entre sí con nuestro proxy inverso, con lo que tendremos que modificarlo en los archivos /opt/lampp/properties.ini y /opt/lampp/extra/httpd-ssl.conf:

cd /opt/lampp/
sudo sed -i 's/443/8080/g' ./properties.ini ./etc/extra/httpd-ssl.conf

Una vez modificados, ejecutaremos sudo ./xampp security para revisar las configuraciones de seguridad del servicio, lo cuál nos permitirá asignarle una contraseña a la cuenta root de MariaDB y limitar la base de datos a localhost:

Configuración de seguridad de XAMPP.

Configuración de seguridad de XAMPP.

No es necesario asignarle una contraseña al servicio ProFTPD ya que no lo utilizaremos durante este proyecto, aunque es recomendable hacerlo al usar este una contraseña fácil de adivinar por defecto.

Ahora, si ejecutamos sudo ./xampp reloadapache y sudo ./xampp reloadmysql, podemos comprobar desde nuestro navegador accediendo a https://clearfrost.es como se nos muestra el panel de control de XAMPP:

Panel de control de XAMPP.

Panel de control de XAMPP.

Base de datos

Para instalar WordPress tendremos que crear una cuenta y una base de datos administrada por esta, para ello nos dirigiremos a phpMyAdmin en el panel de control de XAMPP, aunque nos daremos cuenta rápidamente de un problema:

Error al intentar acceder a "phpMyAdmin".

Error al intentar acceder a "phpMyAdmin".

Por como está configurado XAMPP, solo podemos acceder a phpMyAdmin desde localhost, mientras que podríamos modificar el archivo httpd-xampp.conf para desactivar este comportamiento, modificarlo reduciría drásticamente la seguridad de nuestro sitio Web, con lo que utilizaremos SSH Forwarding para acceder a la configuración de la base de datos:

ssh -L 8080:localhost:8080 wordpress1

Al conectarnos a nuestra máquina virtual de esta manera, se abrirá un puerto 8080 en nuestra máquina local vinculado al puerto 8080 de frontera1, con lo que podremos acceder a phpMyAdmin de esta forma:

Acceso exitoso a "phpMyAdmin".

Acceso exitoso a "phpMyAdmin".

Ahora podemos iniciar sesión con las credenciales configuradas anteriormente, entonces crearemos un usuario llamado cfwordpress al cuál se le creará también una base de datos del mismo nombre sobre el que tenga privilegios administrativos:

Creación del usuario y base de datos.

Creación del usuario y base de datos.

Una vez creado y especialmente con una contraseña segura, podemos empezar con la instalación de WordPress.

Wordpress

Algo importante a tener en cuenta antes de instalar WordPress es que deseamos compatibilizar el panel de control de XAMPP con nuestra página WordPress sin arriesgarnos a exponer el panel al exterior, con lo que almacenaremos los archivos de WordPress en una carpeta llamada wp dentro de /opt/lampp/htdocs/.

Un problema con esto trata de que deseamos que los usuarios puedan acceder por nuestro proxy inverso a través de https://clearfrost.es y no tener que escribir https://clearfrost.es/wp/ manualmente, con lo que crearemos un archivo .htaccess dentro de /opt/lampp/htdocs/ con los siguientes contenidos:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?clearfrost.es$
RewriteCond %{REQUEST_URI} !^/wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wp/$1
RewriteCond %{HTTP_HOST} ^(www.)?clearfrost.es$
RewriteRule ^(/)?$ wp/index.php [L] 
</IfModule>
Note

Esta solución fue proporcionada por la documentación oficial de WordPress.

Esto nos permitirá reescribir peticiones dirigidas a www.clearfrost.es o clearfrost.es para que se incluya /wp/ automáticamente en las peticiones.

Ahora que ya tenemos todo preparado, podemos descargar la última versión de WordPress y descomprimirla con los siguientes comandos:

cd ./htdocs
sudo wget https://wordpress.org/latest.zip
sudo unzip ./latest.zip
sudo mv ./wordpress ./wp
sudo chown -R daemon:daemon ./wp/
sudo rm ./latest.zip

Si probamos a intentar acceder de nuevo a https://clearfrost.es veremos la siguiente página:

Instalador de WordPress.

Instalador de WordPress.

Como se podrá ver, el redireccionamiento de directorios está funcionando correctamente y ya tenemos acceso al instalador, con lo que configuraremos la base de datos y usuario creados en los anteriores pasos:

Configuración de la base de datos en WordPress.

Configuración de la base de datos en WordPress.

Una vez configurados, crearemos el usuario administrador de nuestro sitio Web:

Creación del administrador de WordPress.

Creación del administrador de WordPress.

Y finalmente podremos finalizar la instalación e iniciar sesión con nuestro nuevo usuario:

Instalación de WordPress exitosa.

Instalación de WordPress exitosa.

Algo interesante de esta configuración a tener en cuenta es que incluso si nos conectamos con cualquier dominio que no sea www.clearfrost.es / clearfrost.es para intentar acceder al panel de administración de XAMPP, seremos bloqueados por la página por defecto de NGINX. Esto mantendrá nuestro sitio Web seguro de posibles intrusiones.