Start by deciding what kind of blank page you actually have
An ownCloud “white screen of death” is a symptom, not a diagnosis. The best fix depends on whether the browser received a server error, received valid HTML but failed to load JavaScript or CSS, or reached a reverse proxy that could not reach ownCloud at all.
That distinction matters because the trade-offs are very different. Disabling a third-party app is relatively low risk when a PHP exception names that app. Changing file ownership across an entire installation is much more invasive and should not be the first response to a JavaScript error. Likewise, restarting every service may briefly hide a problem without telling you whether it came from PHP, a proxy, an upgrade, or an app.
This guide covers ownCloud Classic. As of the current ownCloud Classic 11 documentation, version 11 is supported as a Docker-based deployment, with the operating system, PHP runtime, database, and Apache inside the ownCloud-provided containers. Older 10.x installations may still use a traditional web-server and PHP-FPM layout. Use the command branch that matches your deployment. See the ownCloud Classic 11 system requirements.
1. Is the blank page returning HTTP 500, or is the browser failing after HTTP 200?
Open the browser developer tools and inspect both the Network and Console tabs. Also test the endpoint from a terminal:
curl -I https://cloud.example.com/
curl -sS -o /dev/null -w '%{http_code}\n' https://cloud.example.com/
Caption: A server-side 500 response points toward ownCloud, PHP, the database, or the web stack rather than a simple browser-rendering problem.
If the main document returns 500 or 502/503, prioritize server and proxy logs. If the main document returns 200 but JavaScript bundles fail with 404, 403, or script exceptions, prioritize asset paths, reverse-proxy rewriting, themes, cache, or app compatibility. If only one browser is affected, test a private window and another supported browser before changing the server.
2. Did the problem start after an ownCloud or PHP upgrade?
This is one of the highest-value questions because it can immediately narrow the fault domain. ownCloud's current release notes state that ownCloud Classic 11 raised the minimum PHP version to PHP 8.3, and ownCloud Classic 11 is Docker-only. A legacy ownCloud 10.x installation follows different PHP compatibility rules, so do not copy PHP advice from another major release.
For a traditional ownCloud 10.x installation, run the command from the ownCloud directory:
sudo -u www-data ./occ status
php -v
For ownCloud Classic 11, run OCC through the Compose deployment:
docker compose exec owncloud occ status
docker compose exec owncloud php -v
Caption: Checking the installed ownCloud and PHP versions is especially important when the white screen began immediately after an upgrade.
Compare the result with the release notes for the version you actually run. The official ownCloud release notes are the right source for current minimum versions and breaking changes. A downgrade is not a safe generic fix: ownCloud documentation warns that downgrading is unsupported because it can corrupt data.
3. Which log gives you the first concrete error?
Logs are usually more useful than trial-and-error configuration changes. ownCloud's administration manual recommends the ownCloud log for diagnosing problems; by default, the log is stored in the configured data directory unless a different logfile is set.
On a traditional installation, examples include:
tail -n 100 /path/to/owncloud/data/owncloud.log
journalctl -u php-fpm --since "15 minutes ago"
journalctl -u apache2 --since "15 minutes ago"
journalctl -u nginx --since "15 minutes ago"
On ownCloud Classic 11, inspect the Compose services instead:
docker compose logs --tail=200 owncloud
docker compose ps
Caption: A PHP fatal error or stack trace that names an app or class gives a much safer troubleshooting target than changing unrelated server settings.
Look for the first fatal exception around the failed request, not only the final cascade of errors. Common categories include a missing PHP class, an incompatible app, database connection failure, unreadable configuration, missing code files, or an exception during an unfinished upgrade.
ownCloud's logging documentation says DEBUG logging can help during diagnosis but produces substantial output and can affect performance. If you temporarily raise the log level, return it to a less verbose value after collecting the evidence. See ownCloud logging configuration.
4. Should you disable a third-party app?
Choose this path when the error names a non-core app, when the blank page started after installing or updating an app, or when the failure appeared during an ownCloud upgrade. ownCloud's troubleshooting guidance explicitly recommends disabling third-party apps for troubleshooting and before upgrades.
List apps first. On ownCloud 10.x:
sudo -u www-data ./occ app:list
sudo -u www-data ./occ app:disable APP_ID
On ownCloud 11:
docker compose exec owncloud occ app:list
docker compose exec owncloud occ app:disable APP_ID
Caption: Disabling only the app implicated by logs is less disruptive than disabling many components or changing the full web stack.
The trade-off is functionality: users lose that app until it is updated or re-enabled. This is usually preferable to disabling core ownCloud services. The OCC documentation also notes that several core apps cannot be disabled, including DAV, FederatedFileSharing, Files, and Files_External. Review the official general troubleshooting guidance and the OCC command reference.
5. When are permissions worth fixing?
Permissions are a strong suspect when the log contains Permission denied, a recent deployment copied app/config files as the wrong user, or an upgrade replaced files with incorrect ownership. They are a weak suspect when the only evidence is a browser-side JavaScript error.
Ponga el sistema en modo de mantenimiento antes de realizar trabajos de reparación que puedan interrumpir el servicio. Para ownCloud 11:
docker compose exec owncloud occ maintenance:mode --on
Para una implementación tradicional de 10.x:
sudo -u www-data ./occ maintenance:mode --on
Leyenda: El modo de mantenimiento reduce la actividad del usuario mientras se investigan errores de propiedad o permisos de archivo que ya están respaldados por evidencia de registro.
No ejecute chmod 777recetas de permisos recursivas generales ni copie recetas de permisos de una versión no relacionada. El manual actual de ownCloud 11 documenta la propiedad y los modos específicos para los archivos agregados manualmente en los directorios montados appsen Docker config: propiedad www-data:root, archivos de la aplicación 0644, directorios de la aplicación 0751y archivos de configuración agregados 0644. También documenta los 0640cambios manuales . Utilice la documentación de actualización manual de ownCloud 11 como referencia específica de la versión..htaccess.user.ini
6. ¿Deberías cambiar los módulos de PHP, OPcache o la configuración de memoria?
Solo cuando los registros o las comprobaciones de compatibilidad apuntan a ello. Este método tiene un alcance mayor que deshabilitar una sola aplicación defectuosa. Una extensión PHP necesaria que falte puede impedir la ejecución del código, mientras que una configuración PHP incorrecta puede afectar a todas las aplicaciones PHP del servidor.
Para una pila PHP heredada administrada por el host, inspeccione lo que realmente carga el entorno de ejecución web:
php -m
php --ini
php -r 'phpinfo();' | grep opcache.enable
Leyenda: Las comprobaciones de módulos PHP y OPcache son útiles cuando los registros del servidor indican extensiones faltantes o incompatibilidad en tiempo de ejecución, pero no deberían ser el primer cambio sin evidencia.
Para ownCloud 11, la imagen oficial gestiona el entorno de ejecución de PHP, por lo que cambiar los paquetes PHP del host generalmente no es la solución. ownCloud documenta que OPcache está habilitado por defecto en su imagen Docker. Consulte la documentación de almacenamiento en caché de memoria de ownCloud .
Si sospecha que la caché de código de operación (OPcache) está obsoleta tras reemplazar manualmente archivos PHP en una instalación antigua, reiniciar PHP-FPM o el servicio web/PHP correspondiente puede borrar la caché de código de operación local del proceso. La desventaja es una breve interrupción y un rendimiento inferior al de la caché en frío posteriormente. Realice este procedimiento después de corregir los archivos subyacentes, no como sustituto de la identificación del error.
7. ¿Se interrumpió una actualización o los archivos principales son inconsistentes?
Si la página en blanco apareció durante o inmediatamente después de una actualización, primero verifique el estado de la misma. La documentación de actualización de ownCloud recomienda usar OCC para la actualización y reparación en lugar de manipular la base de datos manualmente.
Para ownCloud 11:
docker compose exec owncloud occ status
docker compose exec owncloud occ upgrade
docker compose exec owncloud occ maintenance:repair
docker compose exec owncloud occ integrity:check-core
Para ownCloud 10.x, utilice los comandos OCC equivalentes bajo el usuario del servidor web:
sudo -u www-data ./occ status
sudo -u www-data ./occ maintenance:repair
sudo -u www-data ./occ integrity:check-core
Leyenda: La reparación de OCC es apropiada para una actualización interrumpida o inconsistente, mientras que las comprobaciones de integridad pueden identificar archivos principales firmados modificados o faltantes.
Los resultados de integridad del código necesitan interpretación. ownCloud documenta INVALID_HASH, FILE_MISSINGy EXTRA_FILEcomo condiciones distintas. No edite signature.jsonpara hacer desaparecer las advertencias. La documentación actual de ownCloud 11 también hace que la firma de aplicaciones de terceros sea obligatoria para la instalación, las actualizaciones y la habilitación. Consulte la documentación de firma de código de ownCloud .
8. ¿Cómo se debe verificar la solución?
Una buena recuperación no se limita a que “la página ya no esté en blanco”. Verifique toda la ruta de la solicitud:
- La página principal de ownCloud devuelve el estado HTTP esperado en lugar de 500/502/503.
- Las herramientas para desarrolladores del navegador no muestran ningún error fatal recurrente de JavaScript ni la falta de paquetes principales.
- El registro de ownCloud no registra inmediatamente una nueva excepción fatal para la misma solicitud.
occ statusInforma de una instancia instalada y de que no hay necesidad de actualización inesperada.
- El modo de mantenimiento se desactiva una vez finalizado el mantenimiento.
- Un usuario de prueba puede iniciar sesión y abrir la página de Archivos.
Para ownCloud 11:
docker compose exec owncloud occ maintenance:mode --off
docker compose exec owncloud occ status
curl -I https://cloud.example.com/
Leyenda: La recuperación debe confirmarse en ambas capas: la interfaz de ownCloud se carga correctamente y el estado del servidor y las comprobaciones HTTP siguen funcionando correctamente.
¿Qué solución ofrece la mejor relación riesgo-beneficio?
| Evidencia que usted tiene | La mejor primera opción | Compensación |
| Solo un navegador muestra la página en blanco. | Ventana privada, segundo navegador compatible, consola del navegador | Riesgo mínimo; no soluciona un fallo real del servidor si todos los usuarios se ven afectados. |
| El documento principal es HTTP 500 | ownCloud, PHP/contenedor, servidor web y registros de base de datos | La ruta más rápida para llegar a la causa raíz; requiere acceso al registro de la consola o de la plataforma. |
| El error menciona una aplicación de terceros. | Deshabilita solo esa aplicación con OCC | Normalmente, el riesgo operativo es bajo, pero la funcionalidad de esa aplicación no está disponible temporalmente. |
| El problema comenzó inmediatamente después de la actualización. | Compruebe la matriz de versiones compatibles, el estado de actualización, la compatibilidad de la aplicación y la reparación de OCC. | Más controlado que la reversión; puede requerir una ventana de mantenimiento. |
| Los registros indican "Permiso denegado" después de copiar los archivos. | Corrija únicamente la propiedad/modos documentados para la versión afectada. | Preciso cuando existe evidencia; los cambios recursivos generales de permisos pueden crear problemas de seguridad y de actualización. |
| Informes de verificación de integridad del núcleo: archivos modificados o faltantes. | Restaure los archivos de la versión correcta o siga el procedimiento de actualización/restauración compatible. | Preserva la integridad; evita parchear manualmente muchos archivos principales en su lugar. |
| HTTP 200 pero JS/CSS falla | Navegador Red/Consola, rutas de proxy, recursos de tema/aplicación, caché | Evita cambios innecesarios en la base de datos/PHP; puede requerir acceso a la configuración del proxy. |
Qué no hacer cuando ownCloud muestra una pantalla en blanco
- No habilite PHP
display_errorsen un sitio de producción público solo para exponer los rastreos de pila al navegador; utilice los registros del servidor en su lugar.
- No establezca de forma recursiva permisos de escritura para todos los usuarios en todo el árbol de ownCloud.
- No degrade ownCloud mediante una reversión rápida a menos que esté restaurando una copia de seguridad compatible en un entorno compatible.
- No elimine aleatoriamente el directorio de datos, los datos de la aplicación, las tablas de la base de datos ni los directorios de caché.
- No desactive todas las aplicaciones a la vez cuando se puede aislar una aplicación específica.
- No edite los archivos de volcado firmados ni los utilice
signature.jsonsimplemente para suprimir errores de integridad.
¿Cuándo conviene intensificar los esfuerzos en lugar de seguir experimentando?
Deje de realizar cambios cuando los registros indiquen corrupción de la base de datos, problemas con la clave de cifrado, fallos repetidos de integridad del núcleo tras una restauración limpia o un estado de actualización que no pueda completarse con el flujo de trabajo OCC documentado. Asimismo, escale el problema cuando la página en blanco afecte a un clúster de producción y no pueda aislar un único nodo sin poner en riesgo la coherencia de los datos.
Antes de abrir un caso de soporte, ownCloud recomienda recopilar un informe de configuración y los registros relevantes. Para ownCloud 10.x, el comando documentado es:
sudo -u www-data ./occ configreport:generate > config_report.txt
Utilice el método de ejecución OCC correspondiente a su implementación y revise la salida en busca de información confidencial antes de compartirla fuera de su organización. La guía de recopilación de registros y configuración de ownCloud explica qué información suelen necesitar los ingenieros de soporte.
Referencias oficiales