Home
» Come fare
»
Elimina in modo sicuro l'avviso relativo al file .htaccess di ownCloud Apache
Elimina in modo sicuro l'avviso relativo al file .htaccess di ownCloud Apache
Per un'installazione di ownCloud Classic ospitata su Apache, risolvi l'avviso "AllowOverride All" o ".htaccess non funziona" impostando AllowOverride Allall'interno di un <Directory>blocco Apache corrispondente per la directory principale di ownCloud nell'host virtuale attivo. Verifica la configurazione di Apache, riavvia il servizio e aggiorna la panoramica di amministrazione di ownCloud. Non abilitare le sovrascritture per l'intero filesystem.
La sovrascrittura deve trovarsi nel blocco di directory di Apache che corrisponde al percorso del filesystem di ownCloud.
Cosa significa l'avvertimento
La direttiva Apache AllowOverridecontrolla quali impostazioni un .htaccessfile può applicare. Se le sovrascritture sono disabilitate per la directory ownCloud, Apache può ignorare le regole presenti nel .htaccessfile fornito da ownCloud. Ciò può influire sulle regole di riscrittura e di sicurezza, motivo per cui il manuale attuale di ownCloud 10.16 include AllowOverride Allun esempio di configurazione di Apache.
La direttiva è valida solo all'interno di una <Directory>sezione Apache. Non deve essere inserita all'interno .htaccessdi un <Location>blocco o di un percorso URL. Apache avverte inoltre gli amministratori di non abilitare le sovrascritture nel <Directory "/">blocco globale; è preferibile limitare l'impostazione alla directory di installazione di ownCloud. Consultare la guida all'installazione di Apache per ownCloud 10.16 e AllowOverridela documentazione di riferimento di Apache .
Prima di modificare Apache
Verifica che il server web che gestisce ownCloud sia Apache. Questa direttiva non configura Nginx. Se Apache si trova dietro un proxy, identifica l'host Apache che serve i file di ownCloud.
Trova il percorso di installazione effettivo di ownCloud, ad esempio /var/www/owncloud. Usa il percorso del filesystem fornito da Apache, non un URL del browser come /owncloud.
Eseguire un backup del file virtual-host attivo prima di modificarlo. Su Debian o Ubuntu, la guida di ownCloud utilizza /etc/apache2/sites-available/owncloud.conf; altre distribuzioni utilizzano posizioni diverse.
Verifica se i tuoi host virtuali HTTP e HTTPS sono separati. Imposta la configurazione nell'host virtuale che gestisce le richieste di ownCloud; se entrambi gli host virtuali gestiscono direttamente i file, configurali entrambi in modo coerente.
Su Debian o Ubuntu, sudo apachectl -Svengono elencati gli host virtuali di Apache e i file di configurazione che li definiscono. Questo aiuta a evitare di modificare un sito predefinito inutilizzato mentre l'host virtuale HTTPS continua a servire ownCloud.
Aggiungi la direttiva al blocco di directory corrispondente
Apri il file vhost attivo e individua la <Directory>sezione ownCloud esistente. Aggiungi o correggi la riga corrispondente. Per un'installazione standard su /var/www/owncloud, la parte rilevante potrebbe apparire così:
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud/>
Options +FollowSymLinks -Indexes
AllowOverride All
Require all granted
</Directory>
Integra questa impostazione nella tua configurazione esistente anziché sostituire l'intero vhost con questo breve esempio. Se la tua directory ownCloud si trova altrove, sostituisci entrambi i percorsi con il percorso effettivo. Apache richiede che il percorso della directory corrisponda al percorso del filesystem che utilizza per i file.
AllConsente a qualsiasi direttiva consentita in un .htaccessfile di sovrascrivere le impostazioni del server in questa directory. Si tratta di un'autorizzazione molto ampia, quindi è consigliabile limitare questo blocco alla directory principale del sito web ownCloud. Non modificare questa impostazione AllowOverride Noneper siti non correlati /, /var/wwwo altri siti non correlati, semplicemente per silenziare l'avviso.
Testare, ricaricare e verificare
Su Debian o Ubuntu, ownCloud documenta mod_rewritecome richiesto per la sua configurazione Apache. Se non è abilitato, abilitalo con:
sudo a2enmod rewrite
Quindi, verifica la configurazione prima di applicarla:
sudo apachectl -t
Proseguire solo se Apache segnala un errore Syntax OK. Riavviare Apache in modo che legga il vhost aggiornato:
sudo systemctl reload apache2
Sulle distribuzioni che utilizzano il nome del servizio, utilizzare invece i comandi configuration-test e reload di tale distribuzione. Tornare a Impostazioni > Amministrazione > Panoramicahttpd di ownCloud e aggiornare la pagina. L'avviso dovrebbe scomparire se Apache sta leggendo il vhost modificato ed elaborando il file di ownCloud ..htaccess
Se il comportamento di riscrittura di ownCloud è incluso nell'avviso, verifica che il modulo di riscrittura di Apache sia abilitato.Prima di riavviare il servizio, convalidare la configurazione di Apache.Dopo il ricaricamento, rivedi la Panoramica di amministrazione e verifica se l'avviso relativo al file .htaccess è scomparso.
Se l'avvertimento persiste
Verifica il vhost attivo. Esegui sudo apachectl -Snuovamente il comando e conferma che il file modificato appartenga all'hostname e alla porta utilizzati da ownCloud. Una AllowOverride Allriga in un blocco non corrispondente non ha alcun effetto.
Verifica il percorso e la sezione esatti. Conferma che il blocco sia una <Directory /path/to/owncloud/>sezione letterale e che il percorso corrisponda alla directory di installazione. Apache ignora AllowOverridein .htaccesse <Location>.
Rigenera le regole di ownCloud obsolete solo quando necessario. Se il vhost è corretto ma le regole di riscrittura di ownCloud necessitano di un aggiornamento, consulta la relativa documentazione occ maintenance:update:htaccess. Esegui il comando dalla directory di ownCloud come utente del server web, ad esempio sudo -u www-data php occ maintenance:update:htaccess. L'utente del server web deve disporre dei permessi di scrittura per il .htaccessfile fornito per questo aggiornamento. Non rendere il file scrivibile da tutti; correggi la proprietà o i permessi in base alle istruzioni della tua installazione.
Dopo un errore 500, consulta il log degli errori di Apache. Un controllo di sintassi convalida la configurazione principale di Apache, ma una direttiva .htaccesspuò comunque fallire se il modulo corrispondente è mancante o se la direttiva non è consentita. Utilizza il log degli errori per identificare il modulo o la regola specifica.
La configurazione URL senza index.php documentata da ownCloud richiede anche mod_rewrite, mod_env, e una directory radice scrivibile .htaccess; si tratta di una configurazione di riscrittura correlata, non di un motivo per estendere le sovrascritture oltre la directory di ownCloud. Se la tua configurazione utilizza PHP-FPM, segui le attuali linee guida di ownCloud per tale installazione anziché modificare i gestori PHP per risolvere un avviso di sovrascrittura di Apache. Se l'avviso indica che la directory dei dati potrebbe essere accessibile pubblicamente, verifica che la directory dei dati si trovi al di fuori della directory radice del sito web o che sia protetta anche da una regola Apache esplicita; la .htaccesssola rimozione dell'avviso non è una prova che i file privati non possano essere richiesti direttamente.