Come configurare Apache (siti disponibili vs httpd.conf)


27

Ho cercato di seguire alcuni tutorial di base che spiegano come far funzionare Apache (su Ubuntu, in esecuzione su Amazon). Per lo più sono rimasto vuoto, perché tutti i tutorial mi hanno detto di configurare httpd.conf (per aggiungere DocumentRoot, ecc.).

Ora mi sono imbattuto in un tutorial che mi ha detto di aggiungere le configurazioni del sito alla directory dei siti disponibili (sotto / etc / apache), e quindi il collegamento simbolico ad esso dai siti abilitati. La configurazione in questo modo sembra funzionare.

Ma ora sono confuso: come devo configurare Apache? La maggior parte dei tutorial sembra ancora dire che dovrei usare httpd.conf. Quale dovrei usare? Qual è la differenza? Perché tutti i tutorial sono "sbagliati" (se lo sono)?

Risposte:


35

Il sites-availablemetodo è generalmente considerato il "Debian Way":

  • configurazione "principale" /etc/apache2/apache2.conf
  • configurazione "utente" /etc/apache2/httpd.conf
  • vhosts in /etc/apache2/sites-availablefile (uno per file, in genere)
    • si consiglia di numerarli, ad es. 00-domain.com, 01-otherdomain.com
  • porti ( Listendirettive) in/etc/apache2/ports.conf
  • mod in /etc/apache2/mods-available

Puoi manipolarli con collegamenti simbolici o con la a2serie di comandi:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

A seconda delle preferenze personali, è possibile riavviare Apache usando apachectl, /etc/init.d/apache2 (start|stop|reload|restart)oservice apache2 (start|stop|reload|restart)

Un esempio in cui httpd.confuseresti invece di una voce vhost potrebbe essere, ad esempio, per una regola di reindirizzamento o riscrittura globale. Altre curiosità - in genere, dovresti lasciare apache2.confda solo e assicurarti di impostare uno schema di denominazione coerente per i vhosts nella sites-availabledirectory.


Ottimo riassunto! Molto più chiaro e conciso di quello a cui stavo lavorando. +1.
Steven lunedì

2
I siti disponibili forniscono una buona modularizzazione della configurazione. Ti consente di concentrarti facilmente sulla configurazione di un singolo sito. Inoltre, semplifica notevolmente il confronto dei siti su un server o lo spostamento o la replica di un sito tra server.
BillThor,

+1. Quando è necessario mantenere queste configurazioni, andare su "siti abilitati" anziché "siti disponibili" e accedervi direttamente da lì. In questo modo sarai sempre in grado di determinare e accedere alle configurazioni del sito attualmente utilizzate.
Ross,

9

La posizione e l'organizzazione dei file di configurazione è configurabile e può cambiare tra le versioni principali o tra le distribuzioni.

Apache Wiki ha una guida utile per i nomi e le posizioni dei file di configurazione.

Poiché i file di configurazione possono contenere includedirettive, parti della configurazione possono essere separate in file più piccoli. Poiché un file di configurazione standard di Apache contiene molti commenti e molti elementi standard, ha senso separare le parti che è più probabile che cambiate.

Il nome del file di configurazione principale può essere modificato al momento della compilazione e nelle versioni recenti è cambiato da httpd.confaapache2.conf

Nel corso degli anni c'è stata anche qualche evoluzione nell'organizzazione dei file di configurazione inclusi.

Ad esempio, ho installato Apache2 su un sistema basato su Ubuntu usando apt-get install apache2- ecco i file inclusi

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

Quindi ora sono presenti le poche impostazioni di configurazione che probabilmente ti interesseranno di più /etc/apache2/sites-available/default.

Vedo che questo è coerente con la documentazione di Ubuntu per Apache che ti consiglio di leggere prima. Se disponi di altra documentazione per le versioni precedenti di Apache (o altre distribuzioni), puoi adattare tali informazioni per adattarle al modo in cui le cose sono organizzate in Ubuntu.


-2

L'Apache in Linux può essere installato in due tipi. uno è di apt-get e altri scaricano il file tar ed estraggono .... Quindi, nel processo di apt-get i siti vengono serviti dalla cartella / etc / apache2 / siti abilitata poiché ogni sito che serve al mondo esterno è configurato in queste cartelle da Esempio di file .conf 000-default.conf è un sito predefinito abilitato a mostrare le opere di apache.

creando quindi qualsiasi file .conf nei siti abilitati e indirizzandolo verso la posizione del contenuto.

Quindi, per aggiungere un nuovo sito statico, è necessario creare un nuovo file .conf in una cartella abilitata per i siti con qualunque nome name example.conf. e deve aggiungere le righe seguenti in esso

ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log combinati

Dove *, 80 indica "aperto al mondo attraverso la porta 80" DocumentRoot / var / www / html indica "percorso del contenuto del sito"


Questo sbagliato e fuorviante. I file vengono creati in siti disponibili in modo che gli strumenti (consigliati) come a2ensite possano funzionare. In genere si collega simbolicamente questi file conf utilizzando a2ensite in siti abilitati. apt-get non ha nulla a che fare con la configurazione dei siti.
HörmannHH,
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.