(转)Apache从2.2换至2.4httpd.conf的调整笔记(windows环境)
原文:https://www.cnblogs.com/tjws/articles/3469075.html#top
整理一下Windows环境Apache 2.2 改成 Apache 2.4.1后 httpd.conf 的设定笔记及遇到的问题
参考文章(官方)
http://httpd.apache.org/docs/2.4/upgrading.html
http://httpd.apache.org/docs/2.4/new_features_2_4.html
1. 权限设定方面的变更
原本使用 Order Deny / Allow 的方式,改用 Require
官方范例
2.2 configuration:
Order deny,allow
Deny from all
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从2.2换至2.4httpd.conf的调整笔记(windows环境)的更多相关文章
- svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录
svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 Windows下,svn服务器IP本来是内网一台服务器上 ...
- 如何在windows环境中搭建apache+subversion(ZT)
我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...
- windows环境下,apache虚拟主机配置
在windows环境下,apache从配置文件的相关配置: Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异 ...
- Apache Nifi在Windows环境下搭建伪群集及证书登录
代码地址如下:http://www.demodashi.com/demo/11986.html 前些时间做了关于Apache Nifi分布式集群的搭建分享,但很多时候要搭建分布式集群机器资源是个问题, ...
- Windows环境下完全手工配置Apache、MySQL和PHP
现在LAMP(Linux.Apache.MySQL.PHP/Perl/Python的简称)已经很流行了.在Windows下也有类似的,比如 WAMP(Apache, MySQL, PHP on Win ...
- Windows环境下flask+Apache+mod_wsgi部署及爬坑
文章目录 安装python Windows 环境使用virtualenv和virtualenvwrapper 安装mod_wsgi 安装nginx 安装Apache 遇到的坑 安装Apache遇到的坑 ...
- windows环境利用apache 配置虚拟主机
windows环境利用apache 配置虚拟主机 1.改动http.host #LoadModule vhost_alias_module modules/mod_vhost_alias.so #In ...
- Windows环境配置HTTP服务(Windows + Apache + Mysql + PHP)
1.安装WampServer 2.管理HTTP服务 任务图标绿色为正常启动状态 注意事项:1.检查网络是不是通的 ping 对方IP2.检查防火墙是否开启,如果开启将不能正常被访问3.检查访问权限 A ...
- Windows环境下 PHP+Apache+Mysql配置
网上关于这种搭配的配置有许多许多,但是不知道大家有否碰到这么一个问题,就是做好的PHP程序(内含访问mysql数据库的操作)发布到Apache服务器上之后, 运行程序,提示未找到数据库函数. 仔细检查 ...
随机推荐
- Dockerfile制作自定义镜像
本文介绍最精简的Dockerfile文件构建镜像,Docker启动的时候可以启动一个shell脚本 1.首先编写Dockerfile文件 说明 1.启动的这个shell脚本一定是不退出的,比如服务器的 ...
- sqlserv 配置 CLR
转载地址:http://www.cnblogs.com/Brambling/p/8000911.html //clr 配置 https://docs.microsoft.com/zh-cn/sql ...
- jquery选择器基础知识(复制w3c)
jQuery 元素选择器 jQuery 使用 CSS 选择器来选取 HTML 元素. $("p") 选取 <p> 元素. $("p.intro") ...
- 配置了yum本地源
测试机不能联网 所以不能直接安装软件 只能配置本地源 1. 在联网的电脑上下载与Linux内核版本相同的镜像 2. 把此安装镜像放在此Linux测试机上 比如放在家目录下 /home/ ...
- mongoDb造数据
package mongoUtil; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import ...
- INTERVAL YEAR TO MONTH数据类型
INTERVAL YEAR TO MONTH数据类型 Oracle语法: INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO ...
- Java程序设计(第二版)复习 第二章
1.Java使用Unicode字符集,一般用16位二进制表示一个字符.且Java中午sizeof关键字,因为所有基本数据类型长度是确定的,不依赖执行环境. 2. Java变量在声明时并没有分配内存,真 ...
- HDU 5355 Cake (构造 + 暴力)
题意:给定 n,m,让你把 1 ~ n 分成 m 部分,而且每部分和是一样大的. 析:首先先判断不能分成的,第一种是 sum (1 ~ n 的和)不能被 m 整除,或者 sum / m < n, ...
- SSM+MyBatis框架详解
- bootstrap-datepicker简单使用
粗略整理,可能存在其他的方式请大家多多指教 选择年份 html <div class="dropdown"> <label class="search- ...