Ubuntu Apache: httpd.conf หรือ apache2.conf?


43

ไฟล์ใดในสองไฟล์ที่ฉันควรใช้เพื่อกำหนดค่า Apache

httpd.confเป็นที่ว่างเปล่าในขณะที่apache2.confไม่ได้เป็น

มันทำให้ฉันสับสน!

คำตอบ:


46

httpd.conf ถูกออกแบบมาสำหรับการกำหนดค่าของผู้ใช้ คุณไม่ควรแก้ไข apache2.conf เพราะอาจได้รับการอัพเดตโดยการอัพเกรดในอนาคต

ตัวเลือกเพิ่มเติมคือเพียงแค่กำหนดค่าที่กำหนดเองของคุณลงใน /etc/apache2/conf.d ไฟล์ทั้งหมดในไดเรกทอรีนี้รวมอยู่ด้วย


5
ฉันไม่มีไฟล์ชื่อ apapche2.conf
Doug Molineux

18

นี่ไม่ใช่ตัวเลือกเดียวของคุณ ใน Ubuntu / Debian, Apache ยังประมวลผลไฟล์ทั้งหมดใน/etc/apache2/sites-enabled/(ซึ่งควรเป็น symlink ไปยังไฟล์ในsites-available/ไดเรกทอรี, จัดการโดยa2ensiteและa2dissiteโปรแกรม)

คุณกำลังตั้งใจจะใช้ไดเรกทอรีเหล่านี้สำหรับVirtualHosts


1
นี่คือคำตอบที่ถูกต้อง! และไฟล์ปรับแต่งพอร์ต / mods ที่ใช้งานได้หากคุณต้องการอธิบายรายละเอียดของคำตอบของคุณ
Sudhi

5

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

การกำหนดค่าของผู้ใช้มันคือ ...


6
+1 "httpd.conf เลิกใช้แล้ว"
feeela

1

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ซึ่งIncluded จากapache2.confที่ผู้ใช้สามารถวางการกำหนดค่าที่กำหนดเอง

ดังนั้นคำตอบคือถ้าคุณอยู่ในระบบที่ใช้เดเบียนคุณก็งอสมองทำสิ่งที่เดเบียนต้องการให้คุณทำ มิฉะนั้นคุณมักทำสิ่งต่าง ๆ ตามปกติเช่นเดียวกับโครงการ httpd upstream


1

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


0

หากapache2.confไม่ว่างเปล่าและhttpd.confว่างเปล่าคุณควรใช้apache2.conf;-)

แต่ฉันคิดว่ามีอีกอันหนึ่ง(และอีกอันหนึ่งถูกเก็บไว้อย่างหมดจดด้วยเหตุผลความเข้ากันได้แบบย้อนหลัง) - ดังนั้นมันจึงไม่ควรเปลี่ยนแปลงมากนัก


ยังคงถ้าคุณต้องการที่จะเพิ่มอะไรบางอย่างเช่นใหม่VirtualHost: ไม่มีไดเรกทอรีย่อยอื่นที่คุณสามารถวางไฟล์ของคุณและรวมไว้หรือไม่

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


ตามที่กล่าวถึงโดย Pascal หากคุณต้องการเพิ่ม VirtualHost ใหม่คุณควรเพิ่มไฟล์ใหม่ภายใต้ sites-available แล้วให้ symlink นั้นเปิดใช้งานไซต์ด้วยคำสั่ง a2ensite - help.ubuntu.com/6.06/ubuntu/serverguide/ C / httpd.html
ccheneson

0

เพียงแค่เปิด 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 ดังนั้นไฟล์เหล่านี้ทั้งหมดขึ้นอยู่กับระบบปฏิบัติการที่คุณใช้


-2

ในการค้นหาชื่อและตำแหน่งของไฟล์กำหนดค่าคุณจะต้อง:

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


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