it-swarm.cn

如何在RedHat中从命令行启用Apache模块?

如何在RedHat中从命令行启用Apache模块?

在Debian/Ubuntu系统上,我使用a2enmod从命令行启用模块。

RedHat/CentOS类型的系统是否等效?

30
MarshallY

没有对等的东西。

Debian/Ubuntu将Apache配置屠宰为大量文件,其中mods和启用的站点目录与其他配置文件片段符号链接。 a2enmod/a2ensite脚本只是操纵这些符号链接。

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设置,而debian则添加了自己的“改进”。当然,您可以使用debian split配置系统作为模板来制作自己的模板并复制脚本。但是,debian安装程序的主要观点是,Apache模块软件包可以安装自己的配置文件,因此如果没有它,它的用处就会大大减少


编辑:如果您正在寻找一种等效的脚本编写方式,那么我建议您使用/etc/httpd/conf.d目录,此处将包含所有配置文件。根据脚本的复杂程度,可以直接将一个行文件写入conf.d,或者对更复杂的位使用符号链接。

27
theotherreceive

通常,在Redhat系统上,您会在/etc/httpd/conf/httpd.conf中找到类似于以下内容的行:

包括conf.d/*。conf

当您将配置文件复制到/etc/httpd/conf.d中,并且文件扩展名为.conf时,它将在Apache启动时进行选择和处理。通常,您会在此文件夹中找到mod_phpmod_svn等扩展名的配置文件,以及与trac之类的Web服务器集成的应用程序。

旁注:对于其他使用RPM的系统,例如mod_phpmod_auth_mysql,例如OpenSuSE,Apache模块可能需要编辑其他配置文件(例如/etc/sysconfig/Apache2),以便Apache选择一个新模块。其中一些取决于所使用的系统管理工具,即yast2。其中有些取决于可以安装的售后市场产品,例如plesk/cpanel。但是,上面的文件夹是最好的开始。

3
Karl Katzke
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以启用它

默认情况下,如果您不想加载某人,则在安装时会加载所有mod

编辑/etc/httpd/conf.modules.d/02-Perl.conf中的文件,并注释加载带有井号(#)的行

1
Sérgio

“启用”模块与“ LoadModules”和“安装”不同

  • 如果已安装且处于脱机状态,则root用户可以service enable httpd
  • 如果模块及其conf文件不可用,则root用户可以yum install -y <mod_name>
  • 使用yum list mod\*检查可用性
  • 如果已经启用并安装,请加载它们以使用草稿httpd.conf*。conf文件,如下所示
    LoadModule ldap_module modules/mod_ldap.so

  • 要进行验证,如果已正确加载并可以使用,则apachectl -M

0
Raghav Tallam