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