2012-05-11 6 views
19

Sto cercando di aggiungere sottodomini al mio server di casa.Come risolvere ERRORE: il sito domain.com non esiste, mentre si aggiunge il sottodominio ad apache2?

svn.domain.com trac.domain.com

causa di IP dinamico utilizzare il servizio DynDNS, in cima che ho domain.com ospitato da qualche altra parte. Ho creato CNAME per i sottodomini sull'host remoto in modo che punti al mio dominio user.dyndns.org.

Così ora quando visito uno dei sottodomini: trac o svn, vedo "Funziona!" Messaggio.

Fatto questo, ho creato due file host virtuali in/etc/apache2/sites-enabled

file1: svn.domain.com e file2: trac.domain.com

contenuti:

<VirtualHost *:80> 

    ServerName trac.domain.com 

    DocumentRoot = /var/www/trac/repos 

    <Directory /var/www/trac/repos> 
    Order allow,deny 
    allow from all 
    </Directory> 

</VirtualHost> 

E

<VirtualHost *:80> 

    ServerName svn.domain.com 

    DocumentRoot = /var/svn/repos 

    <Directory /var/svn/repos> 
    Order allow,deny 
    allow from all 
    </Directory> 

</VirtualHost> 

ma ottengo errore: errore: sito trac.domain.com non esiste!

cosa sto facendo di sbagliato?

+0

Volete serverfault o qualcosa di simile - StackOverflow viene letto dagli sviluppatori di software, piuttosto che sysadmin. –

risposta

7

Provare a spostare i file su/sites-available. Quindi eseguire a2ensite svn.domain.com e a2ensite trac.domain.com e ricaricare Apache.

+0

Viene visualizzato lo stesso messaggio di errore quando si esegue a2ensite –

+0

Qual è stato l'output del comando a2ensite? – BluesRockAddict

+0

Errore di sintassi sulla riga 5 di /etc/apache2/sites-enabled/trac.domain.com: DocumentRoot accetta un argomento, Directory principale dell'albero dei documenti Azione 'configtest' non riuscita. –

110

Ho riscontrato questo problema durante l'aggiornamento da Apache 2.2 ad Apache 2.4. La soluzione (ridicola) era di garantire che tutti i file finissero con .conf o ERROR: Site example does not exist!.

Inoltre, se collegati manualmente in sites-enabled, non vengono caricati nemmeno senza l'estensione .conf.

+7

Umm, perché nel mondo abbiamo bisogno di .conf alla fine di questi file vhost ora? Davvero sciocco se me lo chiedi. Ancora grazie mille per la risposta! Mi stavo strappando i capelli. –

+1

Questo è solo perché alcuni programmatori hanno pensato che ci fossero troppi capelli in questo mondo! Perché ho fatto lo stesso. : D –

+2

Ma seriamente, non riesco a capire come il programmatore responsabile possa pensare che sia perfettamente corretto lasciare cambiamenti non documentati. –

19

Ho riscontrato lo stesso problema anche durante l'aggiornamento da Apache 2.2 a 2.4; tutti i miei host virtuali si sono improvvisamente rotti e mentre cercavo di capire perché questo era il caso, mi sono imbattuto in questa domanda.

Si scopre che il motivo è dovuto a una differenza tra il mio vecchio apache2.conf e il nuovo apache2.conf. Il mio vecchio Apache file di 2.2 conf ha avuto la linea

Include sites-enabled/ 

mentre il mio nuovo file 2,4 conf Apache ha avuto la linea

IncludeOptional sites-enabled/*.conf 

Ed ecco, quando ho cambiato la linea di

IncludeOptional sites-enabled/ 

tutto è tornato alla normalità.

+0

Grazie mille per queste spiegazioni! –

+0

Questa è un'informazione veramente utile. Ora abbiamo solo bisogno di capire come far funzionare di nuovo a2ensite. –

+0

Ho giurato che ho provato a rinominare in .conf e non ha funzionato ... Ho provato di nuovo e ha funzionato. a2ensite è uno script perl ed è stato aggiornato per consentire solo i file * .conf. ... quindi sì, il modo "giusto" per configurare i vhost d'ora in poi è nominare tutti i siti * .conf. Grazie a Obama! –

3

a2ensite SOLO accetta i file .conf, quindi copia tutti i siti nei siti disponibili in modo che abbiano un'estensione .conf (la rinomina non ha funzionato nega il collegamento come), cancella i file originali dai siti-disponibili E abilitati ai siti. usa a2ensite sui nuovi file (non è necessario aggiungere .conf) e tutto funziona, senza il * .conf in/etc/apache2/apach2.conf

Ci deve essere una "memoria" del file originale, anche quando viene rinominato -la link simbolico rinomina anche, butthe cancella & abilitazione "nuovi" i file .con opere e si può quindi utilizzare a2dissite e a2ensite come prima

3

se si digita a2ensite. richiederà. Quali siti si desidera abilitare (ovvero, dopo aver inserito un file .conf nei siti-disponibili e collegarlo dai siti abilitati.

a2ensite si aspetta il nome completo del file conf con l'estensione .conf

+0

Ho avuto l'estensione .conf come avevo già riscontrato in precedenza. MA quando ottieni il nome predefinito usando la scheda, ad esempio digita "a2ensite t ...msgstr "stampa la scheda e ottieni il nome automaticamente compilato per te. LASCIA L 'estensione .CONF. Devi digitare il file .conf. – MagicLAMP

0

1) rimuovere tutti sito predefinito all'interno siti-abilitare

a2dissite <site-configuration-file-name> 

2) un'occhiata chiuso al vostro file di configurazione: Iniziamo con proprietà minime come:

<VirtualHost [Domain]:80> 
ServerAdmin [email protected] 
ServerName [Domain] 
DocumentRoot [webAppPath] 

<Directory [webAppPath]> 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    Require all granted 
</Directory> 


ErrorLog ${APACHE_LOG_DIR}/my_domain_name_error.log 

CustomLog ${APACHE_LOG_DIR}/my_domain_name_access.log combined 
</VirtualHost> 
0

la mia soluzione per il nome del server locale sta sostituendo:

sudo a2ensite serverName 

con

sudo a2ensite serverName.conf