คำเตือนการเริ่มต้นของ Apache 2: NameVirtualHost *: 80 ไม่มี VirtualHosts


68

เมื่อเซิร์ฟเวอร์ Ubuntu Apache (Apache 2) ของฉันเริ่มทำงานฉันจะได้รับข้อความเตือนที่อ่านว่า:

[warn] NameVirtualHost *:80 has no VirtualHosts

อย่างไรก็ตามเว็บเซิร์ฟเวอร์ทำงานได้ดี ฉันอาจทำอะไรผิดในการกำหนดค่าไซต์ของฉันเพื่อให้คำเตือนนี้แก่ฉัน

ไฟล์การตั้งค่าที่มีปัญหา (อยู่ใน/etc/apache2/sites-available) จะอ่านเหมือน

<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>เป็นส่วนหนึ่งของปัญหาหรือไม่

คำตอบ:


53

เปลี่ยนแปลง

<VirtualHost *>

อ่าน

<VirtualHost *:80>

หรือเพิ่มชื่อ (VirtualVostHost *: 80) สองครั้งในไฟล์ apache2 Confing ของคุณ (โดยค่าเริ่มต้นมันเพิ่มในไฟล์พอร์ต. config)

สิ่งนี้ควรล้างข้อผิดพลาด

นอกเหนือ:คุณไม่ควรละเลยข้อผิดพลาดนี้ การกำหนดค่าของ Apache โดยเฉพาะเมื่อ globbing โฮสต์เสมือน (เช่นรวม /etc/httpd/vhosts.d/*) ไม่เสถียร นั่นหมายความว่าคุณไม่ได้ควบคุมลำดับการโหลดโฮสต์อย่างชัดเจนเพื่อให้ vhost เริ่มต้นสำหรับ IP กลายเป็นโฮสต์ที่โหลดครั้งแรกซึ่งอาจทำให้เกิดผลที่ไม่ตั้งใจ

หนึ่งในตัวอย่างนี้เป็น vhost เริ่มต้นสำหรับระบบ IP ยังจะสามารถใช้ได้ในทรัพย์สินทางปัญญาที่มากกว่าของชื่อ สิ่งนี้อาจทำให้ข้อมูลรั่วไหลไปที่ google ซึ่งอ้างถึงเว็บไซต์ของคุณ IP แทนที่จะเป็นชื่อซึ่งอาจสร้างความสับสนให้กับลูกค้า

ข้อผิดพลาด NameVirtualHost ข้างต้นอาจเป็นคำใบ้ที่ apache โหลดสิ่งต่าง ๆ ในลักษณะที่ไม่เหมาะสมดังนั้นคุณไม่ควรเพิกเฉย


5
คุณสามารถตั้งค่า vhost เริ่มต้นเช่นนี้:<VirtualHost _default_ thehostname.com>
Amy B

51

อาจเป็นเพราะคุณมีคำสั่ง NameVirtualHost มากกว่าหนึ่งแห่ง

ฉันไม่รู้เกี่ยวกับดิสทริบิวชันอื่น ๆ แต่ใน Ubuntu / Debian การกำหนดค่าของ Apache แบ่งออกเป็นหลายไฟล์ดังนั้นคุณต้องตรวจสอบว่าการทำซ้ำนั้นอยู่ที่ไหน (httpd.conf, apache2.conf, ports.conf, conf.d / *)

Oh, และฉันเพิ่งพบแหล่งข้อมูลที่ดีนี้มีข้อมูลเพิ่มเติม: สามัญ Apache กำหนดค่าที่ผิด


3
ลิงก์ที่คุณให้ดูเหมือนเป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับการพยายามทำความเข้าใจกับความแตกต่างของไฟล์กำหนดค่าของ Apache ขอบคุณ!
Kit Roed

4
ขอบคุณ! นี่เป็นปัญหาของฉัน - ฉันได้สร้าง virtual.conf สำหรับ NameVirtualHost แล้วโดยไม่รู้ว่ามันอยู่ในพอร์ตแล้วแล้ว
rcampbell

ขอบคุณ - ปัญหาเดียวกันที่นี่ในการกำหนดค่าเริ่มต้นเซิร์ฟเวอร์ ubuntu: ports.conf มี NameVirtualHost : 80 และไม่ควรทำซ้ำในไฟล์ที่เปิดใช้งานไซต์ / config!
DrSAR

1
ในกรณีของฉันปัญหานี้เกิดขึ้นเพราะ Ubuntu มีNameVirtualHost *:80ทั้งในports.confและในconf.d/virtualhostsซึ่งดูเหมือนจะเป็นข้อผิดพลาดของ Ubuntu
ปุย

9

ในกล่อง Debian / Lenny: ใน /etc/apache2/ports.conf มีคำสั่ง NameVirtualHost เพิ่มเติม - ซึ่งอาจเป็นสาเหตุของปัญหานี้ (นอกจากนี้ยังมีคำสั่งเดียวกันใน / etc / apache2 / sites-available / default) . ฉันให้ความเห็นว่าคำสั่งนั้นและข้อผิดพลาดนั้นหายไป


3

คุณมี NameVirtualHost โดยไม่มีรายการ VirtualHost ที่ตรงกัน

โดยทั่วไปจะไม่ร้ายแรงเพียงข้อผิดพลาดที่ให้ข้อมูล


3

เป็นเพราะบรรทัด NameVirtualHost ของคุณมีหมายเลขพอร์ตอยู่ ( :80) แต่ส่วน VirtualHost ของคุณไม่มี


2

ตามที่รูนกล่าวถึงบนระบบเดเบียน NameVirtualHost จะปรากฏขึ้นในหลายไฟล์ - ports.conf, conf.d / virtual.conf และอาจเป็นไฟล์ conf ของคุณเอง int sites-available

ตรวจสอบให้แน่ใจว่ามีอยู่ในที่เดียวเป็น NameVirtualHost *: 80 (ของฉันอยู่ใน conf.d / virtual.conf) และคำเตือนควรดำเนินการ

ดังที่ได้กล่าวไว้คุณจะต้องกำหนดทิศทางของ VirtualHost สำหรับแต่ละไซต์ที่มีอยู่ให้ใช้รูปแบบนี้ <VirtualHost *:80>


2

ฉันมีปัญหาเดียวกัน แต่ฉันปิดการใช้งานเว็บไซต์เริ่มต้นของ Apache ในบางช่วงเวลา ฉันพิมพ์สิ่งที่ชอบ

# a2dissite default

หลังจากฉันพยายามรีสตาร์ท Apache 2 ฉันได้รับข้อความนี้:

"[เตือน] NameVirtualHost *: 80 ไม่มี VirtualHosts"

จากนั้นฉันเปิดใช้งานไซต์ 'เริ่มต้น' ของ Apache 2 อีกครั้งและทุกอย่างทำงานได้อีกครั้งคำสั่งที่ใช้คือ:

# a2ensite default

นั่นคือคนทั้งหมด!


นี่เป็นคำแนะนำที่ดีที่สุด
jini

คำแนะนำที่ยอดเยี่ยมฉันใช้ zpanelCP และไม่มีอะไรทำงานได้นอกจากนี้ ขอบคุณมาก! :)
Eliran Efron
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.