Instala WordPress en tu Raspberry Pi 4

Hay muchos servicios gratuitos en internet para hospedar tu propia página web o blog personal. Si no quieres depender de terceros y controlar todo el proceso, puedes crearte un servidor web en el que guardar tus archivos, documentos, páginas y compartirlas en internet. No es costoso, es fácil de instalar y configurar.

Los precios de la Raspberry Pi están un poco altos en este momento, unos 170 euros la de 8GB, frente a los 88 euros que me costó a mi en Enero de 2021. A esto debes sumarle los elementos que añadas: cooler, carcasa, disco SSD, alimentador de corriente
Todo lo que aquí se explica no tiene por qué instalarse sobre una Raspberry Pi. Es posible que te salga mas barato comprar en Wallapop un pc antiguo, como un Intel i3, pero la ventaja que tiene la Raspberry es su consumo, el cual apenas notarás en la factura eléctrica.

En referencia al software, el requisito imprescindible es tener instalada una distribución de Linux. En mi caso usaré Raspberry Pi OS
El software, se instala igual que en cualquier distribución basada en Debian, como Ubuntu, Linux Mint, Pop Os y otras derivadas de la primera.
Nunca había sido tan fácil y accesible para el usuario medio instalar la pila LAMP y WordPress, con los que podrás montar un servidor web completo y fácil de configurar.

Ahora mismo, mientras lees esta entrada, lo estás haciendo sobre una Raspberry como la de la imagen superior alojada en la Buhardilla de mi casa.

¿Qué es una pila LAMP?

Una pila LAMP es un conjunto de cuatro tecnologías de software diferentes que los desarrolladores utilizan para crear sitios web y aplicaciones web. LAMP es un acrónimo del sistema operativo Linux, el servidor web Apache, el servidor de base de datos MySQL y el lenguaje de programación PHP. Estas cuatro tecnologías son de código abierto, lo que significa que son mantenidas por la comunidad y están disponibles gratuitamente para que cualquiera las utilice. Los desarrolladores utilizan pilas LAMP para crear, alojar y mantener el contenido web. Es una solución popular que impulsa muchos de los sitios web que se utilizan comúnmente en la actualidad.

Cómo instalar la pila LAMP en Raspberry Pi 4

Para instalar la pila LAMP en Raspberry PI usaremos los paquetes procedentes de los repositorios de la propia distribución, así que actualizaremos la información de dichos repositorios:

~$ sudo apt update

Ahora instalaremos los siguientes paquetes:

~$ sudo apt install -y apache2 libapache2-mod-php mariadb-server php-mysql

Una vez instalados estos paquetes, tendremos activos los servicios apache2 y mariadb, que quedan en funcionamiento y habilitados para arrancar automáticamente junto con el sistema operativo.

Podemos comprobar fácilmente el estado de estos dos servicios con el comando:

~$ sudo systemctl status apache2 mariadb -n 0

Para configurar la pila LAMP en Raspberry Pi 4 apenas hay que realizar ajustes, ya que los componentes de la misma quedan bien encajados tras la instalación. Veremos a continuación lo mínimo que se debe hacer.

Configurando PHP

WordPress requiere la presencia de ciertas extensiones de este lenguaje de programación que instalaremos así:

~$ sudo apt install -y php-{curl,gd,imagick,intl,mbstring,xml,zip}

Para configurar este lenguaje de programación trabajaremos en primer lugar sobre el archivo de configuración del módulo del servicio web:

Debemos conocer la versión de PHP que hemos instalado en el sistema, con el siguiente comando en consola.

~$ php -v 
~$ sudo nano /etc/php/X.X/apache2/php.ini

Reemplazamos las X.X por la versión que nos da por consola, en mi caso:

~$ sudo nano /etc/php/7.4/apache2/php.ini

Un ajuste que siempre conviene realizar es el de la zona horaria del servidor, para lo que buscamos la directiva date.timezone:


;date.timezone =

Activaremos esta directiva eliminando el carácter ; al inicio de línea y le daremos el valor que nos interese:


date.timezone = Europe/Madrid

Una vez guardado y cerrado el archivo aplicamos los cambios recargando la configuración del servicio web:

~$ sudo systemctl reload apache2

Existe otro archivo de configuración para la ejecución de aplicaciones en consola:

~$ sudo nano /etc/php/7.4/cli/php.ini

En este archivo deberíamos hacer al menos el mismo cambio en la directiva date.timezone para que las aplicaciones web que usen módulos de consola no encuentren discrepancias en la hora del sistema.

Guardados los cambios.

Test de la pila LAMP

Para probar el funcionamiento de la pila LAMP bastará con crear un pequeño script en PHP de sencillo acceso vía web.

Creamos el archivo en un lugar que pueda ser accedido por el servicio web:

~$ sudo nano /var/www/html/info.php

Con el contenido:

<?php phpinfo();

Guardamos con Ctrl + o y cerramos con Ctrl + x

Para acceder a este script desde un navegador indicaremos la dirección del servidor (IP, nombre DNS, dominio, etc.) seguido de la ruta y nombre del script.

Por ejemplo:

http://localhost/info.php

La página web que aparece muestra el funcionamiento de PHP y nos da amplia información sobre los componentes y configuración de la pila LAMP.

Configurando MariaDB

WordPress funciona sobre una base de datos MariaDB/MySQL. El servicio de bases de datos viene listo para usar sin necesidad de configuraciones adicionales. El único usuario que se incluye es el administrador root y para conectar al servicio desde consola habrá que usar sudo:

Conectamos al servicio de bases de datos desde consola indicando un usuario administrador:

~$  sudo mysql -u root -p

Creamos una base de datos llamada wordpress:

create database wordpress charset utf8mb4 collate utf8mb4_unicode_ci;

Creamos un usuario al que llamaremos wordpress y manejará la base de datos:

create user wordpress@localhost identified by 'tu_contraseña';

Sustituye tu_contraseña por tu una de tu elección.

Damos permisos al usuario sobre la base de datos:Y cerramos la conexión:

grant all privileges on wordpress.* to wordpress@localhost;

Puedes cerrar la conexión al servicio con el comando exit:

~$ exit

Ahora que sabemos cómo instalar la pila LAMP, ya podemos instalar y configurar WordPress.

Descargar WordPress

Antes de instalar WordPress hay que borrar el contenido del directorio /html, para ello, desde una terminal nos situamos en dicho directorio con el siguiente comando:

~$ cd /var/www/html/

Ahora borramos el contenido del directorio:

~$ sudo rm *

A través del comando wget , descargamos la última versión en castellano, disponible en formato tar.gz

~$ sudo wget https://es.wordpress.org/latest-es_ES.tar.gz

Descomprimimos el paquete que acabamos de descargar directamente en el directorio de la página por defecto:

~$ sudo tar xf latest-es_ES.tar.gz

Ahora toca crear el directorio de WordPress. Aunque puede moverlos manualmente usando la interfaz de usuario del escritorio, es simple hacerlo desde la línea de comandos:

~$ sudo mv wordpress/* .

Asegúrate de incluir el espacio y el punto al final, que se refiere al directorio actual.

Como WordPress necesita escribir en su directorio de instalación a través del servicio web, habrá que cambiar el propietario del directorio y su contenido, establecemos al usuario de Apache como propietario del directorio:

~$ sudo chown -R www-data: .

Instala WordPress

Ahora que la configuración del servidor está completa, podemos finalizar la instalación a través de la interfaz web.

En su navegador web, vaya al nombre de dominio o a la dirección IP pública de su servidor:

~$ http://localhost

Se abrirá la página de bienvenida a WordPress.

Luego te llevará a la página principal de configuración. Rellena los siguientes datos:

Nombre de la base de datos – introduce el nombre que estableciste al configurar la base de datos de WordPress. En este caso, será wordpress
Nombre de usuario – introduce el nombre de usuario de MySQL que has configurado antes para la base de datos. En nuestro caso será wordpress
Contraseña – introduce la contraseña que has creado para el usuario de la base de datos.
Host de la base de datos – mantén aquí el valor por defecto localhost.
Prefijo de la tabla – deja wp_ en este campo.
Haz clic en Enviar para continuar.

Aparecerá un nuevo mensaje diciendo que WordPress ya puede comunicarse con tu base de datos. Haz clic en Realizar la instalación.

Después, tendrás que introducir más información:

Título del sitio – escribe el nombre del sitio web de WordPress.
Nombre de usuario – crea un nuevo nombre de usuario que utilizarás para acceder a WordPress.
Contraseña – crea una contraseña para el usuario de WordPress.
Tu correo electrónico – añade la dirección de correo electrónico para las actualizaciones y notificaciones.
Visibilidad en los motores de búsqueda – deja esta casilla sin marcar si no quieres que los motores de búsqueda indexen tu sitio hasta que esté listo.
Haz clic en el botón Instalar WordPress para terminar.

Si todo a salido bien, ¡Lo lograste!

Se abre la página de ingreso. Pulsa en el botón Acceder

Introduce tu nombre de usuario y contraseña que elegiste para acceder a WordPress y estarás dentro.

Ya puedes empezar a crear contenido, pero antes de eso, sigue este post hasta el final.

Configura WordPress

Antes de crear contenido vamos a configurar algunas cosas necesarias.

Cambia los enlaces permanentes de WordPress

Una configuración importante que se realiza mejor en una instalación nueva de WordPress es cambiar la configuración de enlaces permanentes. Los enlaces permanentes son las URL permanentes de sus publicaciones de blog individuales.

De forma predeterminada, las publicaciones se crearán con un enlace permanente numérico o sencillo, pero se recomienda utilizar un formato más versátil, como un enlace permanente con el nombre de la publicación, para ayudar a los motores de búsqueda a encontrar su sitio web.

El sitio web de WordPress tiene más información sobre los diferentes formatos disponibles , pero para el propósito de este tutorial usaremos el formato de enlace permanente post-name.

Comience cambiando la configuración en el panel de control de WordPress. Inicie sesión en su cuenta y en el menú seleccione Configuración > Enlaces permanentes . Haga clic en Publicar nombre y Guardar cambios .

También tendrá que modificar ligeramente la configuración de Apache en su Raspberry Pi para que estos cambios puedan comunicarse al servidor. Si no ha habilitado el módulo de reescritura en el tutorial anterior , hágalo ahora con el siguiente comando.

sudo a2enmod rewrite

El archivo de configuración de Apache debe actualizarse para que estos cambios surtan efecto. Ábrelo con el siguiente comando:

sudo nano /etc/apache2/sites-available/000-default.conf

Después de la línea inicial añadimos el siguiente texto

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Por ahora, estas líneas están solo dentro del VirtualHost para el puerto 80 ya que aún no tenemos una conexión HTTPS segura.

Reiniciamos apache para los cambios surtan efecto.

sudo service apache2 restart
  • Con esto se soluciona el problema del plugin «Yoast SEO» al momento de generar el mapa del sitio.
  • Con esto se soluciona el problema de que no guarda las entradas y las páginas creadas indicando una redirección del archivo JSON invalida.
  • Con esto se soluciona el problema de «página no encontrada» al modificar o personalizar los enlaces permanentes.
  • Con esto se soluciona el error del plugin «.htaccess» editor que no muestra ningún resultado al hacer modificaciones

Comprueba que estas líneas están insertadas y coinciden con los archivos de la ruta /etc/apache2/sites-available/000-default.conf como en los archivos de la ruta /etc/apache2/sites-enabled/000-default.conf

Accede a tu sitio de WordPress desde Internet

Ahora mismo sólo puedes acceder al sitio desde tu red doméstica. Para cambiar esto, necesitarás una dirección IP estática o un servicio de DNS y administrar el reenvío de puertos desde tu router a tu Raspberry Pi.
Muchos proveedores de servicios de Internet asignan direcciones IP dinámicamente y las cambian de vez en cuando. Por lo tanto, para evitar interrupciones en su sitio web autohospedado, se recomienda utilizar un servicio de DNS dinámico. Estos servicios se especializan en el acceso remoto y le permiten apuntar su IP a un nombre de host estático, mientras mantiene viva la conexión. De esta manera, tan pronto como cambie su IP, el servicio DNS registrará el cambio y actualizará el nombre de host.
El servicio gratuito que he usado es Duckdns , pero hay muchas docenas para elegir y todos ofrecen cuentas de inicio bastante similares. Este servicio viene con un cliente de actualización dinámica que deberás instalar en tu sistema para asegurarte de que registra cualquier cambio de IP.
Una vez que el nombre de host está registrado y conectado con éxito a tu IP, deberías poder acceder a tu blog desde la web (asegúrese de usar http:// para la URL).
ejemplo

http://tu_nombre_registrado.duckdns.org

Instalar certificados HTTPS

Se recomienda el siguiente paso, pero no es estrictamente necesario para que tu sitio web funcione. Puedes omitirlo por ahora y volver a él más tarde si deseas usar HTTP como tu principal protocolo de comunicaciones. Si lo haces, ten en cuenta que la autenticación segura y la comunicación cifrada a través de HTTPS ahora son estándar para todos los sitios web. Tus visitantes pueden recibir una advertencia sobre una conexión insegura cuando intentan acceder a tu sitio web a través de HTTP.

LetsEncrypt

La forma más fácil de obtener un certificado SSL reconocido que verificará la autenticidad de su sitio web en el navegador es usar LetsEncrypt Certbot .

Para Apache, puede usar el siguiente comando para instalarlo en su Raspberry Pi:

~$ sudo apt-get install python3-certbot-apache

Certbot genera automáticamente un certificado para usted y lo incluye en su configuración de Apache con este comando. Certbot también se asegurará de que el certificado se renueve automáticamente en el futuro, por lo que no debe preocuparse por esto.

~$ sudo certbot --apache

Después de ejecutar estos comandos, te solicitará más información. Debes proporcionar una dirección de correo electrónico válida para registrarte, aceptar los Términos de servicio y, lo que es más importante, proporcionar un nombre de dominio válido. Para esto, usa el nombre de host que registraste en Duckdns.org.

La última pregunta es si desea redirigir automáticamente el tráfico de http a https. En este caso, como se trata de una instalación nueva, es mejor usar la redirección ( opción 2 ), ya que no hay peligro de romper los enlaces existentes.

Si Certbot le da un error durante la instalación, es posible que primero deba habilitar el reenvío de puertos en su enrutador.

El certificado ahora se instalará en su sistema y se puede encontrar en la siguiente carpeta: /etc/letsencrypt/live/hostname.domain.com/
que en mi caso está en /etc/letsencrypt/live/linuxete.duckdns.org/ y dentro se encuentran los archivos cert.pem chain.pem fullchain.pem privkey.pem README

En ajustes, generales cambia las direcciones de http a https y la dirección completa que nos proporcionó Duckdns.

Cambia la dirección de WordPress (URL) y la dirección del sitio.

Asegurate que el equipo donde se encuentra instalado tu WordPress tiene el puerto 443 abierto en tu router para poder navegar a través de https.

Visita tu sitio web en un navegador que use HTTPS y busca el ícono de candado en la URL para verificar que la conexión SSL esté funcionando.

¡Enhorabuena!

Ahora eres el propietario de tu sitio web, funcionamiento con una conexión SSL segura y la estructura de enlaces permanentes recomendada.

¿Cómo puedo renovar los certificados de Let’s Encrypt?


En el caso de que tu certificado no se renueve automáticamente, puedes activar manualmente la renovación en cualquier momento ejecutando:

sudo certbot renew

Cuando haya terminado reinicia el apache con:

sudo systemctl reload apache2

Para verificar que el certificado se renovó, ejecuta:

sudo certbot renew --dry-run

Si tienes varios certificados para diferentes dominios y deseas renovar un certificado específico, utiliza:

certbot certonly --force-renew -d tu.dominio.com

La opción –force-renew indica a Certbot que solicite un nuevo certificado con los mismos dominios que un certificado existente. La opción -d le permite renovar certificados para varios dominios específicos.

Si el comando no arroja errores, la renovación fue exitosa.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio