Cuando WordPress no puede identificar correctamente que estás usando Apache como servidor web, todas tus URLs incluirán “index.php”. Este problema es común especialmente cuando se ha modificado el nombre del servidor o su configuración, lo que impide que WordPress detecte automáticamente que está corriendo en un servidor Apache.
WordPress intenta detectar automáticamente el tipo de servidor web que estás utilizando para configurar las URLs de manera óptima. Sin embargo, en algunas situaciones como:
WordPress puede fallar en identificar correctamente que está corriendo en Apache, lo que resulta en la inclusión de “index.php” en todas las URLs.
Cuando esto sucede, verás URLs con este formato:
https://tudominio.com/?p=123https://tudominio.com/index.php/2025/03/mi-articulo/https://tudominio.com/index.php/categoria/articulo/https://tudominio.com/index.php/archivos/123Para resolver este problema de forma permanente, seguiremos estos pasos:
wp-includesvars.phpvars.php en un editor$is_apache = 1;
chattr para hacer el archivo inmutable:
sudo chattr +i wp-includes/vars.php
lsattr wp-includes/vars.php

chattr requiere acceso root al servidorsudo chattr -i wp-includes/vars.php # Permite modificaciones
# Realiza tus cambios
sudo chattr +i wp-includes/vars.php # Vuelve a proteger el archivo
Esta solución proporciona una forma permanente de mantener las URLs limpias en WordPress, sin preocuparse por las actualizaciones del sistema. El uso de chattr asegura que el archivo vars.php permanezca intacto, manteniendo tu configuración de URLs consistente en todo momento.
Kopia es una herramienta libre, moderna y rápida para hacer copias de seguridad. Al igual que otras herramientas como Borg o Restic, Kopia permite tomar snapshots de los datos del usuario y guardarlos en un repositorio.
Kopia ofrece diferentes tipos de repositorio para almacenar las copias de seguridad:
La herramienta almacena los backups de manera eficiente utilizando técnicas de deduplicación y compresión opcionales. Además, ofrece seguridad mediante cifrado y proporciona una interfaz sencilla tanto en la línea de comandos como en una interfaz gráfica.
Cuando se necesita recuperar datos de una copia de seguridad, es posible montar el snapshot correspondiente y acceder al contenido utilizando las herramientas habituales.
Dado que Kopia es una aplicación reciente, no está incluida en los repositorios oficiales de Ubuntu. Sin embargo, la instalación es sencilla. Puedes descargar el paquete .deb desde el repositorio oficial de Kopia y luego instalarlo en tu sistema utilizando el siguiente comando:
wget https://github.com/kopia/kopia/releases/download/v0.13.0/kopia_0.13.0_linux_amd64.deb -O /tmp/kopia.deb
dpkg -i /tmp/kopia.deb
A continuación, veremos cómo configurar un repositorio utilizando Contabo Object Storage como ejemplo. Para ello, necesitarás:
Una vez que tengas estos datos, ejecuta:
kopia repository create s3 --bucket=<nombre del bucket> \
--access-key=<access key> \
--secret-access-key=<secret key> \
--endpoint=eu2.contabostorage.com
Kopia permite ajustar las políticas de retención según tus necesidades:
kopia policy set --global --compression=zstd
kopia policy set --global --keep-annual 0
kopia policy set --global --keep-monthly 3
kopia policy set --global --keep-weekly 4
kopia policy set --global --keep-daily 7
kopia policy set --global --keep-latest 20
Aquí tienes un ejemplo de script de respaldo completo:
#!/bin/bash
export KOPIA_PASSWORD="<contraseña>"
ACCESS_KEY="<access key>"
SECRET_KEY="<secret key>"
ENDPOINT="eu2.contabostorage.com"
BUCKET_NAME="<nombre del bucket>"
# Conectar al repositorio S3
kopia repository connect s3 \
--bucket="$BUCKET_NAME" \
--access-key="$ACCESS_KEY" \
--secret-access-key="$SECRET_KEY" \
--endpoint="$ENDPOINT"
# Crear snapshot
kopia snapshot create /home/*/web/*/public_html \
--description "Websites $HOSTNAME"
# Ejecutar mantenimiento
kopia maintenance run --full
# Desconectar del repositorio
kopia repository disconnect
Para automatizar los backups, añade el script al cron:
(crontab -l 2>/dev/null; echo "*/15 * * * * /etc/backup.sh") | crontab -
Para ver los snapshots almacenados:
kopia snapshot list
Para montar y acceder a un snapshot:
kopia mount <snapshot-ID> <directorio-de-montaje>
Kopia es una herramienta poderosa y eficiente para realizar copias de seguridad de manera segura. Con características como:
Kopia te brinda la confianza y tranquilidad de que tus datos estarán protegidos y disponibles para su recuperación en caso de cualquier eventualidad.
¿Ya utilizas alguna herramienta de backup? ¿Qué te parece Kopia en comparación? ¡Comparte tu experiencia en los comentarios!
]]>En esta guía veremos cómo instalar N8N usando nuestro propio dominio personalizado de forma super sencilla con certificado SSL de LetsEncrypt usando Traefik como proxy inverso.
La instalación es muy sencilla porque la he simplificado al máximo. Vamos a ver paso a paso cómo hacerlo.
Para comenzar, necesitamos un servidor VPS. Personalmente, recomiendo Contabo por su excelente relación calidad-precio.
Una vez tengamos nuestro servidor con Ubuntu 20.04 o superior, instalamos Docker:
/bin/bash -c "$(curl -fsSL https://get.docker.com)"
systemctl enable docker
systemctl start docker
Usaremos un repositorio que ya he preparado para la ocasión:
cd /opt
git clone https://github.com/aitorroma/docker-traefik traefik
cd traefik
chmod 600 acme.json
nano .env
Debemos ajustar dos variables importantes en el fichero .env:
cd /opt/traefik
docker compose up -d
Este comando iniciará un contenedor escuchando en los puertos 80 y 443, listo para funcionar como proxy inverso.
Una vez desplegado Traefik, seguimos estos pasos:
cd /opt
git clone https://github.com/aitorroma/n8n-traefik.git n8n
cd n8n
nano .env
Ajustamos las variables en el fichero .env:
N8N_HOST=n8n.hiveagile.club
## N8N Version
VERSION=latest
## N8N Config
VUE_APP_URL_BASE_API=https://${N8N_HOST}
N8N_PROTOCOL=https
WEBHOOK_URL=https://${N8N_HOST}
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=336
GENERIC_TIMEZONE=Europe/Madrid
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
#### SMTP CONFIG #####
N8N_EMAIL_MODE=smtp
N8N_SMTP_HOST=smtp.eu.mailgun.org
N8N_SMTP_PORT=465
N8N_SMTP_USER=[email protected]
N8N_SMTP_PASS=lapassword
N8N_SMTP_SSL=true
N8N_SMTP_SENDER=[email protected]
Importante: En
N8N_HOSTdebes especificar la URL que usarás para acceder a tu instancia de N8N. Asegúrate de que el registro DNS A apunte a tu servidor.
Las demás variables pueden dejarse como están, excepto la sección SMTP CONFIG que debes configurar para recibir correos electrónicos.
cd /opt/n8n
docker-compose up -d
chmod 777 ./docker-volumes/n8n -Rf
docker compose restart
Este comando levantará la instancia de N8N en el subdominio especificado, con soporte SSL incluido.
Puedes usar Watchtower para actualizar N8N y todos los contenedores marcados con la etiqueta latest:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -i 30
Estás invitado a mi canal de Telegram, donde publico más soluciones como esta:
Con estos pasos, tendrás una instancia de N8N funcionando con tu propio dominio, certificado SSL y actualizaciones automáticas. Esta configuración es ideal para entornos de producción y te permitirá ejecutar tus flujos de trabajo de automatización de forma segura y profesional.
¿Te ha resultado útil esta guía? ¿Tienes alguna duda sobre la instalación? ¡Déjame un comentario y te ayudaré!
]]>