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