(转)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服务器上之后, 运行程序,提示未找到数据库函数. 仔细检查 ...
随机推荐
- super()调用父类构造方法
super()表示调用父类中的构造方法 1.子类继承父类,子类的构造方法的第一行,系统会默认编写super(),在调用子类的构造方法时,先调用父类的无参数构造方法 2.如果父类中只有有参数构造方法,那 ...
- easyui combobox 不能选中值的问题
easyui comboxbox 下拉框加载到数据,但是不能选中.一般情况是重复渲染,页面有同名元素,valueField重复. 这次遇到的具体问题是,第一次刷新页面,可以选中,第二次不能选中.考虑到 ...
- css2d 3d
2D转换 1.rotate() 旋转 <!DOCTYPE html><html> <head> <meta charset="UTF-8&quo ...
- Player2.0
由于上次做的播放器实在是有点丑,加之这期间学习了许多关于页面排版的东西,这次做第二次作业就重新来了一遍“换汤不换药”的操作.其实刚开始看到的作业要求的时候,有点傻眼猫咪,但是做到现在这个程度,本人也是 ...
- 人力资源项目中 add_account.php
add_account.php ( 文件浏览 ) <?phpinclude('db_con.php'); if(isset($_POST['save'])) { $employee_i ...
- 解决mysql for docker容器报错:Authentication plugin 'caching_sha2_password' cannot be loaded
为图方便,懒得在mac上安装mysql了,一个是管理不方便,第二个是为了方便多机器同步开发环境.就使用docker安装了. 拉取mysql镜像 docker pull mysql 运行mysql实例 ...
- [Java基础复习] -- x. 正则表达式的使用
序号待定, 先用x占位表示 理论知识待完善, 先贴上代码 import java.util.regex.Matcher; import java.util.regex.Pattern; import ...
- PageHelper分页+前台BootStrap_pagination样式/BootStrap_table样式
一.PagerHelper分页+前台BootStrap_pagination样式: 效果: 1.引入pageHelper插件:2种方式 pageHelper所需jar包:pagehelper-5 ...
- Unity3D协程yield的理解
Unity3D的协程概括地将就是:对于一段程序,你可以加上yield标明哪里需要暂停,然后在下一帧或者一段时间后,系统会继续执行这段代码.协程的作用:①延迟一段时间执行代码.②等某个操作完成之后再执行 ...
- Blueking bk 蓝鲸开发环境搭建
首先根据文档安装各种东西 http://docs.bk.tencent.com/develop_center/ops/unified.html#installation 完后在在vagrantfile ...