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.d
dovrebbero essere spostati in /etc/apache2/conf-available
.
Ora funzionano allo stesso modo sites
e mods
funzionano. Basta inserire i file conf nella conf-available
cartella e abilitare quello desiderato a2enconf <config-file-name>
.
Esempio:
Avevo un file conf.d/httpd.conf
che aveva la direttiva ServerName.
Per farlo funzionare, ho dovuto spostarlo nella conf-available
directory 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-available
non 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 .conf
a tutti i tuoi file di configurazione in sites-available
. Puoi fare lo stesso in sites-enabled
oppure 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.conf
apache2.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
/ Deny
nel 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' MultiViews
opzione, 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.
httpd.conf
file oconf.d
directory. Ma c'è unapache2.conf
file. Ho provato a spostarlo nellaconf-available
directory 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?