Apache Virtual Host ชี้ไปที่ DocumentRoot ผิด


9

ฉันใช้งาน VPS บน Digital Ocean ที่ใช้ Ubuntu 12.04.3 พร้อมโฮสต์เสมือน ฉันสามารถตั้งค่าสิ่งต่าง ๆ ตามบทช่วยสอนนี้ได้ที่นี่: https://www.digitalocean.com/community/articles/how-to-set-up-apache-vache-virtual-hosts-on-ubuntu-12-04-lts

อย่างไรก็ตามหลังจากไม่กี่วันฉันก็ไปที่โดเมนหลักของฉัน (noelforte.com) เพื่อตรวจสอบและดูว่าทุกอย่างทำงานได้อย่างราบรื่นหรือไม่ แต่แทนที่จะเห็นหน้าที่เชื่อมโยงไปถึงที่ฉันตั้งไว้ชั่วคราวฉันได้รับการต้อนรับด้วยรายการไดเรกทอรี

ผิดปกติพอโดเมนย่อยที่ผมได้กำหนดค่าด้วย vhosts ยังคงชี้ไปยังไดเรกทอรีที่เหมาะสม /var/wwwแต่โดเมนหลักของฉันหวนกลับไปชี้ไปที่รากเอกสารเริ่มต้นของ

การลบไฟล์การตั้งค่าใน/etc/apache2/sites-availableและการตั้งค่าทุกอย่างขึ้นมาอีกครั้งให้ผลผลลัพธ์เดียวกัน: โดเมนย่อยใด ๆ ที่จะชี้ไปยังสถานที่ที่เหมาะสม แต่ราก TLD /var/wwwยังคงชี้ติด

สิ่งใดที่อาจทำให้เกิดสถานการณ์เช่นนี้และทำไมตอนนั้นมันทำงานอย่างถูกต้อง?

คำตอบ:


12

แก้ไขมัน! วิ่งsudo apache2ctl -Sกลับมาดังต่อไปนี้:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)
         port 80 namevhost media.noelforte.com (/etc/apache2/sites-enabled/media.noelforte.com:1)

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

หากใครบางคนสามารถอธิบายได้ว่าทำไมnoelforte.comการวิ่งตามdefault-000ที่เห็นที่นี่:

port 80 namevhost noelforte.com (/etc/apache2/sites-enabled/000-default:1)

ที่จะช่วยส่องแสงในสิ่งที่อาจได้รับการกำหนดค่าผิดพลาด ขอบคุณ!


ฉันมีปัญหาเดียวกันสำหรับฉันมันเป็นเพราะ ServerName ถูกตั้งค่าเช่นเดียวกับโดเมนในไฟล์ 000- ค่าเริ่มต้น
Hard-Boiled Wonderland

1

สร้าง000-defaultไฟล์ใน/etc/apache2/sites-availableหรือถ้ามันมีอยู่แล้วแก้ไขมัน เป็นที่ที่เว็บเซิร์ฟเวอร์ของคุณจะชี้ถ้าไม่มีการกำหนดโฮสต์เสมือนสำหรับไซต์ที่คุณกำลังค้นหา

ตรวจสอบให้แน่ใจว่ามีไฟล์อยู่/etc/apache2/sites-enabledด้วย ถ้าไม่:ln -s /etc/apache2 sites-available/000-default /etc/apache2/sites-enabled/


มีdefaultไฟล์อยู่ใน/etc/apache2/sites-availableไดเรกทอรีของฉันแล้ว ฉันยังมีโฮสต์เสมือนสำหรับnoelforte.comตั้งค่าและเปิดใช้งาน แต่ไม่ได้ชี้ไปที่รูทเอกสารที่กำหนดไว้ในไฟล์ vhost ทำไม?
Noel Forte

0

คุณต้องแก้ไข /etc/apache2/sites-enabled/yourdomain.conf และเพิ่ม "ServerName" เป็น "yourdomain" เช่น

<VirtualHost *:80>
    ServerName MyDomain
    DocumentRoot /var/www/myDomainFolder
...
</VirtualHost>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.