ไฟล์ใดในสองไฟล์ที่ฉันควรใช้เพื่อกำหนดค่า Apache
httpd.conf
เป็นที่ว่างเปล่าในขณะที่apache2.conf
ไม่ได้เป็น
มันทำให้ฉันสับสน!
ไฟล์ใดในสองไฟล์ที่ฉันควรใช้เพื่อกำหนดค่า Apache
httpd.conf
เป็นที่ว่างเปล่าในขณะที่apache2.conf
ไม่ได้เป็น
มันทำให้ฉันสับสน!
คำตอบ:
httpd.conf ถูกออกแบบมาสำหรับการกำหนดค่าของผู้ใช้ คุณไม่ควรแก้ไข apache2.conf เพราะอาจได้รับการอัพเดตโดยการอัพเกรดในอนาคต
ตัวเลือกเพิ่มเติมคือเพียงแค่กำหนดค่าที่กำหนดเองของคุณลงใน /etc/apache2/conf.d ไฟล์ทั้งหมดในไดเรกทอรีนี้รวมอยู่ด้วย
นี่ไม่ใช่ตัวเลือกเดียวของคุณ ใน Ubuntu / Debian, Apache ยังประมวลผลไฟล์ทั้งหมดใน/etc/apache2/sites-enabled/
(ซึ่งควรเป็น symlink ไปยังไฟล์ในsites-available/
ไดเรกทอรี, จัดการโดยa2ensite
และa2dissite
โปรแกรม)
คุณกำลังตั้งใจจะใช้ไดเรกทอรีเหล่านี้สำหรับVirtualHost
s
apache2.conf รวมถึง httpd.conf:
a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf
Include /etc/apache2/httpd.conf
ฉันคิดว่า httpd.conf เลิกใช้แล้ว แต่เพิ่งเหลือไว้สำหรับคนหัวโบราณเพื่อให้พวกเขาพบว่าพวกเขาเดินไปรอบ ๆ ... :)
แก้ไข:
หลังจากอ่านคำตอบของ Rob ฉันทำ grep ได้ดีขึ้น:
a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf
# Include all the user configurations:
Include /etc/apache2/httpd.conf
การกำหนดค่าของผู้ใช้มันคือ ...
httpd
มูลนิธิซอฟต์แวร์อาปาเช่เผยแพร่บิตจำนวนมากของซอฟต์แวร์ซึ่งเป็นหนึ่งในเว็บเซิร์ฟเวอร์ที่มีชื่อว่า แหล่งที่มาของโครงการ httpd รวมถึงในสิ่งอื่น ๆhttpd.conf
แฟ้มการกำหนดค่าตัวอย่างซึ่งมีการติดตั้งโดยเริ่มต้นในหรือ/usr/local/etc/httpd
/etc/httpd
คุณจะพบ httpd ชื่อดังกล่าวในระบบส่วนใหญ่
แต่นานมาแล้วและอยู่ห่างไกลคนในการกระจาย Debian GNU / Linux ตัดสินใจที่จะเปลี่ยนชื่อของซอฟต์แวร์ภายในกระจายจากไปhttpd
apache2
ดังนั้นในระบบ Debian คุณจะพบแฟ้มการกำหนดค่าที่มีชื่อในไดเรกทอรีชื่อapache2.conf
/etc/apache2
ฉันไม่รู้ว่าใครทำสิ่งนี้หรือเพราะอะไร แต่มันเป็นความสับสนตลอดกาลโดยเรียก Windows "Microsoft" หรือ ESXi "VMware" ดิสทริบิวชันที่ใช้ Debian เช่น Ubuntu จะได้รับความแปลกประหลาดนี้ แม้แต่คนแปลกหน้าพวกเขาก็รวมไฟล์/etc/apache2/httpd.conf
ซึ่งInclude
d จากapache2.conf
ที่ผู้ใช้สามารถวางการกำหนดค่าที่กำหนดเอง
ดังนั้นคำตอบคือถ้าคุณอยู่ในระบบที่ใช้เดเบียนคุณก็งอสมองทำสิ่งที่เดเบียนต้องการให้คุณทำ มิฉะนั้นคุณมักทำสิ่งต่าง ๆ ตามปกติเช่นเดียวกับโครงการ httpd upstream
Apache 2.4
ใช้:
วางการกำหนดค่าแบบกำหนดเองใด ๆ /etc/apache2/conf-available/{name}.conf
เปิด / ปิดการใช้งานการตั้งค่าของคุณโดยใช้หรือsudo a2enconf {name}
sudo a2disconf {name}
(จากนั้นเริ่มบริการ apache2 ใหม่)
อย่าใช้:
httpd.conf
เลิกใช้แล้วและคุณไม่ควรเห็นมันอีกต่อไป - ถ้าคุณทำปล่อยว่างไว้ขณะติดตั้ง
apache2.conf
ยังคงติดตั้งอยู่ แต่ควรปล่อยไว้คนเดียวหากคุณต้องการอัพเกรด Apache อย่างหมดจด / ง่ายดาย
-
ทุกสิ่งที่คุณอาจเห็นในการกำหนดค่า Apache 'ทั่วโลก' สามารถเพิ่ม / ลบล้างได้ภายใต้การกำหนดค่าที่กำหนดเองของคุณตามข้างต้น
เพิ่มเติมได้ที่: https://stackoverflow.com/a/11687212/503621
หากapache2.conf
ไม่ว่างเปล่าและhttpd.conf
ว่างเปล่าคุณควรใช้apache2.conf
;-)
แต่ฉันคิดว่ามีอีกอันหนึ่ง(และอีกอันหนึ่งถูกเก็บไว้อย่างหมดจดด้วยเหตุผลความเข้ากันได้แบบย้อนหลัง) - ดังนั้นมันจึงไม่ควรเปลี่ยนแปลงมากนัก
ยังคงถ้าคุณต้องการที่จะเพิ่มอะไรบางอย่างเช่นใหม่VirtualHost
: ไม่มีไดเรกทอรีย่อยอื่นที่คุณสามารถวางไฟล์ของคุณและรวมไว้หรือไม่
อาจเป็นทางออกที่ดีกว่า: คุณจะไม่แก้ไขไฟล์เริ่มต้น - ซึ่งจะทำให้การอัพเดตง่ายขึ้น
เพียงแค่เปิด apache2.conf แล้วดูเนื้อหา:
Include /etc/apache2/mod-enabled/*.conf
Include /etc/apache2/httpd.conf
ดังนั้นหากคุณต้องการรวมการกำหนดค่าของคุณเองให้เพิ่มเข้าไปใน httpd.conf และ apache2.conf จะได้รับโดยอัตโนมัติ
อย่างที่คนอื่นพูดว่า apache2.conf สามารถสร้างเครื่องจักรขึ้นมาได้และมันจะดีกว่าถ้าไม่ได้สัมผัส
สำหรับข้อมูลเพิ่มเติมโดยทั่วไป Ubuntu ใช้ apache2.conf และ Centos ใช้ httpd.conf ดังนั้นไฟล์เหล่านี้ทั้งหมดขึ้นอยู่กับระบบปฏิบัติการที่คุณใช้
ในการค้นหาชื่อและตำแหน่งของไฟล์กำหนดค่าคุณจะต้อง:
1) ค้นหากระบวนการที่เรียกว่าในกรณีนี้ทำงานกับผู้ใช้ apache:
ps -ef | grep apache
(ในตัวอย่างนี้จะส่งกลับhttpd
)
2) แสดงตัวแปรที่ใช้โดยไบนารี:
httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE'
แยกและภาพหน้าจอได้ที่: http://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html