_default_ VirtualHost ทับซ้อนกันบนพอร์ต 80


10

ฉันได้เพิ่มโฮสต์เสมือน 2 แห่งลงในไฟล์ apache2 conf ของฉันดังนี้:

<VirtualHost *:80>
    DocumentRoot /var/www/html/site1
    ServerName www.site1.com
    ServerAlias site1.com
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot /var/www/html/site2
    ServerName www.site2.com
    ServerAlias site2.com
</VirtualHost>

ฉันได้รับข้อผิดพลาดหลังจากรีสตาร์ท apache ฉันได้รับ:

[เตือน] ค่าเริ่มต้นของ VirtualHost เหลื่อมกันบนพอร์ต 80 ตัวแรกมีความสำคัญกว่า

ค้นหา google และพวกเขาบอกว่ายกเลิกการใส่เครื่องหมายบรรทัดด้านล่างดังนั้นฉันจึง:

NameVirtualHost *:80

เริ่มต้นใหม่และตอนนี้ฉันไม่ได้รับข้อผิดพลาด แต่ทั้งสองไซต์ไปที่ไซต์แรก

วิ่ง Centos5 ฉันจะแก้ไขปัญหานี้ได้อย่างไร

คำตอบ:


13

แน่นอนคุณต้องการ NameVirtualHost ไม่ใส่เครื่องหมายข้อคิดเห็น นั่นบอกเซิร์ฟเวอร์ของคุณไปยังเซิร์ฟเวอร์โฮสต์เสมือนที่แตกต่างกันตามชื่อ Doman ที่ใช้เพื่อเข้าถึงเซิร์ฟเวอร์ นั่นเป็นเหตุผลที่คุณเห็นคำขอทั้งหมดไปที่ไซต์แรกเมื่อถูกลบออก


1
ใช่ฉันได้ทำแล้วและมันก็ยังไม่ทำงาน
David

มันใช้งานไม่ได้กับ site2.com อย่างถูกต้องหรือไม่ ดูเหมือนว่าคำเตือนของคุณจะระบุว่า VirtualHost แรกของคุณเป็นไซต์เริ่มต้นสำหรับชื่อที่ไม่ตรงกัน สิ่งที่สำคัญคือโฮสต์เสมือนทำงานอย่างไร
Christopher Karel

1
หลังจาก uncommented บรรทัดที่ฉันไม่ได้รับการเตือนและเว็บไซต์ทั้งสองยังคงไป site1
เดวิด

เป็นไปได้หรือไม่ที่เบราว์เซอร์ของคุณแคชเนื้อหาจาก site1 ภายใต้โดเมนของ site2 ลองล้างแคชของคุณหรือทำการรีเฟรชที่เหมาะสม (ctrl + F5)
Christopher Karel

1

ฉันแก้ไขปัญหานี้ด้วย CWP แล้ว

เพียงไปที่ /usr/local/apache/conf/sharedip.conf

ตรวจสอบนี้ใส่ * ในเซิร์ฟเวอร์ IP ของคุณ

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName yourdomainserver.ltd
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin root@youremail.com
    <IfModule mod_suphp.c>
        suPHP_UserGroup nobody nobody
    </IfModule>
</VirtualHost>
<Directory "/">
        AllowOverride All
        Allow from all
        Order Deny,Allow
</Directory>

จากนั้นไปที่ /usr/local/apache/conf.d/vhost.conf และตรวจสอบให้แน่ใจว่าแต่ละ virtualhost มีลักษณะเช่นนี้

# vhost_start chango.com.ve
<VirtualHost *:80>
ServerName yourdomain.ltd
ServerAlias www.yourdomain.ltd
ServerAdmin youremail@yourdomain.ltd
DocumentRoot "/home/yourdomain/public_html"
ScriptAlias /cgi-bin/ "/home/yourdomain/public_html/cgi-bin/
# 
# Custom settings are loaded below this line (if any exist)
# Include "/usr/local/apache/conf/userdata/yourdomain/yourdomain.ltd/*.conf    
</VirtualHost>^M
# vhost_end yourdomain.ltd

มันใช้งานได้สำหรับฉัน!

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