Risolvi in modo sicuro l'avviso di ownCloud Apache AllowOverride All
Se ownCloud segnala che l'impostazione di Apache AllowOverride Allè mancante, aggiungila al <Directory>blocco di Apache corrispondente al percorso di installazione di ownCloud, verifica la configurazione e riavvia Apache. In una tipica installazione Debian o Ubuntu, l'impostazione si trova nell'host virtuale attivo di ownCloud o nel blocco di directory corrispondente nella configurazione di Apache. Non abilitare le sovrascritture sull'intero server solo per eliminare un avviso.
In ownCloud Server (Classic), è necessario consentire ad Apache di leggere le .htaccessregole di installazione. Tali regole supportano la riscrittura degli URL e contribuiscono a proteggere i percorsi sensibili. Una regola mancante o inefficace può quindi influire sia sugli URL puliti sia sul controllo di sicurezza della directory dei dati. Questa guida si applica a ownCloud Server che utilizza Apache HTTP Server; non si applica a Nginx, ownCloud Infinite Scale o a configurazioni di hosting in cui la configurazione di Apache è gestita da un provider.
Riferimento rapido
Obiettivo
Verifica o impostazione
Consenti le regole di ownCloud per singola directory
Conferma che Apache sia in grado di analizzare la modifica
sudo apachectl -tdovrebbe segnalareSyntax OK
Attiva la configurazione
sudo systemctl reload apache2su Debian o Ubuntu
Verifica URL puliti
Assicurati mod_rewriteche sia abilitato se la tua configurazione lo richiede
Conferma che l'avviso è scomparso
Dopo aver testato l'URL interessato, ricarica la panoramica di amministrazione di ownCloud.
Cosa significa l'avvertimento
La direttiva di Apache AllowOverridedecide se le direttive nei .htaccessfile possono influenzare le richieste. Apache rispetta solo le direttive AllowOverrideall'interno di una <Directory>sezione; posizionare la riga al livello superiore di un virtual host o in un blocco non correlato non la abiliterà per i file di ownCloud. Una <Directory>regola più ampia, una regola più specifica o un altro virtual host abilitato potrebbero anche significare che l'impostazione che hai modificato non è quella che gestisce la richiesta.
Le attuali istruzioni di installazione di ownCloud su Server 10.16 mostrano AllowOverride Allil blocco di directory per la directory radice di ownCloud. L'autorizzazione "All" consente le classi di override supportate dai moduli Apache in tale ambito. È consigliabile limitare tale autorizzazione alla directory di ownCloud, anziché modificare la policy globale del filesystem di Apache. Il manuale di Apache descrive anche AllowOverrideListle procedure per gli amministratori che desiderano consentire solo direttive specifiche, ma un elenco ristretto richiede un'attenta verifica della compatibilità con la versione di ownCloud e le relative .htaccessregole.
Un esempio di host virtuale si trova AllowOverride Allall'interno del blocco di directory per /var/www/owncloud.
Prima di modificare Apache
Conferma che il prodotto sia ownCloud Server (Classic) e identifica il percorso esatto del file system della sua directory radice web. Un URL come /cloudpotrebbe essere mappato tramite Apache Aliasa una directory su disco diversa.
Individua l'host virtuale attivo e il file di configurazione. Su Debian o Ubuntu, le posizioni comuni includono /etc/apache2/sites-available/e /etc/apache2/apache2.conf. Sui sistemi della famiglia RHEL, la configurazione di Apache si trova solitamente in /etc/httpd/. I pannelli di hosting e i container possono utilizzare altri percorsi.
Esegui un backup del file prima di modificarlo e conserva tutte le direttive TLS, proxy, di controllo degli accessi e ownCloud esistenti.
Verifica se un'altra AllowOverride Noneregola o regola di directory si applica allo stesso percorso. Non modificare un file di sito predefinito non abilitato per l'hostname di ownCloud.
Risolvere i problemi di un server Apache autogestito
1. Modifica la configurazione attiva
Su Debian o Ubuntu, apri l'host virtuale che gestisce il nome host di ownCloud, ad esempio:
All'interno di quel file, individua o aggiungi una <Directory>sezione per la directory di installazione effettiva di ownCloud. Questo esempio minimo mostra il posizionamento corretto; mantieni tutte le direttive aggiuntive già richieste dal tuo server:
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
Sostituisci /var/www/owncloud/con il tuo percorso reale. Se Apache mappa un URL con Alias, configura la directory del filesystem che contiene i file di ownCloud, non solo il percorso URL. La guida all'installazione di Apache di ownCloud include ulteriori note di configurazione; usa l'esempio che corrisponde alla tua versione di ownCloud e alla tua configurazione PHP.
2. Verifica moduli e sintassi
Per URL puliti senza index.php, documenti ownCloud mod_rewritee mod_envcome prerequisiti. Su Debian o Ubuntu, abilita il modulo rewrite se non è già attivo:
sudo a2enmod rewrite
sudo apachectl -t
Il test di configurazione dovrebbe terminare con Syntax OK. Se segnala un errore, correggilo prima di ricaricare. Un controllo di sintassi riuscito dimostra che Apache è in grado di analizzare la sua configurazione; non dimostra che l'host virtuale corretto sia attivo o che il processo in esecuzione abbia caricato il file modificato.
Il test di configurazione di Apache dovrebbe restituire un risultato Syntax OKprima di ricaricare il servizio.
3. Riavvia Apache e testa ownCloud
Su Debian o Ubuntu, riavvia Apache dopo che il controllo della sintassi ha esito positivo:
sudo systemctl reload apache2
Nei sistemi della famiglia RHEL, il servizio è comunemente denominato httpd, quindi utilizzare il nome del servizio corrispondente e il comando configuration-test della distribuzione. Non copiare comandi specifici di Debian su un altro sistema senza averne verificato la struttura dei servizi.
Apri l'hostname di ownCloud in un browser e prova una pagina che in precedenza necessitava di essere riscritta. Se il server utilizza un prefisso di percorso come /cloud, prova anche l'URL con il prefisso. Un loop di reindirizzamento, una risposta 403 o un errore Apache 500 indicano che la configurazione necessita ancora di essere analizzata; controlla il log degli errori di Apache e il log di ownCloud anziché modificare ripetutamente direttive non correlate.
Abilitalo mod_rewritesolo quando necessario, quindi ricarica il servizio Apache dopo un controllo della sintassi riuscito.
Se l'avvertimento persiste
Sintomo
Prossimo controllo
L'avviso rimane visibile anche dopo il ricaricamento.
Verificare che l'host virtuale modificato sia abilitato e che gestisca il nome host; ispezionare apachectl -Se controllare la presenza di una regola di directory di livello inferiore o più specifica.
Gli URL puliti includono ancoraindex.php
Verifica che mod_rewritesia abilitato, che la directory ownCloud abbia l'autorizzazione di override desiderata e che la base di riscrittura di ownCloud corrisponda al suo percorso URL.
Nella pagina di amministrazione si afferma che la directory dei dati potrebbe essere accessibile pubblicamente.
Se possibile, verifica che la directory dei dati si trovi al di fuori della directory principale del server web. In caso contrario, conferma che la directory dei dati fornita .htaccessesista, sia leggibile e venga rispettata da Apache; non considerare la rimozione dell'avviso come un sostituto per la protezione della directory.
Apache restituisce 500 o segnala "accesso non consentito qui".
Leggi il registro degli errori di Apache. Una direttiva .htaccesspotrebbe non essere consentita dalle classi di override attive oppure un modulo richiesto potrebbe non essere disponibile.
Esecuzione in un container o host gestito
Esamina la documentazione di configurazione di Apache dell'immagine o il pannello di controllo del provider. Il file di configurazione di Apache a livello di host potrebbe non corrispondere al server che gestisce le richieste.
Se ownCloud segnala che il suo .htaccessfile non può essere aggiornato, verificare la proprietà e i permessi di scrittura confrontandoli con le linee guida di ownCloud per l'aggiornamento e la protezione prima di modificarli. Evitare di rendere l'intera installazione scrivibile dal server web come scorciatoia. La documentazione di ownCloud indica che i dettagli di configurazione variano a seconda dell'installazione e che PHP-FPM non utilizza le impostazioni PHP da .htaccess; le impostazioni per quel caso appartengono a .user.ini. Tale distinzione di PHP non sostituisce di per sé la necessità di Apache di elaborare le regole di riscrittura e accesso di ownCloud.
Lista di controllo per la verifica
Il <Directory>percorso corrisponde esattamente ai file di ownCloud presenti sul disco.
Il blocco corrispondente contiene AllowOverride All, e nessuna regola attiva in conflitto ha la precedenza.
sudo apachectl -trestituisce Syntax OK.
Apache è stato ricaricato utilizzando il nome del servizio corretto.
La pagina di accesso di ownCloud e un URL precedentemente interessato si caricano tramite HTTPS come previsto.
Dopo l'aggiornamento, la panoramica amministrativa non mostra più lo stesso avviso e la directory dei dati rimane inaccessibile dal web pubblico.
Ecco un esempio della pagina di accesso di ownCloud all'hostname configurato; verifica lo stato effettivo degli avvisi nella tua panoramica di amministrazione.