Gli host virtuali non funzionano su OSX Mavericks

4

In Mac OS X 10.9.3 ho incluso http-vhost in httpd.conf

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

Ho commentato DocumentRoot e Directory in httpd.conf

# DocumentRoot "/Library/WebServer/Documents"
# <Directory "/Library/WebServer/Documents">...</Directory>

Ho aggiunto quanto segue al mio file httpd-vhosts.conf

<VirtualHost *.80>
    DocumentRoot /Users/gdboling/Sites/rocket-gen
    ServerName local.rocket-gen.com
    <Directory "/Users/gdboling/Sites/rocket-gen">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

E ho aggiunto quanto segue al mio file / etc / hosts

127.0.0.1    local.rocket-gen.com

Ho riavviato Apache

sudo apachectl restart

C'è un index.html in quella directory, ma quando accedo al link dal browser ottengo un 404. Sto ottenendo questo nei log degli errori

[Tue Jun 17 19:09:10 2014] [error] [client 127.0.0.1] File does not exist: /usr/htdocs

Non riesco a capire perché non funzioni. Se creo quella directory come DocumentRoot in httpd.conf, funziona. Ma ho bisogno di avere diversi host virtuali, quindi mi piacerebbe far funzionare il file vhosts.

    
posta Gregg 18.06.2014 - 02:01
fonte

3 risposte

7

Sembra che tu abbia quasi tutto corretto. Sto gestendo Mavericks con un paio di dozzine di host virtuali, quindi questo dovrebbe funzionare per te.

Per prima cosa, e questo potrebbe essere tutto ciò che devi fare per sistemare le cose, devi racchiudere il tuo DocumentRoot tra virgolette. Quindi,

DocumentRoot /Users/gdboling/Sites/rocket-gen

diventa

DocumentRoot "/Users/gdboling/Sites/rocket-gen"

Successivamente, aggiungi quanto segue al tuo file /etc/hosts , sulla riga che segue immediatamente quello che hai già. Il tuo file hosts dovrebbe essere:

Hai questa parte:

127.0.0.1    local.rocket-gen.com

Ora aggiungi questo sotto:

::1     local.rocket-gen.com

Ho impostato ciascuno dei miei vhosts in hosts in questo modo.

    
risposta data 17.07.2014 - 07:12
fonte
0

Ovviamente, il tuo apache non riesce a trovare la radice del documento definita. Secondo me mescoli alcune cose.

Innanzitutto, correggi l'errore di battitura all'interno del contenitore VirtualHost. Definisci l'indirizzamento di una porta con due punti, non un "."

<VirtualHost *:80>...</VirtualHost>

In secondo luogo, se si desidera ospitare più server per nome e non per indirizzo IP, è necessario utilizzare host virtuali basati sul nome. Poi, ovviamente, nella configurazione di Apache hai perso la direttiva NameVirtualHost, se vuoi impostarla in questo modo.

NameVirtualHost server1.example.org:80

( link )

Imposta SEMPRE il ServerName, altrimenti apache non può chdir al tuo nuovo documentroot.

In terzo luogo, nella parte di configurazione principale di httpd.conf avete commentato DocumentRoot. Lo hai fatto anche con le regole di accesso nella sezione "Directory /" per la tua precedente DocumentRoot?

In quarto luogo, se vuoi impostare VirtualHost piuttosto che NameVirtualHost, non dimenticare la direttiva Listen. Quindi per quello hai bisogno di un

Listen *:80

nel tuo httpd.conf principale. Se si desidera configurare server diversi su indirizzi IP diversi, è necessario configurarli in questo modo:

  • aggiungi l'indirizzo IP e il nome risolvibile in / etc / hosts
  • aggiungi "Ascolta server1.example.com:80" nel file httpd.conf principale
  • fai riferimento all'istanza del tuo server come <VirtualHost server1.example.com:80>...
  • SEMPRE imposta ServerName
risposta data 29.01.2015 - 15:57
fonte
-1

Questo è successo a me quando ho eseguito l'upgrade a Mavericks (10.9.5). Apple sembra aver rimosso la "Condivisione Web" dall'app "Preferenze di Sistema", importante per il modo in cui è stato scritto il file http.conf .

Due modi per risolverlo:

  1. Avvia apache con WEBSHARING_ON definito:

apachectl -k start -D WEBSHARING_ON

  1. Modifica il file http.conf per rimuovere <IfDefine WEBSHARING_ON> e il corrispondente </IfDefine> , MA NON il contenuto tra i tag.
risposta data 17.07.2014 - 02:23
fonte

Leggi altre domande sui tag