วัตถุประสงค์ของเดเบียน dirs "เว็บไซต์ที่พร้อมใช้งาน" และ "เปิดใช้งานไซต์"


60

ใครสามารถบอกฉัน - สั้น - วัตถุประสงค์ของไดเรกทอรีทั้งสองนี้อยู่ใน Debian?

/etc/apache2/sites-enabled
/etc/apache2/sites-available

ฉันสังเกตเห็นว่าแตกต่างsites-available/000-defaultและsites-enabled/defaultแสดงว่าพวกเขาเหมือนกัน

สิ่งที่ช่วยให้?

คำตอบ:


63

sites-available มีไฟล์ apache config สำหรับแต่ละไซต์ของคุณ ตัวอย่างเช่น:

<VirtualHost *:80>
  ServerName site.mysite.com
  ServerAdmin my@email.com

  DirectoryIndex index.php
  DocumentRoot /home/user/public_html/site.mysite.com/public

  LogLevel warn
  ErrorLog /home/user/public_html/site.mysite.com/logs/error.log
  CustomLog /home/user/public_html/site.mysite.com/logs/access.log combined
</VirtualHost>

เมื่อคุณต้องการเพิ่มไซต์ใหม่ (ตัวอย่างเช่น site.mysite.com) คุณเพิ่มไซต์ที่นี่และใช้:

a2ensite site.mysite.com

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


12
หากคุณต้องการปิดการใช้งานเว็บไซต์คุณจะเรียกใช้ a2dissite site.mysite.com

2
a2ensiteและa2dissiteอยู่ในตำแหน่ง/usr/sbinที่ไม่รวมอยู่ในเส้นทางผู้ใช้เริ่มต้นดังนั้นการทำให้แท็บสมบูรณ์จะไม่ทำงาน เมื่อพิมพ์sudo a2และกดปุ่มแท็บ แต่คุณจะได้รับทั้งสองและa2ensite a2dissite
Stefan Schmidt

22

สำคัญกว่ากลไกของระบบคือเหตุผล ...

Debian มีไดเรกทอรีแยกกันสองแห่งเพื่อให้คุณจัดการ Apache configs ของคุณโดยอัตโนมัติคุณสามารถปล่อย vhosts sites-availableทั้งหมดลงในเครื่องทั้งหมดของคุณและจากนั้น vhosts แต่ละตัวสามารถเปิดใช้งานได้บนเซิร์ฟเวอร์ที่ให้บริการจริง นอกจากนี้ยังหมายความว่าคุณสามารถปิดการใช้งานเว็บไซต์ได้ทันทีในกรณีที่ก่อให้เกิดปัญหา ( a2dissite example.com; /etc/init.d/apache2 reload)


1
อันนี้เป็นคำตอบที่แท้จริงสำหรับคำถามเดิม
silpol

5

หากต้องการเพิ่มไฟล์ข้างต้นไฟล์ในsites-enabledคือ symlink ไปยังsites-availableไฟล์:

ls -l /etc/apache2/sites-enabled/

มันไม่ใช่แค่เนื้อหาเดียวกันมันเป็นไฟล์จริงเดียวกัน!


5

ข้อมูลสำคัญ:

คุณควรจะแก้ไขไฟล์เท่านั้นในsites-availableไดเรกทอรี

อย่าแก้ไขไฟล์ในsites-enabledไดเรกทอรีมิฉะนั้นคุณอาจมีปัญหาหากตัวแก้ไขของคุณมีหน่วยความจำไม่เพียงพอหรือไม่ว่าด้วยเหตุผลใดก็ตามมันจะได้รับ SIGHUP หรือ SIGTERM

ตัวอย่างเช่น: หากคุณใช้nanoเพื่อแก้ไขไฟล์sites-enabled/defaultและหน่วยความจำไม่เพียงพอหรือด้วยเหตุผลใดก็ตามไฟล์นั้นจะได้รับ SIGHUP หรือ SIGTERM จากนั้นnanoจะสร้างไฟล์ฉุกเฉินที่เรียกว่าdefault.saveภายในsites-enabledไดเรกทอรี ดังนั้นจะมีไฟล์พิเศษอยู่ในsites-enabledไดเรกทอรี ที่จะป้องกันไม่ให้ Apache หรือ NGINX เริ่มทำงาน หากไซต์ของคุณใช้งานได้จะไม่เกิดขึ้นอีก คุณจะมีช่วงเวลาที่ยากลำบากจนกว่าคุณจะค้นพบสิ่งที่เกี่ยวข้องกับdefault.saveไฟล์และจากนั้นในไฟล์บันทึก

ในตัวอย่างด้านบนหากคุณแก้ไขไฟล์ในsites-availableไดเรกทอรีจะไม่มีอะไรเลวร้ายเกิดขึ้น ไฟล์sites-available/default.saveจะถูกสร้างขึ้น แต่จะไม่ทำอันตรายใด ๆ ภายในsites-availableไดเรกทอรี


น่าสนใจมาก! มีใครยืนยันได้ไหม
aaaidan

นี่คือตัวอย่างของคนที่มีปัญหานี้: stackoverflow.com/questions/36808705/ …
Vini

สิ่งที่คล้ายกันเกิดขึ้นในลิงค์ต่อไปนี้ ดูความคิดเห็น Melvyn ในเครื่องตอบรับเกี่ยวกับการแก้ไขไฟล์ในเว็บไซต์ที่เปิดใช้งาน stackoverflow.com/questions/26210115/…
Vini
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.