Apache modüllerini RedHat'ta komut satırından nasıl etkinleştiririm?


29

Apache modüllerini RedHat'ta komut satırından nasıl etkinleştiririm?

Debian / Ubuntu sistemlerinde modülleri komut satırından etkinleştirmek için a2enmod kullanıyorum.

RedHat / CentOS tipi sistemler için bir eşdeğer var mı?

Yanıtlar:


27

Eşdeğer yoktur.

Debian / Ubuntu, apache konfigürasyonunu çok sayıda dosyaya ayırır; burada mod ve sitelerin bulunduğu dizinler, diğer konfigürasyon dosya snippet'lerine bağlanır. A2enmod / a2ensite komut dosyaları, sadece bu sembolik bağları değiştirir.

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 sistemlerinde apache yapılandırması varsayılan olarak /etc/httpd/conf/httpd.conf dosyasında tutulur. Tüm modüller bu dosyadan yüklenir ve uygun LoadModule deyimini yorumlayarak devre dışı bırakılabilir.

...
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 ne yapıyorsa, size oldukça iyi bir stok apache kurulumu sağlıyor, debian ise kendi "geliştirmelerini" ekliyor. Elbette debian split config sistemini kendi şablonunuz olarak kullanabilir ve scriptleri kopyalayabilirsiniz. Bununla birlikte, debian kurulumunun ana argümanı, apache modül paketlerinin kendi yapılandırma dosyalarını yükleyebilmesidir, bu sayede önemli ölçüde daha az faydalıdır.


Düzenleme: Eşdeğer bir komut dosyası komut dosyası arıyorsanız, o zaman /etc/httpd/conf.d dizinini kullanmanızı öneririm, buradaki herhangi bir yapılandırma dosyası eklenecektir. Komut dosyasının ne kadar karmaşık olduğuna bağlı olarak, doğrudan bir satır dosyayı conf.d içine yazmak veya daha karmaşık bitler için sembolik bağlantılar kullanmak mantıklı olabilir.


Peki, yeni sunucumda kod oluşturma betiğimde ne yapabilirim? awk / sed çılgınlığı? Kendi konfigürasyon dosyalarımı oluştur ve bunları yerine kopyala. Bu seçeneklerin hiçbiri çekici gelmiyor.
MarshallY

1
Neden herkesin cevabınıza zarar verdiğinden emin değilim; Red Hat-alikes'te neden a2enmod komut dosyalarını bulamayacağınızı doğru bir şekilde açıklar. Şahsen, planım RHEL kutularımda benzer bir düzeni yönetmek için kukla kullanmaktır.
Chad Huneycutt

1
@womble - Debian'ın küçük dosyaları çok fazla götürdüğünü, örneğin apache'nin hangi portları dinleyeceğini belirlemek için tam bir dosyaya sahip olduğunu düşünüyorum ve sanırım sadece bir sembolik bağlantı kurmak için kabuk komut dosyalarının da çok uzak bir adım olduğunu düşünüyorum. yapılandırma dosyalarının gerçekte nasıl çalıştığını anlamayan kullanıcıları şaşırtdıkları nokta. Buna acı demezdim.
Theotherr,

On yıl sonra yorum, en az RHEL / CentOS 7, check-in yapmanız gerekir/etc/httpd/conf.modules.d
cdmo

3

Genellikle, bir Redhat sisteminde, içinde buna benzeyen bir çizgi bulacaksınız /etc/httpd/conf/httpd.conf:

Conf.d / *. Conf ekleyin

Bir yapılandırma dosyasını kopyaladığınızda /etc/httpd/conf.dve bir .confdosya uzantısına sahip olduğunuzda, apache başlarken alınacak ve işlenecektir. Genellikle gibi uzantıları için yapılandırma dosyaları bulacaksınız mod_phpve mod_svnbenzeri web sunucusu ile entegre ve uygulamalar tracbu klasör içinde.

Yan not: OpenSuSE gibi RPM kullanan diğer sistemler gibi mod_phpya mod_auth_mysqlda diğer sistemlerdeki apache modülleri için , apache'nin /etc/sysconfig/apache2yeni bir modül alması için düzenlenmesi gereken başka yapılandırma dosyaları (gibi ) olabilir. Bunlardan bazıları kullanılan sistem yönetim aracına, yani yast2'ye bağlıdır. Bazıları plesk / cpanel gibi kurulabilecek satış sonrası ürünlere bağlı. Ancak, yukarıdaki klasör, başlamak için en iyi yerdir.


Fedora 21 ile çalışanlar (ve muhtemelen diğer sürümler veya diğer RH ailesi dağıtımları) için modül yükleme /etc/httpd/conf.modules.d/ adlı yeni bir dizine taşındı. Bu Include conf.modules.d/*.confdurumda , httpd.conf dosyasında aşağıdaki satırı göreceksiniz .
Gece Baykuş

1
yum list mod\*

istediğiniz modülleri kurun

Örneğin 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.confetkinleştirmek için düzenle

Birini yüklemek istemiyorsanız, varsayılan olarak tüm modlar yüklendiğinde yüklenir.

dosyayı düzenleyin /etc/httpd/conf.modules.d/02-perl.confve yorum yapın Sath işareti olan satırını yükleyin ( #)


Bu soruya mükemmel bir cevap. 'Enable', 'LoadModule' den farklı.
Raghav Tallam

0

'Enable' Modules, "LoadModules" dan farklıdır ve

  • Zaten Yüklü ve çevrimdışıysa, kök kullanıcıservice enable httpd
  • Modüller ve onların conf dosyaları mevcut değilse, root kullanıcısıyum install -y <mod_name>
  • ile durumunu kontrol et yum list mod\*
  • Zaten etkinleştirilmiş ve yüklü ise, onları taslak olarak kullanmak üzere yüklemek için httpd.conf veya * .conf dosyalarını kullanın.
    LoadModule ldap_module modules/mod_ldap.so

  • Doğru şekilde yüklenmiş ve kullanıma hazırsa, Doğrulamak için apachectl -M

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.