Orbiter — Errores conocidos y soluciones
Errores de instalación
Error: "Run via SSH: php /opt/psa/admin/plib/modules/orbiter/scripts/post-install.php" El script de post-instalación no pudo ejecutarse automáticamente. Conéctese mediante SSH como root y ejecute el comando manualmente:
php /opt/psa/admin/plib/modules/orbiter/scripts/post-install.php
Error: "install-deps failed" La instalación de las dependencias del sistema falló. Ejecute como root:
bash /opt/psa/admin/plib/modules/orbiter/scripts/install-all.sh
Compruebe que el servidor tiene acceso a internet y que el gestor de paquetes (apt/yum) funciona con normalidad.
Error: "Dockerfile not found" Los archivos de construcción de Docker no se copiaron correctamente durante la instalación. Vuelva a ejecutar la post-instalación o reinstale la extensión desde el gestor de extensiones de Plesk.
Error: "Default nginx template not found" Falta la plantilla de proxy de Nginx. Vuelva a ejecutar:
php /opt/psa/admin/plib/modules/orbiter/scripts/post-install.php
Errores de construcción de la imagen Docker
La construcción falla / "Build failed" en la interfaz Revise los registros de construcción que se muestran debajo de la barra de progreso. Causas habituales:
- Sin acceso a internet para descargar las imágenes base
- Espacio en disco insuficiente (se recomienda un mínimo de 20 GB)
- El daemon de Docker no está en ejecución:
systemctl start docker
"docker run failed" / El contenedor no se inicia Compruebe que:
- Docker está en ejecución:
systemctl status docker - Hay suficiente RAM disponible (mínimo 2 GB en total)
- No hay conflictos de puertos: busque
port already in useen los registros
"Web volume mount failed. Check that the path exists" La ruta del document root del dominio no existe o no es accesible. Verifique en Plesk que la ruta de archivos del dominio es correcta y que el directorio existe en disco.
Errores de creación de contenedores
"Error creating" / El contenedor se queda atascado en estado "creating" Es posible que una operación de creación anterior haya dejado un archivo de bloqueo. Compruebe:
ls /opt/psa/var/modules/orbiter/locks/
Si existe un archivo .lock para el dominio y no hay ninguna operación en curso, elimínelo:
rm /opt/psa/var/modules/orbiter/locks/<domain>.lock
"Container is delete-locked. Unlock it first, or use force=1" El contenedor tiene activado el bloqueo anti-eliminación. Vaya a la sección Contenedor en el panel de acciones, cambie el bloqueo a Desbloqueado y reintente la operación.
"Failed to apply network limit" No se pudo aplicar el límite de red de Docker. Esto no suele ser crítico: el contenedor funciona, pero sin limitación de velocidad de red. Compruebe la compatibilidad de la versión de Docker.
"Quota exceeded" El cliente de Plesk ha alcanzado su cuota de contenedores, RAM o bases de datos fijada por el administrador. Póngase en contacto con el administrador del servidor para aumentar la cuota, o elimine primero un contenedor existente.
"Failed to enable nginx PHP mode" No se pudo configurar Nginx para redirigir las solicitudes PHP al contenedor. Ejecute:
plesk repair web -y
Errores de MariaDB
"MariaDB is starting, please wait a few seconds..." MariaDB todavía se está inicializando dentro del contenedor. Espere entre 10 y 15 segundos y actualice. Si persiste más de 60 segundos, reinicie el contenedor.
"Dump failed. Check that MariaDB is running"
MariaDB no está en ejecución dentro del contenedor. Vaya al panel de Base de datos y haga clic en «Iniciar MariaDB», o reinicie el contenedor completo. Si el fallo aparece de forma recurrente en el registro de la copia de seguridad nocturna (/opt/psa/var/modules/orbiter/logs/orbiter.log con [Cron] FAIL ALL: Dump failed), es probable que el servicio MariaDB dentro del contenedor esté atascado en estado FATAL. Compruébelo con:
docker exec php-fpm-<domain> supervisorctl status mariadb
Si indica FATAL Exited too quickly, consulte Estado FATAL de MariaDB (Can't initialize timers) más abajo.
Estado FATAL de MariaDB (Can't initialize timers) — PidsLimit demasiado bajo
MariaDB necesita varios hilos internos (temporizadores, manejadores de señales, workers de InnoDB) para arrancar. Si el pids.max del cgroup del contenedor está por debajo del requisito de MariaDB, mariadbd aborta de inmediato al arrancar con:
Can't initialize timers
[ERROR] Aborting
Supervisord reintenta 3 veces y luego marca el servicio como FATAL. El contenedor permanece activo —solo MariaDB ha muerto en su interior— y las copias de seguridad nocturnas fallan en silencio cada noche.
Cómo detectarlo. Inspeccione los límites del contenedor:
docker inspect php-fpm-<domain> --format '{{.HostConfig.PidsLimit}}'
Si devuelve 100 o menos y el contenedor tiene MariaDB activado, ha encontrado la causa.
Cómo solucionarlo. Aumente el límite del cgroup en caliente (sin necesidad de recrear) y reinicie el servicio:
docker update --pids-limit=512 php-fpm-<domain>
docker exec php-fpm-<domain> supervisorctl restart mariadb
Después verifique: docker exec php-fpm-<domain> supervisorctl status mariadb debería ahora indicar RUNNING. La copia de seguridad nocturna se reanudará por sí sola.
Prevención. Orbiter aplica un mínimo de MariaDB de 150 PIDs cuando el motor se activa en el momento de crear el contenedor, pero un contenedor creado antes de esta salvaguarda (o uno en el que el límite se redujo manualmente mediante el modal de Límites) puede acabar por debajo del umbral. Tras una activación de + MariaDB, compruebe dos veces que el límite de PIDs del contenedor no es un remanente de un preset Conservative. Desde la interfaz, el modal de Límites ahora atenúa los valores de PIDs por debajo de 150 cuando MariaDB está en el mismo sitio.
MariaDB se bloquea inmediatamente tras el arranque del contenedor (error io_uring)
Esto afecta a los hosts donde io_uring_disabled=2 o libaio no está disponible. La corrección se aplica automáticamente desde Orbiter 1.5.4. Si está en una versión anterior, ejecute:
php /opt/psa/admin/plib/modules/orbiter/scripts/post-install.php
Esto propaga la configuración innodb_use_native_aio=0 a todos los contenedores MariaDB en ejecución.
"MySQL error" durante la creación de usuario / grant Es posible que la contraseña de root de MariaDB haya cambiado o que el contenedor necesite un reinicio. Pruebe a reiniciar MariaDB desde el panel de Base de datos y reintente la operación.
phpMyAdmin "Failed to set session cookie" Esto ocurre tras una migración de slug de phpMyAdmin donde el vhost de nginx y el config.inc.php dentro del contenedor están desincronizados. Corregido en Orbiter 1.5.3. Actualice a la última versión o recree el contenedor.
La importación de la base de datos falla con un error de sintaxis Es posible que el archivo SQL importado contenga sentencias a nivel de sistema que se filtraron. Orbiter elimina automáticamente las sentencias peligrosas. Si la importación falla por completo, compruebe que el archivo es SQL válido (no un archivo de texto de una sola línea) y que no está corrupto.
Errores de Nginx / servidor web
"Failed to write proxy configuration"
Orbiter no pudo escribir la configuración de proxy de Nginx para el dominio. Compruebe el espacio en disco y los permisos en /etc/nginx/. Ejecute plesk repair web -y para restablecer la configuración de nginx.
El sitio devuelve 502 Bad Gateway tras la creación del contenedor Es posible que el contenedor todavía se esté iniciando. Espere entre 10 y 15 segundos y actualice. Si persiste:
- Compruebe que el contenedor está en ejecución en Orbiter
- Revise los registros del contenedor en busca de errores de arranque de PHP-FPM
- Pruebe a reiniciar el contenedor
El sitio devuelve 403 Forbidden en archivos PHP con Shield activado Esto es Shield funcionando correctamente. Shield bloquea la ejecución de archivos PHP en directorios de solo lectura. Si se está bloqueando un archivo PHP legítimo, puede:
- Añadir su directorio padre a la lista de directorios con permisos de escritura en los ajustes de Shield
- O desactivar Shield temporalmente para hacer pruebas
"Container is not starting correctly. Logs:" seguido de la salida de error Lea los registros que se muestran en el error. Causas habituales:
- Error de configuración de PHP-FPM (compruebe el php.ini personalizado en busca de errores de sintaxis)
- Conflicto de puertos (otro proceso está usando el puerto asignado)
- Memoria insuficiente
Errores de caché
La purga de la caché devuelve "Permission denied"
Nginx crea los subdirectorios de la caché en modo 700. Orbiter aplica chmod -R 777 a los subdirectorios de la caché automáticamente desde la versión 1.5.0. Si ve este error en una versión anterior, actualice Orbiter o ejecute:
chmod -R 777 /var/cache/orbiter/<domain>/
"Error during flush" No se pudo vaciar la caché de Nginx. Compruebe que el directorio de la caché existe y es accesible. Pruebe a purgar desde el panel de Caché en la interfaz de Orbiter.
Errores de la CLI
--version informa de una versión incorrecta
Corregido en Orbiter 1.5.2. Actualice a la última versión. La CLI ahora lee meta.xml de forma dinámica.
--db-export > dump.sql produce un archivo de texto de una sola línea
Corregido en Orbiter 1.5.2. El volcado SQL ahora va a stdout y el mensaje de estado a stderr. Actualice a la última versión.
WARNING: Error loading config file: open /root/.docker/config.json: permission denied
Esta advertencia aparecía en cada comando de docker en las versiones anteriores a 1.5.2. Es estética y no afecta a la funcionalidad. Corregido en Orbiter 1.5.2 estableciendo DOCKER_CONFIG=/nonexistent.
Errores de sincronización / copia de seguridad
"Sync failed" / "Connection failed" Para los destinos de copia de seguridad externos (S3, SFTP, FTPS):
- Verifique las credenciales en la configuración del destino de la copia de seguridad
- Use el botón «Probar conexión» para diagnosticar
- Compruebe que el servidor puede alcanzar el host remoto (firewall, DNS)
"Cannot read inventory file" El archivo de configuración del destino de sincronización falta o está corrupto. Elimine el destino y vuelva a añadirlo desde el panel Ajustes → Copias de seguridad.
La copia de seguridad nocturna informa repetidamente de FAIL ALL: Dump failed para un dominio
El servicio MariaDB dentro de ese contenedor está atascado en estado FATAL. Consulte Estado FATAL de MariaDB (Can't initialize timers) en la sección Errores de MariaDB más arriba para el diagnóstico y la solución.
Errores generales
"sysop returned invalid JSON"
Un error interno de comunicación entre el código PHP de Orbiter y el binario privilegiado sysop. Suele ser transitorio. Reintente la operación. Si persiste, revise /var/lib/orbiter/orbiter.log para más detalles.
"ConfigStore init failed, falling back to JSON"
No se pudo abrir la base de datos de configuración SQLite. Orbiter recurre automáticamente al almacenamiento en JSON, por lo que la funcionalidad se conserva. Compruebe el espacio en disco en /var/lib/orbiter/.
"Unknown error" en cualquier operación Revise el archivo de registro de Orbiter para más detalles:
tail -100 /var/lib/orbiter/orbiter.log
Compruebe también el registro de errores de Plesk:
tail -100 /var/log/plesk/panel.log