Home
» Hoe
»
Verwijder de ownCloud Apache .htaccess-waarschuwing op een veilige manier.
Verwijder de ownCloud Apache .htaccess-waarschuwing op een veilige manier.
Voor een op Apache gehoste ownCloud Classic-installatie kunt u de waarschuwingen "AllowOverride All" of ".htaccess werkt niet" verhelpen door de juiste instellingen toe te voegen AllowOverride Allaan een overeenkomend Apache- <Directory>blok voor de webroot van ownCloud in de actieve virtuele host. Test de Apache-configuratie, herlaad de service en vernieuw het beheerdersoverzicht van ownCloud. Schakel geen overrides in voor het gehele bestandssysteem.
De overschrijving hoort thuis in het Apache-directoryblok dat overeenkomt met het bestandssysteempad van ownCloud.
Wat de waarschuwing betekent
De Apache- AllowOverriderichtlijn bepaalt welke instellingen een .htaccessbestand mag toepassen. Als overrides zijn uitgeschakeld voor de ownCloud-directory, kan Apache regels in het door ownCloud geleverde .htaccessbestand negeren. Dit kan gevolgen hebben voor herschrijvingen en beveiligingsregels, en daarom is dit opgenomen AllowOverride Allin het huidige installatievoorbeeld van Apache in de handleiding van ownCloud versie 10.16.
Deze instructie is alleen geldig binnen een Apache- <Directory>sectie. Hij hoort niet thuis in .htaccesseen <Location><script>-blok of een URL-pad. Apache waarschuwt beheerders er ook voor om geen overrides in het globale <Directory "/">blok in te schakelen; beperk de instelling in plaats daarvan tot de installatiemap van ownCloud. Zie de installatiehandleiding voor ownCloud 10.16 Apache en AllowOverridede referentie van Apache .
Voordat je Apache bewerkt
Controleer of de webserver die ownCloud beheert Apache is. Deze instructie configureert geen Nginx. Als Apache zich achter een proxy bevindt, achterhaal dan de Apache-host die de ownCloud-bestanden serveert.
Zoek het daadwerkelijke installatiepad van ownCloud, bijvoorbeeld /var/www/owncloud. Gebruik het bestandssysteempad dat Apache gebruikt, niet een URL in een browser zoals /owncloud.
Maak een back-up van het actieve virtual-host-bestand voordat u het wijzigt. Op Debian of Ubuntu gebruikt de handleiding van ownCloud /etc/apache2/sites-available/owncloud.confeen andere locatie; andere distributies gebruiken andere locaties.
Controleer of uw virtuele hosts voor HTTP en HTTPS gescheiden zijn. Stel de gewenste configuratie in op de virtuele host die ownCloud-verzoeken afhandelt; als beide virtuele hosts de bestanden rechtstreeks aanbieden, configureer ze dan consistent.
Op Debian of Ubuntu sudo apachectl -Sworden de virtuele hosts van Apache en de bijbehorende configuratiebestanden weergegeven. Dit voorkomt dat een ongebruikte standaardsite moet worden aangepast terwijl de HTTPS-vhost ownCloud blijft bedienen.
Voeg de instructie toe aan het bijbehorende mapblok.
Open het actieve vhost-bestand en zoek de bestaande ownCloud- <Directory>sectie. Voeg de regel daar toe of corrigeer deze. Voor een standaardinstallatie op /var/www/owncloudkan het betreffende gedeelte er als volgt uitzien:
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud/>
Options +FollowSymLinks -Indexes
AllowOverride All
Require all granted
</Directory>
Voeg de instelling samen met uw bestaande configuratie in plaats van de volledige vhost te vervangen door dit korte voorbeeld. Als uw ownCloud-directory zich elders bevindt, vervang dan beide paden door het daadwerkelijke pad. Apache vereist dat het directorypad overeenkomt met het bestandssysteempad dat het gebruikt voor de bestanden.
AllHiermee kan elke instructie in een .htaccessbestand de serverinstellingen in deze map overschrijven. Dat is een ruime machtiging, dus beperk dit blok tot de webroot van ownCloud. Wijzig dit niet AllowOverride Nonevoor /, /var/www, of andere ongerelateerde sites, alleen maar om de waarschuwing te onderdrukken.
Testen, herladen en verifiëren
Op Debian of Ubuntu documenteert ownCloud mod_rewritede benodigde informatie voor de Apache-configuratie. Als dit niet is ingeschakeld, kunt u het inschakelen met:
sudo a2enmod rewrite
Controleer vervolgens de configuratie voordat u deze toepast:
sudo apachectl -t
Ga alleen verder als Apache dit meldt Syntax OK. Herlaad Apache zodat het de bijgewerkte vhost leest:
sudo systemctl reload apache2
Gebruik op distributies die de httpdservicenaam gebruiken de configuratietest- en herlaadopdrachten van die distributie. Ga terug naar ownCloud's Instellingen > Beheer > Overzicht en vernieuw de pagina. De waarschuwing zou moeten verdwijnen als Apache de bewerkte vhost leest en ownCloud's configuratie verwerkt .htaccess.
Controleer of de rewrite-module van Apache is ingeschakeld als het rewrite-gedrag van ownCloud onderdeel is van de waarschuwing.Controleer de Apache-configuratie voordat u de service opnieuw laadt.Ga na het herladen terug naar het beheerdersoverzicht en controleer of de .htaccess-waarschuwing is verdwenen.
Als de waarschuwing blijft bestaan
Controleer de actieve vhost. Voer de test sudo apachectl -Sopnieuw uit en bevestig dat het gewijzigde bestand overeenkomt met de hostnaam en poort die door ownCloud worden gebruikt. Een AllowOverride Allregel in een niet-overeenkomend blok heeft geen effect.
Controleer het exacte pad en de sectie. Bevestig dat het blok een letterlijke <Directory /path/to/owncloud/>sectie is en dat het pad overeenkomt met de installatiemap. Apache negeert AllowOverridein .htaccessen <Location>.
Genereer verouderde ownCloud-regels alleen opnieuw wanneer dat nodig is. Als de vhost correct is, maar de herschrijfregels van ownCloud moeten worden bijgewerkt, raadpleeg dan de handleiding occ maintenance:update:htaccess. Voer het script uit vanuit de ownCloud-directory als de webservergebruiker, bijvoorbeeld sudo -u www-data php occ maintenance:update:htaccess. De webservergebruiker moet schrijfrechten hebben voor het opgegeven .htaccessbestand voor deze update. Maak het bestand niet voor iedereen beschrijfbaar; corrigeer het eigenaarschap of de machtigingen volgens de instructies van uw installatie.
Lees het Apache-foutlogboek na een 500-fout. Een syntaxcontrole valideert de hoofdconfiguratie van Apache, maar een instructie .htaccesskan nog steeds mislukken als de bijbehorende module ontbreekt of als de instructie niet is toegestaan. Gebruik het foutlogboek om de specifieke module of regel te identificeren.
De door ownCloud gedocumenteerde URL-configuratie zonder index.php vereist ook mod_rewrite, mod_env, en een beschrijfbare root .htaccess; dat is een gerelateerde herschrijfconfiguratie, geen reden om overrides uit te breiden buiten de eigen directory van ownCloud. Als uw configuratie PHP-FPM gebruikt, volg dan de huidige ownCloud-richtlijnen voor die installatie in plaats van PHP-handlers te wijzigen om een Apache-override-waarschuwing op te lossen. Als de waarschuwing aangeeft dat de datadirectory mogelijk openbaar toegankelijk is, controleer dan of de datadirectory zich buiten de webroot bevindt of ook wordt beschermd door een expliciete Apache-regel; het verwijderen van de .htaccesswaarschuwing alleen is geen bewijs dat privébestanden niet rechtstreeks kunnen worden opgevraagd.