Apache dos ไม่โหลดไฟล์โฮสต์เสมือน [ปิด]


2

ฉันพยายามตั้งค่าเซิร์ฟเวอร์ Apache2 แต่ฉันไม่สามารถโหลดโฮสต์เสมือนของฉันได้ หรือเพื่อให้แม่นยำยิ่งขึ้นมันทำงานได้ดีตราบใดที่ฉันเขียนไว้000-default.confแต่เมื่อใดก็ตามที่ฉันพยายามใช้ไฟล์แยกต่างหากมันก็ดูเหมือนจะไม่สนใจมันเลย

ดังนั้นคำถามคือทำไมสิ่งนี้ไม่ทำงาน และฉันจะทำให้มันทำงานได้อย่างไร


2
ตรวจสอบคุณยื่นก็ควรมีเส้นเหมือนรวมhttpd.conf conf/*.confตรวจสอบว่าเป็นไวด์การ์ดหรือไฟล์คงที่ (เช่น000-default.conf) นอกจากนี้ตรวจสอบว่าไฟล์ conf ใหม่ของคุณตรงกับ patern 000-default.confตัวแทนและจะถูกเก็บไว้ในโฟลเดอร์เดียวกันกับ ท้ายที่สุดมีการแจกแจงแบบ apache ที่มีไฟล์a availableและactiveไฟล์ conf ดังนั้นในบางกรณีจำเป็นต้องมีซอฟต์ลิงก์เพื่อให้มันทำงานได้
NuTTyX

คุณต้องแก้ไขคำถามเพื่อให้รายละเอียดเพิ่มเติม คุณเขียนไฟล์ที่ไม่ทำงานอยู่ที่ไหน นอกจากนี้เนื้อหาของไฟล์โฮสต์เสมือนแบบสแตนด์อะโลนคืออะไร? คุณสามารถระบุเพศเฉพาะได้ แต่โครงสร้างโดยรวมเป็นอย่างไร
JakeGould

NuTTyX ถูกต้องแม้ว่า
Zlug

@NuTTyX เนื่องจากความคิดเห็นของคุณดูเหมือนจะเป็นคำตอบที่แก้ไขปัญหานี้ได้คุณควรโพสต์เป็นคำตอบจริงเพื่อให้ Zlug สามารถตรวจสอบได้ว่าเป็นคำตอบและคุณจะได้รับรางวัลสำหรับความพยายามนี้
JakeGould

คำตอบ:


5

โดยทั่วไปหากต้องการติดตั้งการกำหนดค่าโฮสต์เสมือนแยกคุณจะวางไว้ในไดเรกทอรีนี้:

/etc/apache2/sites-available/

ดังนั้นหากคุณมีโฮสต์เสมือนชื่อชื่อwww.example.comไฟล์กำหนดค่าสามารถตั้งชื่อwww.example.com.confดังนี้:

/etc/apache2/sites-available/www.example.com.conf

จากนั้นคุณจะเปิดไฟล์นั้นในโปรแกรมแก้ไขข้อความแบบนี้ ฉันใช้nanoเป็นตัวอย่าง แต่อย่าลังเลที่จะใช้เครื่องมือแก้ไขข้อความที่คุณต้องการ:

sudo nano /etc/apache2/sites-available/www.example.com.conf

แล้ววางเนื้อหาที่คล้ายกับสิ่งนี้ลงในwww.example.com.conf:

<VirtualHost *:80>
  ServerAdmin admin@example.com
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ปิดและบันทึกแฟ้มที่แล้วใช้a2ensiteเช่นนี้จะมีระบบการตั้งค่าการเชื่อมโยงสัญลักษณ์จากsites-availableไปsites-enabledเช่นนี้

sudo a2ensite www.example.com.conf

หรือ - ถ้าคุณต้องการ - คุณสามารถใช้ln -sเพื่อตั้งลิงค์สัญลักษณ์ดังนี้:

ln -s /etc/apache2/sites-available/www.example.com.conf /etc/apache2/sites-enabled/www.example.com.conf

เมื่อเสร็จแล้วเพียงโหลด Apache แบบนี้:

sudo service apache2 reload

และถ้าด้วยเหตุผลบางอย่างreloadใช้งานไม่ได้เพียงบังคับให้เริ่มต้นใหม่เช่นนี้:

sudo service apache2 restart

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

ความเสี่ยงคือว่าถ้าคุณบังคับให้restartและมีการพิมพ์ผิดในแฟ้มการกำหนดค่า Apache จะตายเพราะrestartบังคับให้บริการที่สมบูรณ์ตามมาด้วยstop startและถ้าstartโช้คนั้นเซิร์ฟเวอร์จะตายจนกว่าการพิมพ์ผิด / config จะถูกลบทิ้ง


2

ตรวจสอบคุณยื่นก็ควรมีเส้นเหมือนhttpd.conf Include conf/*.confตรวจสอบว่าเป็นไวด์การ์ดหรือไฟล์คงที่ (เช่น000-default.conf)

นอกจากนี้ตรวจสอบว่าไฟล์ conf ใหม่ของคุณตรงกับ patern 000-default.confตัวแทนและจะถูกเก็บไว้ในโฟลเดอร์เดียวกันกับ

ท้ายที่สุดมีการแจกแจงแบบ apache ที่มีไฟล์ conf และ active อยู่ดังนั้นในบางกรณีจำเป็นต้องมีซอฟต์ลิงค์เพื่อให้มันทำงานได้


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