Errore 403 dopo l'aggiornamento ad apache2.4


34

Dopo l'aggiornamento dal server Ubuntu 13.04, le pagine www non verranno visualizzate.

Errore 403 proibito Non hai i permessi per accedere / su questo server.

Ho cambiato il controllo degli accessi da apache2.2 ad apache2.4, ma non ha funzionato. Cos'altro potrei fare?

Risposte:


59

Quello che è successo è che la sintassi dei file di configurazione in apache2.4 è cambiata.

Fonte: questo è successo anche a me dopo l'aggiornamento alla 13.10

file conf.d

Tutti i file presenti /etc/apache2/conf.ddovrebbero essere spostati in /etc/apache2/conf-available.

Ora funzionano allo stesso modo sitese modsfunzionano. Basta inserire i file conf nella conf-availablecartella e abilitare quello desiderato a2enconf <config-file-name>.

Esempio:

Avevo un file conf.d/httpd.confche aveva la direttiva ServerName.
Per farlo funzionare, ho dovuto spostarlo nella conf-availabledirectory e abilitarlo manualmente.

sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd

file di siti

In precedenza, i file in /etc/apache2/sites-availablenon avevano estensione. Per esempio /etc/apache2/sites-available/default. Ora .confè necessaria un'estensione.

Esempio:

Se lo hai fatto /etc/apache2/sites-available/some-site, in 13.04 puoi semplicemente abilitarlo usando sudo a2ensite some-site. Ora ti darà un errore dicendo

ERRORE: sito in qualche sito non esiste!

Per risolvere questo problema, aggiungi a .confa tutti i tuoi file di configurazione in sites-available. Puoi fare lo stesso in sites-enabledoppure puoi eliminare tutti i file e riattivarli manualmente.
Consiglio di eseguirli manualmente poiché probabilmente è necessario correggere ciascun VHost (passaggio successivo).

sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;

se hai deciso di eseguirli manualmente:

sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name

Direttive dell'host virtuale:

consentire / negare vs Richiedi

Se avessi il seguente:

<Directory /path/to/your/site/>
    order allow,deny
    allow from all
</Directory>

Dovrebbe diventare:

<Directory /path/to/your/site/>
    Require all granted
</Directory>

Per maggiori informazioni, controlla i commenti di DaveRandom su una risposta su Stack Overflow.

In poche parole, se hai eseguito l'aggiornamento ad apache2.4 e hai mantenuto il vecchio httpd.confapache2.2, consenti alla direttiva di continuare a funzionare correttamente. Se hai aggiornato il tuo httpd.conf(che suggerirei), otterrai 403 errori fino a quando non cambi le direttive Order/ Allow/ Denynel loro equivalente Require.

Opzioni di directory

Se hai opzioni di Directory, nota che devono essere tutte anteposte a un +o- o nessuno di loro a tutti. Non è consentito un mix di entrambi:

Esempio:

Questo è permesso:

<Directory /path/to/your/site/>
    Options +Indexes +FollowSymLinks -MultiViews
</Directory>

Così è (Nota che questi esempi non fanno entrambi la stessa cosa, il precedente disabilita l' MultiViewsopzione, il successivo no):

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks MultiViews
</Directory>

Questo non è più consentito:

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks -MultiViews
</Directory>

L'ultima opzione di configurazione genererà un errore di sintassi che dice:

Tutte le Opzioni devono iniziare con + o -, oppure nessuna Opzione può.

Riavvia apache

Una volta fatto tutto, è necessario riavviare il server apache per rendere effettive le modifiche:

 sudo apache2ctl restart

È possibile trovare una guida di aggiornamento dettagliata da 2.2 a 2.4 nella documentazione ufficiale.


1
Sul mio sistema, non ci sono httpd.conffile o conf.ddirectory. Ma c'è un apache2.conffile. Ho provato a spostarlo nella conf-availabledirectory e ho riavviato il seguente errore quando ho riavviato apache2: apache2: impossibile aprire il file di configurazione /etc/apache2/apache2.conf: nessun file o directory simile - Quale potrebbe essere il motivo?
Amal Murali,

@AmalMurali Il httpd.confera solo un esempio. È possibile che non ci siano file di configurazione nella conf.ddirectory, in tal caso, basta saltare quel passaggio. Per quanto riguarda apache2.conf, non dovrebbe essere spostato nella conf-availabledirectory. È il file di configurazione principale di apache e il suo percorso dovrebbe essere /etc/apache2/apache2.conf e non deve essere modificato.
Dan,

1
Wow. Questa è praticamente l'unica panoramica lucida che si possa trovare ovunque. Grazie.
Russ Bateman,

non c'è config.do sites availablecartella. vedi tutti i file di configurazione qui: imgur.com/WczXp3v
diEcho

1
@EdwardBlack Potrebbe esserci un altro motivo se si sta ancora utilizzando l'host virtuale predefinito, come spiegato nelle risposte alla seguente domanda: Gli host virtuali Apache non funzionano più dopo l'aggiornamento alla 13.10
Dan

0

Presumo che i siti Web siano in esecuzione sul tuo server Ubuntu.

Controlla httpd.conf per assicurarti che le impostazioni di DocumentRoot puntino al posto giusto.

Verificare che le autorizzazioni dei file nella cartella a cui fa riferimento DocumentRoot possano essere lette dall'utente su cui viene eseguito il server web.

Verificare di disporre di un index.html / index.htm ecc. Appropriato e che il server Web non stia tentando di eseguire un elenco di directory.


0

Ho riscontrato problemi simili.

Non riuscivo a far funzionare apache 2.4 se non avessi usato 'Consenti a tutti', questo era fastidioso perché volevo fornire una pausa pulita dalle versioni <2.4. Dopo molte prove ed errori e molte ricerche ho scoperto un riferimento a access_compat e ho capito che questo era lì solo per compatibilità. Sebbene la documentazione di Apache affermi che entrambi possono essere usati, si consiglia di non farlo.

Ho rimosso questo modulo dal file di caricamento / etc / sysconfig / apache2, questo ha risolto immediatamente il mio problema.

Saluti Liam


-1

Sto servendo file da una directory non standard, quindi per far funzionare l'aggiornamento ho dovuto modificare /etc/apache2/apache2.conf e aggiungere: Opzioni Indici FollowSymLinks AllowOverride Nessuno Richiedi tutto concesso

Successivamente, e le modifiche consigliate sopra, l'errore 403 è andato via.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.