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.
httpd.conffile oconf.ddirectory. Ma c'è unapache2.conffile. Ho provato a spostarlo nellaconf-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?