Come configurare gli host virtuali locali di Apache?

4

Configurazione di Apache per lo sviluppo locale su Lion Sono riuscito a indovinare molto:

  • /private/etc/apache2/ e /etc/apache2/ sono link simbolici
  • /etc/apache2/httpd.conf è autorevole
  • httpd.conf disegna sui conf nel extra
  • original è un'aringa rossa di origine sconosciuta - presumibilmente Apache

Venendo da Debian, mi sono abituato a gestire gli host virtuali di Apache aggiungendo file a /etc/apache2/sites-available/ e collegandoli a /etc/apache2/sites-enabled/ . Ma sembra essere la riserva speciale di "Lion Server". Probabilmente è relativamente banale impostarlo in quel modo, ma mi piacerebbe sapere cosa hanno fatto altre persone;

  1. Come configuri i tuoi vhosts?
  2. Dove metti il codice e la docroot per i tuoi vhosts?
  3. Dove metti i file di registro?
  4. Dove inserisci la configurazione dell'applicazione locale?
  5. Come risolvi il servizio di denominazione?
posta John2095 17.01.2012 - 05:58
fonte

1 risposta

8

1. Come configgi i tuoi vhosts?

Il "Lion way" per farlo sarebbe decommentare la seguente riga nel tuo httpd.conf.

#Include /private/etc/apache2/extra/httpd-vhosts.conf

Ora puoi modificare /private/etc/apache2/extra/httpd-vhosts.conf e inserire i tuoi vhosts lì. È consigliabile iniziare con uno predefinito che corrisponda a tutti gli host non qualificati, ad esempio:

<VirtualHost *:80>
  DocumentRoot /Library/WebServer/Documents
</VirtualHost>

Successivamente, puoi aggiungere ogni vhost allo stesso file, oppure puoi configurare un sistema simile come Debian includendo tutti i file in una directory specifica successiva, in questo modo:

Include /etc/apache2/sites-enabled/*

Ora, se i file symlink qui che esistono da qualche altra parte (siti disponibili) o se i file reali non contano davvero. Personalmente, penso che i siti disponibili siano overkill per un box di sviluppo (e non voglio mai veramente "disabilitare" un vhost), quindi creo un file per ogni vhost direttamente in siti abilitati o equivalenti (in effetti io chiamato la directory / etc / apache / sites per evitare confusione).

2. Dove metti il codice e la docroot per i tuoi vhosts?

I miei siti reali che ho inserito in / Users / username / Sites. Preferisco metterli sotto la mia home directory per un accesso più facile in Finder ecc. Detto questo, è bene notare che questa directory è esposta di default dal modulo userdir. Dal momento che non ho bisogno di userdir hosting, e ho intenzione di configurare i web-root di seguito, l'ho disabilitato commentando la seguente riga:

Include /private/etc/apache2/extra/httpd-userdir.conf

3. Dove metti i file di registro?

I file di registro mantengo lo stesso (ad esempio / var / log / apache / *). Ancora una volta, per una casella di sviluppo locale, credo che i singoli file di registro per ogni vhost siano eccessivi. C'è solo così tanto che posso multitasking :) Se vuoi i file di log separati, puoi ovviamente configurarlo in questo modo all'interno della direttiva VirtualHost (ad esempio /var/log/apache/my.project.dev-error.log) .

4. Dove inserisci la configurazione dell'applicazione locale?

A quali applicazioni ti stai riferendo? Se l'applicazione web, li tengo insieme a tutti gli altri file di progetto. A seconda della tua architettura, i tuoi file di configurazione non devono necessariamente essere sotto il tuo webroot se questo è un problema, in genere il mio webroot per ogni progetto sarà / Users / username / Sites / someproject / web, quindi i file di configurazione potrebbero essere in / Utenti / nome utente / Sites / someproject / config senza esporli tramite Apache.

5. Come risolvi il servizio di denominazione?

Il più diretto sarebbe aggiungere ogni hostname a / etc / hosts. Sfortunatamente, questo non funziona con i caratteri jolly. Se ti senti a tuo agio con l'impostazione di un server DNS come bind, puoi configurarne uno localmente o sulla tua rete per risolvere * .dev a 127.0.0.1, per esempio. Lo svantaggio di farlo sulla rete è, naturalmente, che smetterà di funzionare in una posizione diversa. Personalmente, io uso / etc / hosts.

    
risposta data 17.01.2012 - 09:45
fonte

Leggi altre domande sui tag