Accueil
» Comment faire
»
Supprimer en toute sécurité l'avertissement relatif au fichier .htaccess d'ownCloud Apache
Supprimer en toute sécurité l'avertissement relatif au fichier .htaccess d'ownCloud Apache
Pour une installation ownCloud Classic hébergée sur Apache, corrigez l'avertissement « AllowOverride All » ou « .htaccess ne fonctionne pas » en configurant AllowOverride Allun bloc Apache correspondant <Directory>pour la racine web d'ownCloud dans l'hôte virtuel actif. Testez la configuration Apache, rechargez le service et actualisez la vue d'ensemble de l'administration d'ownCloud. N'autorisez pas les substitutions pour l'ensemble du système de fichiers.
La modification doit être effectuée dans le bloc de répertoire Apache qui correspond au chemin du système de fichiers d'ownCloud.
Que signifie cet avertissement ?
La directive Apache AllowOverridedétermine les paramètres qu'un .htaccessfichier peut appliquer. Si les substitutions sont désactivées pour le répertoire ownCloud, Apache peut ignorer les règles du fichier fourni par ownCloud .htaccess. Cela peut affecter les règles de réécriture et de sécurité, raison pour laquelle le manuel d'ownCloud 10.16 inclut cette directive AllowOverride Alldans son exemple de configuration Apache.
Cette directive est valide uniquement dans une <Directory>section Apache. Elle ne doit pas être utilisée à l'intérieur d' un bloc .htaccess`<script>`, d'un <Location>bloc `<script>` ou d'un chemin d'URL. Apache recommande également aux administrateurs de ne pas autoriser les substitutions dans le bloc `<script>` global<Directory "/"> ; il est préférable de limiter la portée de ce paramètre au répertoire d'installation d'ownCloud. Consultez le guide d'installation d'ownCloud 10.16 pour Apache et AllowOverridela documentation de référence d'Apache .
Avant de modifier Apache
Vérifiez que le serveur web gérant ownCloud est Apache. Cette directive ne configure pas Nginx. Si Apache est placé derrière un proxy, identifiez l'hôte Apache qui sert les fichiers ownCloud.
Trouvez le chemin d'installation réel d'ownCloud, par exemple : /var/www/owncloud. Utilisez le chemin du système de fichiers servi par Apache, et non une URL de navigateur comme /owncloud.
Sauvegardez le fichier de configuration de l'hôte virtuel actif avant de le modifier. Sous Debian ou Ubuntu, le guide d'ownCloud utilise cet /etc/apache2/sites-available/owncloud.confemplacement ; d'autres distributions utilisent des emplacements différents.
Vérifiez que vos hôtes virtuels HTTP et HTTPS sont bien distincts. Configurez l'hôte virtuel qui traite les requêtes ownCloud ; si les deux hôtes virtuels servent directement les fichiers, configurez-les de manière cohérente.
Sous Debian ou Ubuntu, sudo apachectl -Scette commande liste les hôtes virtuels d'Apache et les fichiers de configuration qui les définissent. Cela permet d'éviter de modifier un site par défaut inutilisé pendant que l'hôte virtuel HTTPS continue de servir ownCloud.
Ajoutez la directive au bloc de répertoire correspondant
Ouvrez le fichier vhost actif et repérez la <Directory>section ownCloud existante. Ajoutez ou corrigez la ligne correspondante. Pour une installation standard /var/www/owncloud, la partie concernée peut ressembler à ceci :
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud/>
Options +FollowSymLinks -Indexes
AllowOverride All
Require all granted
</Directory>
Intégrez ce paramètre à votre configuration existante au lieu de remplacer l'intégralité du vhost par cet exemple succinct. Si votre répertoire ownCloud se trouve ailleurs, remplacez les deux chemins par le chemin réel. Apache exige que le chemin du répertoire corresponde au chemin du système de fichiers utilisé pour les fichiers.
AllAutorise toute directive autorisée dans un .htaccessfichier à remplacer les paramètres du serveur dans ce répertoire. Il s'agit d'une autorisation générale ; limitez donc ce blocage à la racine web d'ownCloud. Ne modifiez pas cette autorisation AllowOverride Nonepour les sites `/etc/owncloud` /, ` /var/www/etc/owncloud` ou des sites non liés simplement pour faire disparaître l'avertissement.
Tester, recharger et vérifier
Sous Debian ou Ubuntu, ownCloud fournit la documentation mod_rewritenécessaire à la configuration d'Apache. Si ce dernier n'est pas activé, activez-le avec :
sudo a2enmod rewrite
Vérifiez ensuite la configuration avant de l'appliquer :
sudo apachectl -t
Ne poursuivez que si Apache signale une erreur Syntax OK. Rechargez Apache pour qu'il prenne en compte le vhost mis à jour :
sudo systemctl reload apache2
Sur les distributions utilisant ce httpdnom de service, utilisez plutôt les commandes `configuration-test` et `reload` de cette distribution. Retournez dans les paramètres d'ownCloud : ` Paramètres > Administration > Vue d'ensemble` et actualisez la page. L'avertissement devrait disparaître si Apache lit le vhost modifié et traite les données d'ownCloud .htaccess.
Vérifiez que le module de réécriture d'Apache est activé lorsque le comportement de réécriture d'ownCloud fait partie de l'avertissement.Validez la configuration Apache avant de recharger le service.Après le rechargement, retournez dans la vue d'ensemble de l'administration et vérifiez si l'avertissement concernant le fichier .htaccess a disparu.
Si l'avertissement persiste
Vérifiez l'hôte virtuel actif. Relancez la commande sudo apachectl -Set assurez-vous que le fichier modifié correspond bien au nom d'hôte et au port utilisés par ownCloud. Une AllowOverride Allligne située dans un bloc non correspondant est sans effet.
Vérifiez le chemin et la section exacts. Assurez-vous que le bloc correspond bien à une <Directory /path/to/owncloud/>section et que le chemin correspond au répertoire d'installation. Apache ignore AllowOverrideles fichiers `<section> ` .htaccesset ` <chemin> <Location>`.
Régénérez les règles ownCloud obsolètes uniquement en cas de besoin. Si le vhost est correct mais que les règles de réécriture d'ownCloud nécessitent une mise à jour, consultez la documentation occ maintenance:update:htaccess. Exécutez la commande depuis le répertoire ownCloud en tant qu'utilisateur du serveur web, par exemple : ` owncloud -m` sudo -u www-data php occ maintenance:update:htaccess. Cet utilisateur doit disposer des droits d'écriture sur le .htaccessfichier fourni pour cette mise à jour. Ne rendez pas le fichier accessible en écriture à tous ; corrigez son propriétaire et ses permissions conformément aux instructions de votre installation.
Consultez le journal d'erreurs d'Apache après une erreur 500. Bien qu'une vérification de syntaxe valide la configuration principale d'Apache, une directive .htaccesspeut échouer si son module est manquant ou si elle n'est pas autorisée. Utilisez le journal d'erreurs pour identifier le module ou la règle concernée.
La configuration d'URL sans `index.php` documentée par ownCloud requiert également un répertoire racine accessible en écrituremod_rewrite ; il s'agit d'une configuration de réécriture connexe, et non d'une raison d'étendre les règles de réécriture au-delà du répertoire d'ownCloud. Si votre installation utilise PHP-FPM, suivez les recommandations ownCloud actuelles pour cette installation plutôt que de modifier les gestionnaires PHP pour résoudre un avertissement de surcharge Apache. Si l'avertissement indique que le répertoire de données est potentiellement accessible publiquement, vérifiez qu'il se trouve bien en dehors du répertoire racine web ou qu'il est protégé par une règle Apache explicite ; la disparition de l' avertissement ne garantit pas à elle seule que les fichiers privés ne peuvent pas être demandés directement.mod_env.htaccess.htaccess