apache 2.4 的配置文件,与2.2版本有了很大的变化。若是从2.2 升级到 2.4,配置文件仍是有挺多须要修改的:一方面,在 module 的使用上,有了很大的不一样。另外一方面,改变了一些配置项的名称。其中,module使用的变化较大,值得记录一下。html
在以前版本中,编译时指定指定的模块,汇编到apache中,运行httpd -l 便可看到,不须要在配置文件中再加载。好比:apache
而在2.4版本中,只是编译到modules 目录中,httpd中只包含核心。须要使用的模块都须要在配置文件中加载,不然不会加载。ui
若是从旧的版本迁移过来的配置,出现相似“Invalid command 'AuthUserFile'”的提示,大概是由于以前apache默认编译内置的模块形成的,只要对照上图,把须要的模块写入到配置文件中。日志
好比,使用用户验证,须要加载这些模块:htm
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule auth_basic_module modules/mod_auth_basic.soit
还有经常使用的:io
LoadModule deflate_module modules/mod_deflate.so 页面输出压缩
LoadModule rewrite_module modules/mod_rewrite.so 页面URL改写,静态化用的
LoadModule log_config_module modules/mod_log_config.so 日志格式改写编译
再来讲另外一方面,指令名称的变化。DefaultType 不支持了,不过只是提示,不会当作配置错误。MaxRequestsPerChild重命名为MaxConnectionsPerChild,MaxClients重命名为MaxRequestWorkers。这个也比较好,旧的名字仍然能够用。module
遇到须要改的比较多的,是认证这一块。Allow、Deny,都改为使用Require了。另外,如上文所述,须要手工把须要的模块加载进来。主要是查模块费了点事儿,写的却是比之前更简洁了:配置
AuthType Basic
AuthName "Password Required"
AuthUserFile /usr/local/apache/conf/dbadmin
Require valid-user
后来找到Apache官方的指导上,发现还有这个东东:Module mod_access_compat , 加载后就能够兼容之前的写法。
其余的变化不是很经常使用,影响不大。官方指导的地址: http://httpd.apache.org/docs/2.4/upgrading.html