Ubuntu Apache sunucum (Apache 2) başladığında, aşağıdakileri okuyan bir uyarı mesajı alıyorum:
[warn] NameVirtualHost *:80 has no VirtualHosts
Ancak, web sunucusu iyi çalışıyor. Sitemin yapılandırmasında bana bu uyarıyı vermesi için yanlış olan ne olabilir?
Söz konusu yapılandırma dosyası (/etc/Apache2/sites-available
) gibi okuyor (ayrıntılar kısalık için kaldırıldı)
<VirtualHost *>
<Location /mysite>
# Configuration details here...
</Location>
# Use the following for authorization.
<LocationMatch "/mysite/login">
AuthType Basic
AuthName "My Site"
AuthUserFile /etc/sitepasswords/passwd
Require valid-user
</LocationMatch>
</VirtualHost>
<Location>
sorunun bir parçası olmak?
Değişiklik
<VirtualHost *>
okumak
<VirtualHost *:80>
Ya da (NameVirtualHost *: 80) Apache2 Confing dosyanıza iki kez eklendi. (Varsayılan olarak ports.conf dosyasına eklenir)
Bu hatayı gidermelidir.
Kenara: Bu hatayı görmezden gelmemelisiniz. Apache'nin yapılandırması, özellikle sanal ana bilgisayarları (örn. Incet /etc/httpd/vhosts.d/*) globbing yaparken kararlı değil. Bu, ana bilgisayarların açıkça yüklenme sırasını denetlemediğiniz anlamına gelir, böylece bir IP için varsayılan vhost ilk yüklenen olur ve istenmeyen sonuçlara yol açabilir.
Bunun bir örneği, IP için varsayılan vhost, name yerine bu IP'de de kullanılabilir olacaktır. Bu, müşteriler için kafa karıştırıcı olabilecek ad yerine sitelerin IP'sine bakılarak bilgilerin Google'a sızmasına neden olabilir.
Yukarıdaki NameVirtualHost hatası, Apache'nin en uygun olmayan şekilde bir şeyler yüklediğine dair bir ipucu olabilir, bu yüzden bunu göz ardı etmemelisiniz.
Bunun nedeni birden fazla yerde NameVirtualHost yönergesine sahip olmanız olabilir.
Diğer dağıtımları bilmiyorum, ancak Ubuntu/Debian'da Apache'nin yapılandırması birkaç dosyaya bölünmüş, bu yüzden çoğaltmanın nerede olduğunu kontrol etmeniz gerekecek (httpd.conf, Apache2.conf, ports.conf, conf.d/*).
Oh, ve ben daha fazla bilgi ile bu büyük kaynağı buldum: Ortak Apache Yanlış Yapılandırmalar .
Debian/Lenny kutusunda: /etc/Apache2/ports.conf dosyasında ek bir NameVirtualHost ifadesi vardır - bu sorunun nedeni olabilir (/ etc/Apache2/sites-available/default içinde de aynı ifade vardır) . Bu ifadeyi yorumladım ve hata hayal kırıklığına uğradı.
Eşleşen VirtualHost girişi olmayan bir NameVirtualHost var.
Bu genellikle ölümcül değildir, sadece bilgilendirici bir hatadır.
Çünkü NameVirtualHost satırınızın üzerinde bir bağlantı noktası numarası var (:80
), ancak VirtualHost bölümleriniz bunu yapmaz.
AS Rune, Debian sistemlerinde NameVirtualHost birçok dosyada görünür - ports.conf, conf.d/virtual.conf ve muhtemelen kendi conf dosyalarınız int kullanılabilir siteler
NameVirtualHost *: 80 (mayın conf.d/virtual.conf içinde) olarak tek bir yerde bulunduğundan emin olun ve uyarılar geçerli olmalıdır.
Belirtildiği gibi, kullanılabilir her site için VirtualHost yönünü şu biçime sahip olmanız gerekir <VirtualHost *:80>
Aynı sorun var, ama bir an için varsayılan Apache sitesini devre dışı bırakıyorum. Gibi bir şey yazarım
# a2dissite default
Apache 2'yi yeniden başlatmayı denedikten sonra şu mesajı alıyorum:
"[uyar] NameVirtualHost *: 80'de VirtualHost yok"
Sonra Apache 2'nin 'varsayılan' sitesini tekrar etkinleştiriyorum ve her şey tekrar çalışıyor, kullanılan komut:
# a2ensite default
Hepsi bu kadar millet!