Inicio
» ADMINISTRADOR DE RED
»
Solucione de forma segura la advertencia de ownCloud Apache AllowOverride All.
Solucione de forma segura la advertencia de ownCloud Apache AllowOverride All.
Si ownCloud indica que falta la configuración de Apache AllowOverride All, agréguela al <Directory>bloque de Apache que coincida con la ruta de instalación de ownCloud, pruebe la configuración y reinicie Apache. En una instalación típica de Debian o Ubuntu, la configuración debe estar en el host virtual activo de ownCloud o en el bloque de directorio correspondiente en la configuración de Apache. No habilite anulaciones en todo el servidor solo para solucionar una advertencia.
En ownCloud Server (Classic), es necesario permitir que Apache lea las .htaccessreglas de la instalación. Estas reglas admiten la reescritura de URL y ayudan a proteger las rutas confidenciales. Por lo tanto, una regla faltante o ineficaz puede afectar tanto a las URL amigables como a la verificación de seguridad del directorio de datos. Esta guía se aplica a ownCloud Server con Apache HTTP Server; no se aplica a Nginx, ownCloud Infinite Scale ni a configuraciones de alojamiento donde la configuración de Apache la controla un proveedor.
Referencia rápida
Meta
Comprobar o configurar
Permitir las reglas por directorio de ownCloud
AllowOverride Allen el <Directory>bloque correspondiente
Confirma que Apache puede analizar el cambio.
sudo apachectl -tdebería informarSyntax OK
Activar la configuración
sudo systemctl reload apache2en Debian o Ubuntu
Verificar URL limpias
Asegúrese de mod_rewriteque esté habilitado si su configuración lo requiere.
Confirma que la advertencia ha desaparecido.
Recargue la vista general de administración de ownCloud después de probar la URL afectada.
Qué significa la advertencia
La directiva de Apache AllowOverridedetermina si las directivas en .htaccesslos archivos pueden afectar las solicitudes. Apache solo las respeta AllowOverridedentro de una <Directory>sección; colocar la línea en el nivel superior de un host virtual o en un bloque no relacionado no la habilitará para los archivos de ownCloud. Una <Directory>regla más general, una regla más específica u otro host virtual habilitado también pueden significar que la configuración que editaste no sea la que procesa la solicitud.
La guía de instalación actual de ownCloud Server 10.16 muestra AllowOverride Allen el bloque de directorio para la raíz del documento de ownCloud. "All" permite las clases de anulación compatibles con los módulos de Apache en ese ámbito. Mantenga este permiso limitado al directorio de ownCloud, en lugar de modificar la política global del sistema de archivos de Apache. El manual de Apache también describe AllowOverrideListcómo permitir directivas específicas solo a los administradores, pero una lista reducida requiere pruebas de compatibilidad exhaustivas con la versión de ownCloud y sus .htaccessreglas incluidas.
Un ejemplo de host virtual se coloca AllowOverride Alldentro del bloque de directorio para /var/www/owncloud.
Antes de cambiar Apache
Confirme que el producto es ownCloud Server (Classic) e identifique la ruta exacta del sistema de archivos de su directorio raíz web. Una URL como esta /cloudpuede asignarse a través de Apache Aliasa un directorio diferente en el disco.
Encuentre el host virtual activo y el archivo de configuración. En Debian o Ubuntu, las ubicaciones comunes incluyen /etc/apache2/sites-available/y /etc/apache2/apache2.conf. En los sistemas de la familia RHEL, la configuración de Apache generalmente se encuentra debajo de /etc/httpd/. Los paneles de alojamiento y los contenedores pueden usar otras rutas.
Realice una copia de seguridad del archivo antes de editarlo y conserve cualquier directiva existente de TLS, proxy, control de acceso y ownCloud.
Compruebe si AllowOverride Nonese aplica alguna otra regla de directorio a la misma ruta. No edite un archivo de sitio predeterminado que no esté habilitado para el nombre de host de ownCloud.
Reparar un servidor Apache autogestionado
1. Edite la configuración activa.
En Debian o Ubuntu, abra el host virtual que sirve el nombre de host de ownCloud, por ejemplo:
Dentro de ese archivo, busque o agregue una <Directory>sección para el directorio de instalación real de ownCloud. Este ejemplo mínimo muestra la ubicación relevante; conserve cualquier directiva adicional que ya requiera su servidor:
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
Sustituye /var/www/owncloud/con tu ruta real. Si Apache asigna una URL con Alias, configura el directorio del sistema de archivos que contiene los archivos de ownCloud, no solo la ruta de la URL. La guía de instalación de Apache de ownCloud incluye notas de configuración adicionales; usa el ejemplo que coincida con tu versión de ownCloud y tu configuración de PHP.
2. Comprobar módulos y sintaxis
Para URL limpias sin index.php, ownCloud documenta mod_rewritey mod_envcomo requisitos previos. En Debian o Ubuntu, habilite el módulo de reescritura si aún no está activo:
sudo a2enmod rewrite
sudo apachectl -t
La prueba de configuración debe finalizar con Syntax OK. Si informa de un error, corríjalo antes de recargar. Una comprobación de sintaxis exitosa demuestra que Apache puede analizar su configuración; no demuestra que el host virtual correcto esté activo ni que el proceso en ejecución haya cargado el archivo editado.
La prueba de configuración de Apache debería devolver un resultado Syntax OKantes de recargar el servicio.
3. Reinicie Apache y pruebe ownCloud.
En Debian o Ubuntu, reinicie Apache después de que la comprobación de sintaxis sea exitosa:
sudo systemctl reload apache2
En los sistemas de la familia RHEL, el servicio se denomina comúnmente httpd, así que utilice el nombre de servicio correspondiente y el comando configuration-test de la distribución. No copie comandos específicos de Debian a otro sistema sin confirmar su estructura de servicios.
Abre el nombre de host de ownCloud en un navegador y prueba una página que antes necesitaba ser reescrita. Si el servidor usa un prefijo de ruta como /cloud, prueba también la URL con prefijo. Un bucle de redireccionamiento, una respuesta 403 o un error 500 de Apache indican que la configuración aún necesita ser revisada; consulta el registro de errores de Apache y el registro de ownCloud en lugar de modificar repetidamente directivas irrelevantes.
Habilítelo mod_rewritesolo cuando sea necesario y, a continuación, recargue el servicio Apache tras una comprobación de sintaxis correcta.
Si la advertencia permanece
Síntoma
Siguiente comprobación
La advertencia permanece después de recargar.
Confirme que el host virtual editado esté habilitado y sirva al nombre de host; inspeccione apachectl -Sy verifique si existe alguna regla de directorio de nivel inferior o más específica.
Las URL limpias aún incluyenindex.php
Verifique que mod_rewriteesté habilitado, que el directorio ownCloud tenga el permiso de anulación previsto y que la base de reescritura de ownCloud coincida con su ruta URL.
La página de administración indica que el directorio de datos puede ser accesible públicamente.
Verifique que el directorio de datos se encuentre fuera del directorio raíz del servidor web, si es posible. De lo contrario, confirme que el directorio de datos proporcionado .htaccessexiste, es legible y Apache lo respeta; no considere que borrar la advertencia sustituye la protección del directorio.
Apache devuelve 500 o informa "no permitido aquí".
Lea el registro de errores de Apache. Es posible que una directiva .htaccessno esté permitida por las clases de anulación activas, o que un módulo necesario no esté disponible.
Ejecutándose en un contenedor o host administrado.
Inspeccione la configuración de Apache documentada en la imagen o el panel de control del proveedor. Un archivo de Apache a nivel de host puede no ser el servidor que gestiona las solicitudes.
Si ownCloud informa que su .htaccessarchivo no se puede actualizar, verifique la propiedad y los permisos de escritura con las directrices de actualización y seguridad de ownCloud antes de modificarlos. Evite que el servidor web otorgue permisos de escritura a toda la instalación como atajo. La documentación de ownCloud indica que los detalles de configuración varían según la instalación y que PHP-FPM no utiliza la configuración de PHP de .htaccess; la configuración para ese caso pertenece a .user.ini. Esta distinción de PHP no reemplaza la necesidad de Apache de procesar las reglas de reescritura y acceso de ownCloud.
Lista de verificación
La <Directory>ruta coincide exactamente con los archivos de ownCloud en el disco.
El bloque coincidente contiene AllowOverride All, y ninguna regla conflictiva activa tiene prioridad.
sudo apachectl -tdevoluciones Syntax OK.
Apache se ha reiniciado utilizando el nombre de servicio correcto.
La página de inicio de sesión de ownCloud y una URL que anteriormente se veía afectada se cargan a través de HTTPS como se esperaba.
La vista general de administración ya no muestra la misma advertencia después de actualizar la página, y el directorio de datos sigue siendo inaccesible desde la web pública.
Ejemplo de página de inicio de sesión de ownCloud en el nombre de host configurado; confirme el estado de la advertencia en su propia vista general de administración.