pengembangan-web-mp.com

Peringatan startup Apache 2: NameVirtualHost *: 80 tidak memiliki VirtualHosts

Ketika server Ubuntu Apache saya (Apache 2) dimulai saya mendapatkan pesan peringatan yang berbunyi:

[warn] NameVirtualHost *:80 has no VirtualHosts

Namun, server web berfungsi dengan baik. Apa yang mungkin saya salah dalam konfigurasi situs saya untuk membuatnya memberi saya peringatan ini?

File konfigurasi yang dimaksud (terletak di /etc/Apache2/sites-available) berbunyi seperti (perincian dihapus karena singkatnya)

<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>

Mungkinkah fakta bahwa saya menggunakan <Location> menjadi bagian dari masalah?

68
Kit Roed

Perubahan

<VirtualHost *>

untuk membaca

<VirtualHost *:80>

Atau (NameVirtualHost *: 80) ditambahkan dua kali dalam file Confing Apache2 Anda. (Secara default ditambahkan dalam file ports.conf)

Ini harus menghapus kesalahan.

Selain: Anda tidak boleh mengabaikan kesalahan ini. Konfigurasi Apache, terutama ketika melakukan globbing virtual host (mis. Sertakan /etc/httpd/vhosts.d/*) tidak stabil. Itu berarti Anda tidak mengontrol urutan memuat host secara eksplisit sehingga vhost default untuk IP menjadi yang di-load pertama, yang dapat menyebabkan konsekuensi yang tidak diinginkan.

Salah satu contohnya adalah vhost default untuk IP juga akan tersedia pada IP itu, daripada nama. Hal ini dapat menyebabkan informasi bocor ke google yang merujuk ke IP situs Anda dan bukan nama, yang dapat membingungkan bagi pelanggan.

Kesalahan NameVirtualHost di atas bisa menjadi petunjuk bahwa Apache telah memuat sesuatu dengan cara yang tidak optimal, jadi Anda tidak boleh mengabaikannya.

53
Dave Cheney

Itu bisa jadi karena Anda memiliki direktif NameVirtualHost di lebih dari satu tempat.

Saya tidak tahu tentang distribusi lain, tetapi di Ubuntu/Debian, konfigurasi Apache dibagi menjadi beberapa file, jadi Anda harus memeriksa di mana duplikasinya (httpd.conf, Apache2.conf, ports.conf, conf.d/*).

Oh, dan saya baru saja menemukan sumber yang bagus ini dengan informasi lebih lanjut: Kesalahan Umum Apache .

51
Ivan

Pada kotak Debian/Lenny: Di /etc/Apache2/ports.conf ada pernyataan NameVirtualHost tambahan - yang bisa menjadi penyebab masalah ini (ada juga pernyataan yang sama di/etc/Apache2/sites-available/default) . Saya berkomentar pernyataan itu dan kesalahannya hilang.

9
Rune

Anda memiliki NameVirtualHost tanpa entri VirtualHost yang cocok.

Ini biasanya tidak fatal, hanya kesalahan informatif.

3
Dominic Eidson

Itu karena baris NameVirtualHost Anda memiliki nomor port di atasnya (:80), tetapi bagian VirtualHost Anda tidak.

3
derobert

AS Rune menyebutkan, pada sistem Debian NameVirtualHost muncul di banyak file - ports.conf, conf.d/virtual.conf dan mungkin file conf Anda sendiri di situs-tersedia

Pastikan itu ada di satu tempat sebagai NameVirtualHost *: 80 (milik saya di conf.d/virtual.conf) dan peringatan akan pergi.

Seperti yang disebutkan Anda juga perlu membuat arahan VirtualHost untuk setiap situs yang tersedia memiliki format ini <VirtualHost *:80>

2
Mo01

Saya memiliki masalah yang sama, tetapi saya menonaktifkan situs default Apache dalam beberapa saat. Saya mengetik sesuatu seperti

# a2dissite default

Setelah saya mencoba me-restart Apache 2, saya menerima pesan ini:

"[peringatkan] NameVirtualHost *: 80 tidak memiliki VirtualHosts"

Kemudian saya mengaktifkan situs 'default' dari Apache 2 lagi dan semuanya berfungsi lagi, perintah yang digunakan adalah:

# a2ensite default

Itu semua orang!

2
Tiago