ฉันจะแก้ไขข้อผิดพลาด apache2 httpd ได้อย่างไร“ การผสมพอร์ต * และพอร์ตที่ไม่ใช่ * ด้วยที่อยู่ NameVirtualHost ไม่ได้รับการสนับสนุน”


24

นี่คือข้อผิดพลาดที่ฉันได้รับเมื่อบู๊ต Apache2:

 * Starting web server apache2
 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [warn] NameVirtualHost *:80 has no VirtualHosts

ฉันได้ปฏิบัติตามคำแนะนำนี้ในการตั้งค่า Apache เพื่อโฮสต์หลายไซต์:

http://www.debian-administration.org/articles/412

ฉันพบคำถามที่คล้ายกันใน ServerFault และลองใช้โซลูชัน แต่ก็ไม่ได้ช่วย

นี่คือตัวอย่างของการกำหนดค่า VirtualHost สุดท้ายของฉัน:

<VirtualHost *:80>
    ServerAdmin admin@xxx.com
    ServerName  www.xxx.com
    ServerAlias xxx.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/www.xxx.com

    # Logfiles
    ErrorLog  /var/www/www.xxx.com/logs/error.log
    CustomLog /var/www/www.xxx.com/logs/access.log combined
</VirtualHost>

กับโดเมน X'd เพื่อปกป้องผู้บริสุทธิ์ :-)

นอกจากนี้ฉันยังมีไฟล์conf.d / virtual.conf ที่กล่าวถึงในคู่มือที่มีลักษณะเช่นนี้:

NameVirtualHost *

สิ่งที่แปลกคือทุกอย่างดูเหมือนจะทำงานได้ดีสำหรับสองในสามแห่ง


โพสต์การกำหนดค่า Apache httpd ที่สมบูรณ์ของคุณหรืออย่างน้อยทุกบรรทัด NameVirtualHost และ <VirtualHost ... >
joschi

คุณไม่สามารถผสมสองประเภทนี้ใน ip: พอร์ตเดียวกัน ฉันมีเซ็ตอัพที่ฉันมีไอพีสองอันอันหนึ่งมี massvhost ห้อยอยู่อีกอันหนึ่งมีโฮสต์ชื่อตามปกติทั้งหมด ที่สำคัญกว่าเป้าหมายคืออะไร? คุณพยายามทำอะไรให้สำเร็จ คุณมีข้อ จำกัด อะไรบ้าง?
Marcin

คำตอบ:


29

ที่อยู่ IP ที่มีชื่อNameVirtualHostจะต้องตรงกับที่อยู่ IP ในแต่ละVirtualHostองค์ประกอบ

ตัวอย่าง:

NameVirtualHost *:80
NameVirtualHost *:81

<VirtualHost *:80>
# ...
</VirtualHost>

<VirtualHost *:81>
# ...
</VirtualHost>

# This will not work!
<VirtualHost *>
# ...
</VirtualHost>

อ่านเอกสารApache Apache Hostสำหรับรายละเอียด


หวังว่าฉันจะได้คะแนนมากกว่าหนึ่งครั้ง พวกเขาควรเรียกสิ่งนี้ให้ชัดเจนยิ่งขึ้นในเอกสารประกอบ
อเล็กซ์ W

13

แทนที่สิ่งนี้:

NameVirtualHost *

ด้วยสิ่งนี้:

NameVirtualHost *:80

2
ฉันขอขอบคุณคำตอบที่ง่ายและหวังว่าฉันจะยอมรับทั้งใน
rcampbell

5

สิ่งหนึ่งที่ฉันสังเกตเห็นคือการที่คุณไม่สามารถรัน SSL ได้โดยไม่ต้องมีการประกาศอย่างชัดเจน: 80 ในทุกคำสั่ง NameVirtualHost และ VirtualHost, apache จะไม่สนับสนุน:

ชื่อ VirtualHost *

และ

NameVirtualHost *: 443

รวมอยู่ในการตั้งค่าเดียวกันคุณจะได้รับข้อผิดพลาดในการฟัง apache บนพอร์ตศูนย์ถ้าคุณทำเช่นนั้น

สำหรับฉันฉันเพิ่งเพิ่ม: 80 ไปยังโฮสต์ทุกแห่งเพื่อให้ SSL สามารถทำงานได้อย่างเป็นกรรมสิทธิ์


0

Ex:

<VirtualHost 85.25.97.252:80>
ServerName domain.com
ServerAlias ​​*
.domain.com ServerAdmin webmaster@domain.com
DocumentRoot "/var/www/domain.com/httpdocs/"
<Directory "/var/www/domain.com/ httpdocs / ">
ดัชนีตัวเลือก FollowSymLinks
AllowOverride
คำสั่งซื้อทั้งหมดอนุญาตปฏิเสธ
อนุญาตจาก
</Directory>
</VirtualHost> ทั้งหมด

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