Cambiar Moodle de /var/www/html/moodle a otro directorio (o de midominio.com/moodle a midominio.com/), sin romper nada, requiere método. Aquí tienes una guía práctica y segura, válida para Linux, Plesk y la mayoría de hostings.
0) Qué vas a necesitar a mano
-
Ruta actual del código (dirroot) y de datos (moodledata).
-
URL actual y URL de destino (si también cambias la ruta pública).
-
Acceso SSH/FTP y a la base de datos (MySQL/MariaDB o PostgreSQL).
-
Usuario del servidor web (habitual:
www-data,apacheonginx).
1) Prepara y reduce riesgos
-
Activa modo mantenimiento:
-
Copias de seguridad:
2) Crea el nuevo destino
-
Directorio de destino para el código (ej.:
/var/www/html/o/var/www/vhosts/miweb/httpdocs/en Plesk). -
Revisa/crea la carpeta moodledata (ideal fuera del docroot público). No es necesario moverla si ya está fuera y la ruta no cambia.
Permisos recomendados:
3) Mueve el código (no la base de datos)
En Plesk: puedes mover el proyecto a httpdocs/ y ajustar el Document Root desde Hosting Settings.
4) Actualiza config.php
Abre /nuevo/dir/moodle/config.php y ajusta:
Si solo cambias el directorio de código pero no la URL, deja $CFG->wwwroot igual.
Si cambias la URL (por ejemplo, de /moodle a raíz /), además harás un search/replace en el paso 6.
Pro tip Plesk/NGINX-Apache:
-
Activa PATH_INFO para que cargue el CSS correctamente (necesario para
slasharguments):-
Plesk > PHP Settings >
cgi.fix_pathinfo=1y comprueba que el handler PHP soporta PATH_INFO.
-
-
Asegúrate de que
open_basedirincluye la ruta demoodledata.
5) Vacía cachés y ejecuta upgrade
Comprueba notificaciones en /admin/index.php (logueado como admin).
6) ¿También cambiaste la URL pública?
Ejemplo: de https://midominio.com/moodle a https://midominio.com/.
Pasa el reemplazo seguro de URLs:
Nota: este script actualiza referencias en la BD (etiquetas, bloques, enlaces incrustados, etc.).
7) Ajusta el cron y tareas
Si tu cron usa rutas absolutas, actualízalo:
En Plesk: Tools & Settings > Scheduled Tasks, y cambia la ruta del PHP y del cron.php.
8) Redirecciones (SEO y enlaces antiguos)
Si la URL ha cambiado, crea 301 desde la ruta antigua:
-
En Apache (
.htaccessen el docroot anterior): -
En NGINX:
9) Pruebas rápidas de salud
-
Entra como admin y visita:
-
Administración del sitio > Notificaciones
-
Administración del sitio > Servidor > Entorno
-
-
Prueba login, edición de curso, subida de archivos y una actividad (Quiz/tarea).
-
Si no carga el CSS/JS:
-
Verifica
slasharguments(Administración del sitio > Servidor > HTTP) y PATH_INFO en el hosting. -
Purga cachés otra vez:
-
10) Errores habituales y solución
-
Página en blanco / error 500
Activa debug temporal enconfig.php:Revisa logs de PHP/servidor.
-
CSS roto después del cambio
Casi siempre es PATH_INFO/slasharguments o caché sin purgar. En Plesk, ajusta el handler PHP o activacgi.fix_pathinfo. -
“El sitio se encuentra en mantenimiento”
Desactívalo: -
Permisos sobre
moodledata
Asegúrate de que el usuario del servidor web tiene lectura/escritura enmoodledata(subidas, cachés, sesiones).
11) Estrategia de rollback en 2 minutos
-
Vuelve a apuntar el DocumentRoot (o symlink) al directorio anterior del código.
-
Restaura
config.phpanterior. -
Purga cachés:
-
Si cambiaste URLs, deshaz con replace inverso o restaura la BD desde el dump.
12) Cero-downtime con “cambio atómico” (opcional avanzado)
-
Sincroniza el nuevo directorio:
/var/www/releases/moodle-YYYYMMDD/ -
Precalienta cachés y prueba en staging.
-
Cambia un symlink:
-
Mantén un release anterior para volver instantáneamente.
13) Checklist final
-
Backups hechos y verificados
-
config.phpcon nuevas rutas y URL correcta -
moodledataaccesible y fuera del docroot -
PATH_INFO/slasharguments OK
-
Cron actualizado
-
Cachés purgadas
-
Redirecciones 301 si cambia URL
-
Pruebas funcionales clave superadas
¿Usas Plesk y te falla el CSS tras moverlo?
-
Hosting Settings → Document Root al nuevo directorio.
-
PHP Settings → comprueba versión/handler y
cgi.fix_pathinfo=1. -
Apache & Nginx settings → Proxy mode activo (si corresponde) y sin reglas que capen
index.php/.... -
open_basedirdebe incluir la ruta demoodledata.
En Kit Docente podemos ayudarte
En Kit Docente somos especialistas en cambios de ruta y migraciones de Moodle sin caídas: planificación, copia, reemplazo de URLs, permisos, Plesk/NGINX/Apache, tuning y pruebas finales.
📧 info@kitdocente.es
🌐 https://kitdocente.es
Si lo prefieres, nos das acceso temporal y te lo dejamos funcionando con todo testado y documentado.


0 comentarios