2011-08-23 24 views
34

İki etki alanı adı, iki ssl öneki ve iki ip adresim var. Apache virtualhost dosyalarını onlar için yapılandırmaya çalışıyorum.NameVirtualHost *: 80'de herhangi bir VirtualHost var

İlk olarak, 80 ve 443 numaralı bağlantı noktaları için "NameVirtualHost" ve "Listen" öğelerinin tüm örneklerini açıkladım. Ardından sanal konak dosyalarımda aşağıdakileri yaptım. domain1 için

VirtualHost dosyası: domain2 için

NameVirtualHost 1.1.1.1:80 
Listen 1.1.1.1:80 
Listen 1.1.1.1:443 
<VirtualHost 1.1.1.1:80> 
    ServerName domain1.com 
    ... 
</VirtualHost> 
<VirtualHost 1.1.1.1:443> 
    ... 
</VirtualHost> 

Sanal Ana dosyası:? yapılandırmanızda Somewhere

NameVirtualHost 2.2.2.2:80 
Listen 2.2.2.2:80 
Listen 2.2.2.2:443 
<VirtualHost 2.2.2.2:80> 
    ServerName domain2.com 
    ... 
</VirtualHost> 
<VirtualHost 2.2.2.2:443> 
    ... 
</VirtualHost> 
+0

* NameVirtualHost * kaldırılmıştır ve artık gerekli değil. – andreszs

cevap

27

, muhtemelen Apache varsayılan yapılandırma dosyasında (Ubuntu /etc/apache2/httpd.conf düşünüyorum birisi düzeltebilirsiniz bana yorumlarda) gibi görünen bir çizgidir:

NameVirtualHost *:80 

# Also 
Listen 80 
Listen 443 

onları yorum yapın ve VirtualHost yapılandırma dosyalarında ekleyin: Birçok varsayılan Apache yapılandırmalarında

Listen 111.111.111.111:80 
Listen 222.222.222.222:80 
# If also using SSL 
Listen 111.111.111.111:443 
Listen 222.222.222.222:443 

NameVirtualHost 111.111.111.111:80 
NameVirtualHost 222.222.222.222:80 

, Listen ve NameVirtualHost direktifleri wildcard ile beslenir veya tüm dünyadaki ağ arayüzleri uygulanacak. Farklı yapılandırmalara bağlı birden çok IP adresi kullandığınızdan, dağıtım yönergelerinizde dağıtımın varsayılan yapılandırma dosyasından daha spesifik olmanız gerekir.

+0

+1 ... doğru geliyor. implimenting. birazdan anlamana izin ver. – Jay

+0

/etc/apache2/httpd.conf boş. /etc/apache2/httpd.conf "NameVirtualHost" veya "Listen" içermiyor. Hala arıyor. – Jay

+12

@Jay try 'grep -r Dinle/etc/apache2' ve' grep -r NameVirtualHost/etc/apache2' –

41

Bir Ubuntu sunucum vardı 2 ay boyunca aynı hatayı yoksaydım. Bu yazıyı güzelce çözdüm hatayı çözdü. Teşekkür ederiz Michael!Jay ile yaptığınız gibi, /etc/apache2/ports.conf adresinde suçlu buldum. Ben sadece bu çalıştı:

# NameVirtualHost *:80
Ben sadece o satırı ve başka değişiklik ve dışarı yorumladı artık

"NameVirtualHost *: 80 hayır VirtualHosts vardır"

+6

Harika! Ben de! Çözüldü! – flaab

+0

Onun çalışma .... Çok Çok Teşekkürler –