[Apache] Apache 從 2.2 換至 2.4 httpd.conf 的調整筆記 (windows 環境)
原文地址: http://www.dotblogs.com.tw/maplenote/archive/2012/07/20/apache24_httpd_conf.aspx
整理一下 Windows 環境 從 Apache 2.2 改成 Apache 2.4.1 後 httpd.conf 的設定筆記及遇到的問題
若有興趣可以先看一下官方文件說明 2.4 的差異 ( 我當然是...沒有看完 Orz )
http://httpd.apache.org/docs/2.4/upgrading.html
http://httpd.apache.org/docs/2.4/new_features_2_4.html
/*2012.12.25 補充*/
apache 2.4.3 版有對 window 版的 ssl bug 做修正 ,bug 說明 http://www.apachelounge.com/viewtopic.php?p=22306
這個 bug 簡而言之就是會讓 443 的頁面連線掛點...
1. 權限設定方式變更
原本使用 Order Deny / Allow 的方式,改用 Require
官方範例:
2.2 configuration:
Order deny,allow
Deny from all
在 2.4 需要改成
2.4 configuration:
Require all denied
比較常用到的有以下幾種
Require all denied
Require all granted
Require host xxx.com
Require ip 192.168.1 192.168.2
Require local
注意 : 若有設定在 .htaccess 中的也要修改
詳細指令說明 : http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require
2. 設定 Log 紀錄方式變更
RewriteLogLevel 指令 改為 logLevel
LogLevel 設定第一個值是針對整個 Apache 設的預設等級,後方可以對指定的模組修改此模組的 Log 記錄等級
範例:
LogLevel warn rewrite: warn
詳細指令說明 請查看: http://httpd.apache.org/docs/2.4/mod/core.html#loglevel
3. Namevirtualhost 被移除
雖然我查官方文件是還有 NameVirtualHost 指令,但是執行時會出現錯誤。
官方文件也寫了這個指令目前是無作用的,因此刪掉此設定。
詳細說明: http://httpd.apache.org/docs/2.4/mod/core.html#namevirtualhost
4. 其他要多載入的模組
使用網站壓縮除了開啟 mod_deflate 外 ,在 Apache 2.4 中還需要多開 mod_filter
使用SSL憑證除了開啟 mod_ssl 外 ,在 Apache 2.4 中還需要多開 mod_socache_shmcb
5. 在 windows 環境建議的設定
EnableSendfile Off
EnableMMAP Off
另外,當 Log 有出現 AcceptEx failed 相關錯誤時,建議調整以下設定
AcceptFilter http none
#AcceptFilter https none 這行 apache 2.4.1 設了就不能連443了,所以我沒設定,在 apache 2.4.3 版可正常運作
bug 修正相關文件:http://www.apachelounge.com/viewtopic.php?p=22306
指令說明 http://httpd.apache.org/docs/2.4/mod/core.html#acceptfilter
備註: Win32DisableAcceptEx 指令在 apache2.4 被 AcceptFilter None 取代
相關參考文章:
http://www.neo.com.tw/archives/000223
http://www.iteye.com/news/24881
http://www.apachelounge.com/viewtopic.php?t=4450
6. Listen 的設定調整
以 443 為例,不可以只設定 Listen 443
會出現以下錯誤
(OS 10048)一次只能用一個通訊端位址(通訊協定/網路位址/連接埠)。 : AH00072: make_sock: could not bind to address [::]:443
(OS 10048)一次只能用一個通訊端位址(通訊協定/網路位址/連接埠)。 : AH00072: make_sock: could not bind to address 0.0.0.0:443
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs
因此需指定監聽的 IP ,可設定多個
例如:
Listen 192.168.2.1:443
Listen 127.0.0.1:443
其他異常BUG :
某天突然心血來潮測試了一下可不可以開啟 .htaccess 的檔案,很驚恐的居然可以開啟 冏
原本 httpd.conf 預設不可開啟 .ht* 的設定失效!
<Files ".ht*">
Require all denied
</Files>
測試的結果,httpd.conf 裡的 <Files> 跟 <FilesMatch> 完全失效 !
不確定跟 <VirtualHost> 設定有沒有關係 ( 其實我跟 httpd.conf 沒這麼熟,我都是被刀抵著脖子的 =..=a )
經過半天的折磨,最後發現改用 LocationMatch 設定還勉強行得通
因為我沒有用到 htpasswd ,所以比較不怕 .ht* 的檔案被開啟 ....所以就先用這種跛腳的方式解決了.....
例如:
<LocationMatch "\.svn">
Require all denied
</LocationMatch>
注意: 子階層的 LocationMatch 設定,指令要設在母階層的行數之下,不然會被覆蓋
且不可以對 " .ht* " 設定!!
因為 Server 就無法讀取 .ht* 的資料...當然裡面的設定就不能跑了
另外就是 .htaccess 中,<Files> 跟 <FilesMatch> 可能會失效
而且 .htaccess 裡無法設定 LocationMatch .........(嘆氣)
在我的環境中,Server 2008 的 .htaccess 有生效,
但是在 Win7 環境中,放在第二層資料夾的 .htaccess 有生效 ,若第三層資料夾才放 .htaccess 就會失效
總之一整個詭異...只好先當作 BUG 看待
[Apache] Apache 從 2.2 換至 2.4 httpd.conf 的調整筆記 (windows 環境)的更多相关文章
- Apache重启报警,不存在虚拟主机目录(httpd.conf打开了一些扩展)
Apache重启时报警: AH00112: Warning: DocumentRoot [/usr/local/apache/docs/dummy-host.example.com] does not ...
- 安装完Apache后,配置httpd.conf来使apache来加载php模块
以apache模块的方式来安装php,在httpd.conf文件中首先使用LoadModule php5_module '.../php5apache2.dll'来动态装载Php模块,然后再用语句Ad ...
- Apache主配置文件httpd.conf 详解
Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ Apache服务器的配置信息全部存储在主配置文件/etc/httpd/co ...
- Apache Permission denied (httpd.conf配置和目录权限无问题)解决办法
今天在CentOS5.9中配置zabbix时出现错误:Apache 403 error, (13)Permission denied: access to / denied 检查了一圈httpd.co ...
- 转:浅谈UNIX下Apache的MPM及httpd.conf配置文件中相关参数配置
为什么要并发处理 以Apache为代表的web服务器中,如果不支持并发,则在一个客户端连接的时候,如果该客户端的任务没有处理完,其他连接的客户端将会一直处于等待状态,这事不可想象的,好像没有为什么要不 ...
- 配置apache apache服务器如何配置多站点
http://jingyan.baidu.com/article/5225f26b07605be6fa090890.html 让Apache在启动时能加载虚拟主机模块. 打开Apache安装目录下co ...
- 关于apache httpd.conf脚本的理解
新人一枚,这两天一直在研究lamp的搭建,感觉自己对apache理解的不够深彻,决定写这一篇(翻译)httpd.conf文件 未完待续 cat /usr/local/apache/conf/httpd ...
- Apache 的 httpd.conf 详解
ServerRoot “/usr/local“ ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是 ...
- Apache配置文件httpd.conf内容翻译
本文已经废弃,现在apache2不依靠httpd.conf来配置. Ubuntu下默认的配置文件是/etc/apache2/sites-available/default 可以修改上面文件来修改a ...
随机推荐
- sql server 提取汉字/数字/字母的方法
sql server 提取汉字/数字/字母的方法 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULL DROP FUNCTION DBO.GET_NU ...
- 配置sql server 2000以允许远程访问
配置sql server 2000以允许远程访问适合故障:1. 用sql企业管理器能访问sql server 2000(因为它是采用命名管道(named pipes)方式进行方式),但用ado.net ...
- Linux基础入门学习笔记之二
第三节 用户及文件权限管理 Linux用户管理 Linux是可以实现多用户登录的操作系统 查看用户 who命令用于查看用户 shiyanlou是当前登录用户的用户名 pts/0中pts表示伪终端,后面 ...
- 企业级Docker Registry —— Harbor搭建和使用
本节内容: Harbor介绍 安装部署Harbor 环境要求 环境信息 安装部署harbor 配置harbor 配置存储 完成安装和启动harbor 访问Harbor 修改管理员密码 启动后相关容器 ...
- sql server2012 企业版 百度云下载
链接: https://pan.baidu.com/s/1j7a6RWwpvSzG-sF7Dnexfw 提取码: 关注公众号[GitHubCN]回复获取
- 聊一聊FE面试那些事【原创】
最近公司由于业务的扩展.技术的延伸需要招一批有能力的小伙伴加入,而我有幸担任"技术面试官"的角色前前后后面试了不下50多位候选人,如同见证了50多位前端开发者的经历一样,在面试的过 ...
- CCF CSP 201703-2 学生排队
博客中的文章均为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-2 学生排队 问题描述 体育老师小明要将自己班上的学生按顺序排队.他首先让学生按学号从小到大的顺序排成一排, ...
- R语言实战(八)广义线性模型
本文对应<R语言实战>第13章:广义线性模型 广义线性模型扩展了线性模型的框架,包含了非正态因变量的分析. 两种流行模型:Logistic回归(因变量为类别型)和泊松回归(因变量为计数型) ...
- Logstash 本地安装plugin
plugin的gems仓库 下载地址:仓库地址 1.安装ruby环境 yum install ruby yum install rubygems 2.下载插件包 下载插件的方式有多种 2.1 wget ...
- Python 编程:从入门到实战 读书笔记
1..title() 每个单词首字母大写 .upper() 所有字母大写 .lower() 所有字母小写 2. \t 空白 转义字符只能用在""内 ...