Bagaimana cara mengaktifkan modul apache dari baris perintah di RedHat?

29

Bagaimana cara mengaktifkan modul apache dari baris perintah di RedHat?

Pada sistem Debian / Ubuntu saya menggunakan a2enmod untuk mengaktifkan modul dari baris perintah.

Apakah ada yang setara untuk sistem tipe RedHat / CentOS?

MarshallY
sumber

Jawaban:

27

Tidak ada yang setara.

Debian / Ubuntu memotong konfigurasi apache menjadi sejumlah besar file, di mana direktori mod dan situs yang diaktifkan disinkronkan dengan potongan lain dari file konfigurasi. Script a2enmod / a2ensite hanya memanipulasi symlink ini.

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

Pada sistem redhat, konfigurasi apache secara default disimpan dalam satu file /etc/httpd/conf/httpd.conf. Semua modul dimuat dari file ini, dan dapat dinonaktifkan dengan mengomentari pernyataan LoadModule yang sesuai.

...
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
...

Apa yang RedHat / CentOS lakukan adalah memberi Anda setup apache yang cukup bagus, sementara debian menambahkan "peningkatan" mereka sendiri. Anda tentu saja dapat menggunakan sistem konfigurasi debian split sebagai templat untuk membuat milik Anda sendiri, dan menyalin skrip. Namun, argumen utama untuk setup debian adalah agar paket modul apache dapat menginstal file konfigurasi mereka sendiri, sehingga tanpa itu secara signifikan kurang berguna


Sunting: Jika Anda mencari cara yang setara untuk penulisan skrip ini maka saya sarankan Anda menggunakan direktori /etc/httpd/conf.d, file konfigurasi apa pun di sini akan disertakan. Bergantung pada seberapa rumit skripnya, mungkin masuk akal untuk secara langsung menulis file satu baris ke conf.d, atau menggunakan symlink untuk bit yang lebih rumit.

theecereceive
sumber
Jadi apa yang harus saya lakukan di skrip build server baru saya? awk / sed kegilaan? Buat file konfigurasi saya sendiri dan salin ke tempatnya? Tidak satu pun dari opsi ini yang terdengar menarik.
MarshallY
1
Saya tidak yakin mengapa semua orang mendengar jawaban Anda; itu dengan tepat menjelaskan mengapa kita tidak akan menemukan skrip a2enmod di Red Hat-sama. Secara pribadi, rencana saya adalah menggunakan boneka untuk mengelola tata letak yang serupa pada kotak RHEL saya.
Chad Huneycutt
1
@ Womble - Saya pikir debian telah mengambil hal-hal kecil file terlalu jauh, memiliki seluruh file untuk hanya mengatur port apache apa yang harus didengarkan misalnya, dan saya pikir skrip shell hanya untuk membuat symlink juga merupakan langkah terlalu jauh - untuk titik di mana mereka membingungkan pengguna yang tidak mengerti bagaimana sebenarnya file konfigurasi mereka bekerja. Saya tidak akan menyebutnya pahit.
theotherreceive
Sepuluh tahun kemudian berkomentar, setidaknya pada RHEL / CentOS 7, Anda harus check-in/etc/httpd/conf.modules.d
cdmo
3

Biasanya, pada sistem Redhat, Anda akan menemukan garis yang terlihat seperti ini di dalam /etc/httpd/conf/httpd.conf:

Sertakan conf.d / *. Conf

Ketika Anda menyalin file konfigurasi ke dalam /etc/httpd/conf.d, dan itu memiliki .confekstensi file, maka itu akan diambil dan diproses saat apache dimulai. Anda biasanya akan menemukan file konfigurasi untuk ekstensi seperti mod_phpdan mod_svn, dan aplikasi yang terintegrasi dengan server web seperti trac, di dalam folder ini.

Catatan: untuk modul apache seperti mod_phpatau mod_auth_mysqlpada sistem lain yang menggunakan RPM, seperti OpenSuSE, mungkin ada file konfigurasi lain (seperti /etc/sysconfig/apache2) yang perlu diedit agar apache mengambil modul baru. Beberapa di antaranya tergantung pada alat manajemen sistem yang digunakan, yaitu yast2. Beberapa itu tergantung pada produk aftermarket yang dapat diinstal, seperti plesk / cpanel. Namun, folder di atas adalah tempat terbaik untuk memulai.

Karl Katzke
sumber
Bagi siapa pun yang bekerja dengan Fedora 21 (dan mungkin versi lain atau distro keluarga RH lainnya) pemuatan modul telah dipindahkan ke direktori baru bernama /etc/httpd/conf.modules.d/. Anda akan melihat baris berikut di httpd.conf Anda Include conf.modules.d/*.confjika itu masalahnya.
Night Owl
1
yum list mod\*

instal modul yang Anda inginkan

sebagai contoh mod_perl

rpm -ql mod_perl.x86_64 | grep /etc/

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

edit /etc/httpd/conf.d/perl.confuntuk mengaktifkannya

Secara default, semua mod dimuat ketika diinstal, jika Anda tidak ingin memuat seseorang

edit file dalam /etc/httpd/conf.modules.d/02-perl.confdan komentar Muat baris dengan tanda pagar ( #)

Sérgio
sumber
Ini adalah jawaban sempurna untuk Pertanyaan. 'Aktifkan' berbeda dari 'LoadModule'.
Raghav Tallam
0

Modul 'Enable' berbeda dari "LoadModules" dan Install

  • Jika sudah Terinstal dan sedang offline, pengguna root bisaservice enable httpd
  • Jika modul dan file confnya tidak tersedia, root user bisayum install -y <mod_name>
  • periksa ketersediaan dengan yum list mod\*
  • Jika sudah diaktifkan dan diinstal, untuk memuatnya menggunakan konsep httpd.conf atau * .conf file, sebagai
    LoadModule ldap_module modules/mod_ldap.so

  • Untuk Memverifikasi, jika Dimuat dengan benar dan siap digunakan, apachectl -M

Raghav Tallam
sumber