原文: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环境)的更多相关文章

  1. svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录

    svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 Windows下,svn服务器IP本来是内网一台服务器上 ...

  2. 如何在windows环境中搭建apache+subversion(ZT)

    我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...

  3. windows环境下,apache虚拟主机配置

    在windows环境下,apache从配置文件的相关配置: Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异 ...

  4. Apache Nifi在Windows环境下搭建伪群集及证书登录

    代码地址如下:http://www.demodashi.com/demo/11986.html 前些时间做了关于Apache Nifi分布式集群的搭建分享,但很多时候要搭建分布式集群机器资源是个问题, ...

  5. Windows环境下完全手工配置Apache、MySQL和PHP

    现在LAMP(Linux.Apache.MySQL.PHP/Perl/Python的简称)已经很流行了.在Windows下也有类似的,比如 WAMP(Apache, MySQL, PHP on Win ...

  6. Windows环境下flask+Apache+mod_wsgi部署及爬坑

    文章目录 安装python Windows 环境使用virtualenv和virtualenvwrapper 安装mod_wsgi 安装nginx 安装Apache 遇到的坑 安装Apache遇到的坑 ...

  7. windows环境利用apache 配置虚拟主机

    windows环境利用apache 配置虚拟主机 1.改动http.host #LoadModule vhost_alias_module modules/mod_vhost_alias.so #In ...

  8. Windows环境配置HTTP服务(Windows + Apache + Mysql + PHP)

    1.安装WampServer 2.管理HTTP服务 任务图标绿色为正常启动状态 注意事项:1.检查网络是不是通的 ping 对方IP2.检查防火墙是否开启,如果开启将不能正常被访问3.检查访问权限 A ...

  9. Windows环境下 PHP+Apache+Mysql配置

    网上关于这种搭配的配置有许多许多,但是不知道大家有否碰到这么一个问题,就是做好的PHP程序(内含访问mysql数据库的操作)发布到Apache服务器上之后, 运行程序,提示未找到数据库函数. 仔细检查 ...

随机推荐

  1. form表单内容JSON格式转化

    form表单提交时,对于Content-type为application/json是提交时需要转换成json格式,据说form enctype=‘application/json’这样就可以,然而在我 ...

  2. PYTHON基础入门(内置函数、推导式)学习

    **内建函数**1.通过使用dir()函数可以列出所具备的方法 例:num = 10 dir(num) 例:myList = [1,2,3,4,5,6] dir(num)2.通过使用help()函数可 ...

  3. Swift 加载 xib 崩溃问题

    新版本用 Swift开发 遇到的坑 解决方法

  4. C++标准库之右值引用相关:引用折叠

    引用折叠 引用折叠出现的情况在于范型编程时. void f(T&& param); f(10); int x = 10; f(x); 这两者都可运行成功. 由于存在T&& ...

  5. 关于Selenium.common.exceptions.WebDriverException: Message: Invalid locator strategy: css selector 的问题

    在执行脚本时报Selenium.common.exceptions.WebDriverException: Message: Invalid locator strategy: css selecto ...

  6. http中post和get方法区别

  7. Github使用: 本地上传, 与之同步

    很久不用Github 又忘记了怎么同步了, Git桌面前年已经部署好了. 1. 打开GitHub Desktop -- file -- clone repository --- 操作其中想要的一个文件 ...

  8. Elasticsearch System Call Filters Failed to Install

    Elasticsearch starts to run, error occurs: : system call filters failed to install; check the logs a ...

  9. eclipse新建的项目,也添加到tomcat上了,地址栏访问的时候就是访问不到。。。怎么办

    其实是可以访问的,目前我遇到以下两种可能出现这种现象的原因: 1.这个项目在你写的过程中改了名字,这样你访问改后的名字是不行的,需要在下图,也就是server服务器的server.xml文件中修改访问 ...

  10. 携带cookie的跨域访问

    携带cookie的跨域解决方案 有的时候访问后台的请求需要携带cookie以供后台分析,比如jQuery的ajax请求: $.ajax({ url: a_cross_domain_url, xhrFi ...