Comment activer les modules apache depuis la ligne de commande dans RedHat?

29

Comment activer les modules apache depuis la ligne de commande dans RedHat?

Sur les systèmes Debian / Ubuntu, j'utilise a2enmod pour activer les modules à partir de la ligne de commande.

Existe-t-il un équivalent pour les systèmes de type RedHat / CentOS?

MarshallY
la source

Réponses:

27

Il n'y a pas d'équivalent.

Debian / Ubuntu découpe la configuration d'apache dans un grand nombre de fichiers, où les répertoires des mods et des sites activés sont liés à d'autres extraits de fichiers de configuration. Les scripts a2enmod / a2ensite manipulent simplement ces liens symboliques.

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

Sur les systèmes redhat, la configuration apache est par défaut conservée dans un fichier /etc/httpd/conf/httpd.conf. Tous les modules sont chargés à partir de ce fichier et peuvent être désactivés en mettant en commentaire l'instruction appropriée 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
...

Ce que RedHat / CentOS font est de vous donner une configuration apache assez courante, tandis que debian ajoute ses propres "améliorations". Vous pouvez bien sûr utiliser le système Debian Split Config comme modèle pour créer le vôtre et copier les scripts. Cependant, l'argument principal pour l'installation de Debian est que les paquets du module apache puissent installer leurs propres fichiers de configuration, donc sans cela, c'est beaucoup moins utile


Edit: Si vous cherchez une manière équivalente de scripter cela, je vous suggère d'utiliser le répertoire /etc/httpd/conf.d, tous les fichiers de configuration ici seront inclus. Selon la complexité du script, il peut être judicieux d'écrire directement des fichiers d'une ligne dans conf.d ou d'utiliser des liens symboliques pour des bits plus compliqués.

l'autre reçoit
la source
Alors, que dois-je faire dans mes nouveaux scripts de construction de serveur? folie awk / sed? Créer mes propres fichiers de configuration et les copier pour les placer? Aucune de ces options ne semble attrayante.
MarshallY
1
Je ne sais pas pourquoi tout le monde met à mal votre réponse; il décrit correctement pourquoi on ne trouvera pas les scripts a2enmod dans Red Hat-alikes. Personnellement, mon plan est d'utiliser des marionnettes pour gérer une disposition similaire sur mes boîtes RHEL.
Chad Huneycutt
1
@womble - Je pense que Debian est allé trop loin dans les fichiers minuscules, ayant un fichier entier pour simplement définir les ports qu'apache devrait écouter par exemple, et je pense que les scripts shell juste pour créer un lien symbolique sont aussi une étape trop loin - pour le point où ils confondent les utilisateurs qui ne comprennent pas comment fonctionnent réellement leurs fichiers de configuration. Je n'appellerais pas ça amer.
theotherreceive
Dix ans plus tard, vous devez vous enregistrer sur RHEL / CentOS 7 au moins/etc/httpd/conf.modules.d
cdmo
3

En règle générale, sur un système Redhat, vous trouverez une ligne qui ressemble à ceci à l'intérieur /etc/httpd/conf/httpd.conf:

Inclure conf.d / *. Conf

Lorsque vous copiez un fichier de configuration dans /etc/httpd/conf.d, et qu'il a une .confextension de fichier, il sera récupéré et traité au démarrage d'Apache. Vous trouverez généralement des fichiers de configuration pour des extensions comme mod_phpet mod_svn, et des applications intégrées au serveur Web comme trac, dans ce dossier.

Remarque: pour les modules Apache comme mod_phpou mod_auth_mysqlsur d'autres systèmes qui utilisent RPM, comme OpenSuSE, il peut y avoir d'autres fichiers de configuration (comme /etc/sysconfig/apache2) qui doivent être modifiés pour qu'Apache récupère un nouveau module. Cela dépend en partie de l'outil de gestion du système utilisé, c'est-à-dire yast2. Certains dépendent des produits du marché secondaire qui peuvent être installés, comme plesk / cpanel. Cependant, le dossier ci-dessus est le meilleur endroit pour commencer.

Karl Katzke
la source
Pour toute personne travaillant avec Fedora 21 (et éventuellement d'autres versions ou d'autres distributions de la famille RH), le chargement du module a été déplacé vers un nouveau répertoire appelé /etc/httpd/conf.modules.d/. Vous verrez la ligne suivante dans votre httpd.conf Include conf.modules.d/*.confsi tel est le cas.
Night Owl
1
yum list mod\*

installer les modules que vous souhaitez

par exemple mod_perl

rpm -ql mod_perl.x86_64 | grep /etc/

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

modifier /etc/httpd/conf.d/perl.confpour l'activer

Par défaut, tous les mods sont chargés lorsqu'ils sont installés, si vous ne voulez pas charger quelqu'un

modifier le fichier /etc/httpd/conf.modules.d/02-perl.confet commenter Ligne de chargement avec signe de hachage ( #)

Sérgio
la source
Ceci est la réponse parfaite à la question. «Activer» est différent de «LoadModule».
Raghav Tallam
0

"Activer" les modules est différent de "LoadModules" et installer

  • S'il est déjà installé et est hors ligne, l' utilisateur root peutservice enable httpd
  • Si les modules et leurs fichiers de conf ne sont pas disponibles, l' utilisateur root peutyum install -y <mod_name>
  • vérifier la disponibilité avec yum list mod\*
  • S'ils sont déjà activés et installés, pour les charger afin d'utiliser les fichiers httpd.conf ou * .conf de draft it , comme
    LoadModule ldap_module modules/mod_ldap.so

  • Pour vérifier, si chargé correctement et prêt à l'emploi, apachectl -M

Raghav Tallam
la source