ฉันจะเปิดใช้งานโมดูล apache จากบรรทัดคำสั่งใน RedHat ได้อย่างไร


29

ฉันจะเปิดใช้งานโมดูล apache จากบรรทัดคำสั่งใน RedHat ได้อย่างไร

ในระบบ Debian / Ubuntu ฉันใช้ a2enmod เพื่อเปิดใช้งานโมดูลจากบรรทัดคำสั่ง

มีระบบเทียบเท่าสำหรับ RedHat / CentOS หรือไม่?

คำตอบ:


27

ไม่มีอะไรเทียบเท่า

Debian / Ubuntu นำการกำหนดค่า apache ไปใช้เป็นไฟล์จำนวนมากโดยที่ไดเรกทอรีของ mods และไซต์ที่เปิดใช้งานนั้นเชื่อมโยงกับตัวอย่างไฟล์การกำหนดค่าอื่น ๆ สคริปต์ a2enmod / a2ensite เพียงจัดการกับ symlink เหล่านี้

debian$ ls /etc/apache2/mods-enabled 
lrwxrwxrwx 1 root root 28 2009-03-12 18:02 alias.conf -> ../mods-available/alias.conf
lrwxrwxrwx 1 root root 28 2009-03-12 18:02 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root root 33 2009-03-12 18:02 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 2009-03-12 18:02 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root root 36 2009-03-12 18:02 authz_default.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root root 26 2009-03-12 18:02 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root root 27 2009-03-12 18:02 mime.conf -> ../mods-available/mime.conf
lrwxrwxrwx 1 root root 27 2009-03-12 18:02 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 34 2009-03-12 18:02 negotiation.conf -> ../mods-available/negotiation.conf
lrwxrwxrwx 1 root root 34 2009-03-12 18:02 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root root 27 2009-06-16 21:47 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root 27 2009-06-16 21:47 php5.load -> ../mods-available/php5.load

ในระบบ redhat การตั้งค่า apache นั้นจะถูกเก็บไว้ในไฟล์ /etc/httpd/conf/httpd.conf โมดูลทั้งหมดถูกโหลดจากไฟล์นี้และสามารถปิดใช้งานได้โดยการคอมเม้นต์ข้อความสั่ง LoadModule ที่เหมาะสม

...
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
...

สิ่งที่ RedHat / CentOS กำลังทำอยู่นั้นให้คุณตั้งค่า Apache สวย ๆ ในขณะที่เดเบียนเพิ่ม "การปรับปรุง" ของตัวเอง แน่นอนคุณสามารถใช้ระบบกำหนดค่าแยกเดเบียนเป็นแม่แบบเพื่อสร้างของคุณเองและคัดลอกสคริปต์ อย่างไรก็ตามอาร์กิวเมนต์หลักสำหรับการตั้งค่าเดเบียนคือเพื่อให้แพคเกจโมดูล apache สามารถติดตั้งไฟล์ปรับแต่งของตัวเองดังนั้นโดยที่ไม่มีประโยชน์อย่างมาก


แก้ไข:หากคุณกำลังมองหาวิธีการเขียนสคริปต์ที่เท่าเทียมกันนี้ฉันขอแนะนำให้คุณใช้ไดเรกทอรี /etc/httpd/conf.d ไฟล์ config ใด ๆ ในที่นี้จะรวมอยู่ด้วย ขึ้นอยู่กับความซับซ้อนของสคริปต์มันอาจจะเหมาะสมที่จะเขียนไฟล์หนึ่งไฟล์ลงใน conf.d โดยตรงหรือใช้ symlink สำหรับบิตที่ซับซ้อนมากขึ้น


ดังนั้นฉันจะทำอย่างไรในสคริปต์สร้างเซิร์ฟเวอร์ใหม่ awk / sed madness? สร้างไฟล์ปรับแต่งของฉันเองและคัดลอกไปยังที่หรือไม่ ไม่มีตัวเลือกเหล่านี้ที่น่าสนใจ
MarshallY

1
ฉันไม่แน่ใจว่าทำไมทุกคนหยั่งรู้ในคำตอบของคุณ; อธิบายได้อย่างถูกต้องว่าเหตุใดจึงไม่พบสคริปต์ a2enmod ใน Red Hat-alikes โดยส่วนตัวแผนของฉันคือใช้หุ่นเชิดเพื่อจัดการเลย์เอาต์ที่คล้ายกันในกล่อง RHEL ของฉัน
Chad Huneycutt

1
@ womble - ฉันคิดว่า debian ได้ใช้ไฟล์เล็ก ๆ น้อย ๆ มากเกินไปในการมีไฟล์ทั้งหมดสำหรับตั้งค่าพอร์ต apache ที่ควรฟังตัวอย่างเช่นและฉันคิดว่าเชลล์สคริปต์เพียงเพื่อทำให้ symlink เป็นขั้นตอนที่ไกลเกินไป จุดที่พวกเขาสับสนผู้ใช้ที่ไม่เข้าใจว่าไฟล์ปรับแต่งใช้งานได้จริงอย่างไร ฉันจะไม่เรียกมันว่าขม
theotherreceive

สิบปีต่อมาแสดงความคิดเห็นอย่างน้อย RHEL / CentOS 7 คุณต้องเช็คอิน/etc/httpd/conf.modules.d
cdmo

3

โดยทั่วไปในระบบ Redhat คุณจะพบบรรทัดที่มีลักษณะ/etc/httpd/conf/httpd.confดังนี้:

รวม conf.d / *. conf

เมื่อคุณคัดลอกไฟล์การกำหนดค่า/etc/httpd/conf.dและมี.confนามสกุลไฟล์มันจะถูกหยิบขึ้นมาและประมวลผลเมื่อ apache เริ่มทำงาน โดยทั่วไปคุณจะพบไฟล์กำหนดค่าสำหรับส่วนขยายเช่นmod_phpและmod_svnและแอปพลิเคชันที่รวมเข้ากับเว็บเซิร์ฟเวอร์เช่นtracในโฟลเดอร์นี้

หมายเหตุด้านข้าง: สำหรับโมดูล apache เช่นmod_phpหรือmod_auth_mysqlบนระบบอื่น ๆ ที่ใช้ RPM เช่น OpenSuSE อาจมีไฟล์การกำหนดค่าอื่น ๆ (เช่น/etc/sysconfig/apache2) ที่จำเป็นต้องได้รับการแก้ไขเพื่อให้ apache รับโมดูลใหม่ บางสิ่งนี้ขึ้นอยู่กับเครื่องมือการจัดการระบบที่ใช้งานอยู่นั่นคือ yast2 บางส่วนขึ้นอยู่กับผลิตภัณฑ์หลังการขายที่สามารถติดตั้งได้เช่น plesk / cpanel อย่างไรก็ตามโฟลเดอร์ด้านบนเป็นจุดเริ่มต้นที่ดีที่สุด


สำหรับทุกคนที่ทำงานกับ Fedora 21 (และอาจเป็นรุ่นอื่น ๆ หรือ distros ตระกูล RH อื่น ๆ ) การโหลดโมดูลได้ถูกย้ายไปยังไดเรกทอรีใหม่ชื่อ /etc/httpd/conf.modules.d/ คุณจะเห็นบรรทัดต่อไปนี้ใน httpd.conf ของคุณInclude conf.modules.d/*.confหากเป็นเช่นนั้น
Night Owl

1
yum list mod\*

ติดตั้งโมดูลที่คุณต้องการ

ตัวอย่างเช่น mod_perl

rpm -ql mod_perl.x86_64 | grep /etc/

/etc/httpd/conf.d/perl.conf
/etc/httpd/conf.modules.d/02-perl.conf

แก้ไข/etc/httpd/conf.d/perl.confเพื่อเปิดใช้งาน

โดยค่าเริ่มต้น mods ทั้งหมดจะถูกโหลดเมื่อติดตั้งหากคุณไม่ต้องการโหลดใครบางคน

แก้ไขไฟล์/etc/httpd/conf.modules.d/02-perl.confและแสดงความคิดเห็นโหลดบรรทัดด้วยเครื่องหมายแฮช ( #)


นี่คือคำตอบที่สมบูรณ์แบบสำหรับคำถาม 'เปิดใช้งาน' แตกต่างจาก 'LoadModule'
Raghav Tallam

0

โมดูล 'เปิดใช้งาน' จะแตกต่างจาก "โหลดโมดูล" และติดตั้ง

  • หากติดตั้งแล้วและออฟไลน์ผู้ใช้รูทสามารถทำได้service enable httpd
  • หากโมดูลและไฟล์ conf ไม่พร้อม ใช้งานผู้ใช้รูทสามารถyum install -y <mod_name>
  • ตรวจสอบความพร้อมด้วย yum list mod\*
  • หากเปิดใช้งานและติดตั้งแล้วให้โหลดเพื่อใช้แบบร่างไฟล์ httpd.confหรือ* .confเช่น
    LoadModule ldap_module modules/mod_ldap.so

  • หากต้องการตรวจสอบว่าโหลดอย่างถูกต้องและพร้อมใช้งานแล้ว apachectl -M

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