Accueil
» ADMINISTRATEUR RÉSEAU
»
Corrigez en toute sécurité l'avertissement « allowOverride All » d'ownCloud Apache
Corrigez en toute sécurité l'avertissement « allowOverride All » d'ownCloud Apache
Si ownCloud signale qu'un paramètre Apache AllowOverride Allest manquant, ajoutez-le au <Directory>bloc Apache correspondant à votre chemin d'installation ownCloud, testez la configuration, puis rechargez Apache. Sur une installation Debian ou Ubuntu standard, ce paramètre se trouve dans l'hôte virtuel ownCloud actif ou dans le bloc de configuration Apache correspondant. N'activez pas les substitutions pour l'ensemble du serveur afin de corriger un seul avertissement.
Dans ownCloud Server (Classic), Apache doit être autorisé à lire les règles d'installation .htaccess. Ces règles prennent en charge la réécriture d'URL et contribuent à protéger les chemins sensibles. Une règle manquante ou inefficace peut donc affecter la qualité des URL et le contrôle de sécurité du répertoire de données. Ce guide s'applique à ownCloud Server utilisant Apache HTTP Server ; il ne s'applique pas à Nginx, à ownCloud Infinite Scale ni aux configurations d'hébergement où la configuration d'Apache est gérée par le fournisseur.
Référence rapide
Objectif
Vérifier ou paramétrer
Autoriser les règles par répertoire d'ownCloud
AllowOverride Alldans le <Directory>bloc correspondant
Vérifiez qu'Apache peut analyser la modification.
sudo apachectl -tdevrait signalerSyntax OK
Activer la configuration
sudo systemctl reload apache2sur Debian ou Ubuntu
Vérifier les URL propres
Assurez-vous que cette option mod_rewriteest activée si votre configuration le nécessite.
Vérifiez que l'avertissement a disparu.
Rechargez la vue d'ensemble de l'administration d'ownCloud après avoir testé l'URL concernée.
Que signifie cet avertissement ?
La directive Apache AllowOverridedétermine si les directives des .htaccessfichiers sont autorisées à affecter les requêtes. Apache ne prend en compte que les directives AllowOverridesituées dans une <Directory>section ; placer la ligne au niveau supérieur d'un hôte virtuel ou dans un bloc non pertinent ne l'activera pas pour les fichiers ownCloud. Une <Directory>règle plus générale, une règle plus spécifique ou un autre hôte virtuel activé peuvent également signifier que le paramètre que vous avez modifié n'est pas celui qui traite la requête.
Les instructions d'installation actuelles d'ownCloud Server 10.16 indiquent, AllowOverride Alldans le bloc relatif au répertoire racine d'ownCloud, que l'autorisation « All » permet de remplacer les classes prises en charge par les modules Apache dans cette portée. Il est recommandé de limiter cette autorisation au répertoire ownCloud plutôt que de modifier la politique globale du système de fichiers d'Apache. Le manuel Apache décrit également la AllowOverrideListprocédure à suivre pour les administrateurs souhaitant autoriser uniquement certaines directives, mais une liste restreinte nécessite des tests de compatibilité rigoureux avec la version d'ownCloud et ses .htaccessrègles par défaut.
Un exemple d'hôte virtuel place AllowOverride Allà l'intérieur du bloc de répertoire pour /var/www/owncloud.
Avant de changer Apache
Vérifiez que le produit est bien ownCloud Server (Classic) et identifiez le chemin d'accès exact à sa racine web. Une URL de ce type /cloudpeut rediriger, via un serveur Apache, Aliasvers un autre répertoire sur le disque.
Trouvez l'hôte virtuel actif et son fichier de configuration. Sous Debian ou Ubuntu, ces emplacements se trouvent généralement dans `/var/log/` /etc/apache2/sites-available/et /etc/apache2/apache2.conf`/var/log/`. Sous les systèmes de la famille RHEL, la configuration d'Apache se trouve généralement dans `/var/log/` /etc/httpd/. Les panneaux d'hébergement et les conteneurs peuvent utiliser d'autres chemins.
Sauvegardez le fichier avant de le modifier et conservez toutes les directives TLS, proxy, de contrôle d'accès et ownCloud existantes.
Vérifiez si une autre AllowOverride Nonerègle de répertoire s'applique au même chemin. Ne modifiez pas un fichier de site par défaut qui n'est pas activé pour le nom d'hôte ownCloud.
Dépannage d'un serveur Apache autogéré
1. Modifier la configuration active
Sous Debian ou Ubuntu, ouvrez l'hôte virtuel qui héberge le nom d'hôte ownCloud, par exemple :
Dans ce fichier, recherchez ou ajoutez une <Directory>section correspondant au répertoire d'installation d'ownCloud. Cet exemple minimal illustre l'emplacement correct ; conservez les directives supplémentaires déjà requises par votre serveur :
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
Remplacez `<chemin_vers_ownCloud> /var/www/owncloud/` par votre chemin réel. Si Apache associe une URL à ` Alias<chemin_vers_ownCloud>`, configurez le répertoire du système de fichiers contenant les fichiers ownCloud, et non pas simplement le chemin de l'URL. Le guide d'installation d'Apache d'ownCloud contient des notes de configuration supplémentaires ; utilisez l'exemple correspondant à votre version d'ownCloud et à votre configuration PHP.
2. Vérifiez les modules et la syntaxe
Pour des URL propres sans index.phpdocumentation ownCloud, mod_rewriteconsultez mod_envles prérequis. Sous Debian ou Ubuntu, activez le module de réécriture s'il n'est pas déjà actif :
sudo a2enmod rewrite
sudo apachectl -t
Le test de configuration doit se terminer par un point Syntax OK. En cas d'erreur, corrigez-la avant de recharger. Une vérification syntaxique réussie prouve qu'Apache peut analyser sa configuration ; elle ne prouve pas que l'hôte virtuel correct est actif ni que le processus en cours d'exécution a chargé le fichier modifié.
Le test de configuration Apache devrait renvoyer un résultat Syntax OKavant que vous ne rechargiez le service.
3. Rechargez Apache et testez ownCloud
Sous Debian ou Ubuntu, rechargez Apache une fois la vérification de la syntaxe réussie :
sudo systemctl reload apache2
Pour les systèmes de la famille RHEL, le service est généralement nommé `service` httpd, utilisez donc le nom de service correspondant et la commande `configuration-test` de votre distribution. Ne copiez pas les commandes spécifiques à Debian sur un autre système sans avoir vérifié son organisation des services.
Ouvrez le nom d'hôte ownCloud dans un navigateur et testez une page qui nécessitait auparavant une réécriture. Si le serveur utilise un préfixe de chemin tel que `/var/log/ /cloudowncloud`, testez également l'URL préfixée. Une boucle de redirection, une réponse 403 ou une erreur Apache 500 indiquent que la configuration nécessite encore une investigation ; consultez les journaux d'erreurs Apache et ownCloud plutôt que de modifier sans cesse des directives sans rapport avec le problème.
N'activez cette fonction mod_rewritequ'en cas de besoin, puis rechargez le service Apache après une vérification syntaxique réussie.
Si l'avertissement persiste
Symptôme
Prochaine vérification
L'avertissement reste affiché après le rechargement.
Vérifiez que l'hôte virtuel modifié est activé et qu'il sert bien le nom d'hôte ; inspectez apachectl -Set vérifiez la présence d'une règle de répertoire de niveau inférieur ou plus spécifique.
Les URL propres incluent toujoursindex.php
Vérifiez que cette mod_rewriteoption est activée, que le répertoire ownCloud dispose de l'autorisation de remplacement prévue et que la base de réécriture d'ownCloud correspond à son chemin d'URL.
La page d'administration indique que le répertoire de données peut être accessible au public.
Vérifiez que le répertoire de données se trouve en dehors du répertoire racine du site web, si possible. Sinon, assurez-vous que le répertoire de données fourni .htaccessexiste, qu'il est accessible en lecture et qu'il est pris en charge par Apache ; la suppression de l'avertissement ne remplace pas la protection du répertoire.
Apache renvoie une erreur 500 ou signale « non autorisé ici ».
Consultez le journal des erreurs Apache. Une directive .htaccesspeut ne pas être autorisée par les classes de remplacement actives, ou un module requis peut être indisponible.
Exécution dans un conteneur ou sur un hôte géré
Consultez la configuration Apache documentée de l'image ou le panneau de contrôle du fournisseur. Un fichier Apache au niveau de l'hôte ne correspond pas forcément au serveur qui traite les requêtes.
Si ownCloud signale que son .htaccessfichier ne peut pas être mis à jour, vérifiez les droits d'accès et de propriété en vous référant aux recommandations de mise à niveau et de renforcement de la sécurité d'ownCloud avant de les modifier. Évitez de rendre l'ensemble de l'installation accessible en écriture par le serveur web par commodité. La documentation d'ownCloud précise que les détails de configuration varient selon l'installation et que PHP-FPM n'utilise pas les paramètres PHP du .htaccessrépertoire `/etc/php/php` ; ces paramètres doivent être définis dans `/etc/php/ .user.iniphp/php`. Cette distinction PHP ne dispense pas Apache de traiter les règles de réécriture et d'accès d'ownCloud.
Liste de vérification
Le <Directory>chemin d'accès correspond exactement aux fichiers ownCloud sur le disque.
Le bloc correspondant contient AllowOverride All, et aucune règle conflictuelle active ne prévaut.
sudo apachectl -tretours Syntax OK.
Apache a été rechargé avec le nom de service correct.
La page de connexion ownCloud et une URL précédemment affectée se chargent comme prévu via HTTPS.
L'aperçu de l'administration n'affiche plus le même avertissement après actualisation, et le répertoire de données reste inaccessible depuis le web public.
Voici un exemple de page de connexion ownCloud à l'adresse d'hôte configurée ; veuillez vérifier l'état d'avertissement réel dans votre aperçu d'administration.