下载

  • 打开网页http://httpd.apache.org/,点击

    在download页面点击

    然后在新页面选择

    在新窗口选择

    选择32位或64位apache下载,此处下载64位的apache:

    httpd-2.4.34-o110h-x64-vc14.zip

  • 安装

    将httpd-2.4.34-o110h-x64-vc14.zip解压开到某个目录,打开readme_first.html会有完整的介绍。下图是apache支持的操作系统

    下载Visual C++ 2015 x64 Redistribution并安装

  • 启动服务

  • 将apache加入到windows服务

    到D:\green\Apache24\bin目录下执行httpd -k install,会在windows服务中看见apache的服务项

    红色部分为测试apache启动,有错误是因为apache目录在httpd.conf中指定的不对,打开httpd.conf,找到38行,将Define SRVROOT "/Apache24"修改为实际目录

    Define SRVROOT "D:/green/Apache24"

  • Apache命令

    Start Apache httpd –k start

    Stop Apache

    httpd -k stop

    Restart Apache

    httpd -k restart

    Uninstall Apache Service

    httpd -k uninstall

    Test Config Syntax

    httpd -t

    Version Details

    httpd -V

    Command Line Options List

    httpd -h

  • 配置

  • Listen 配置

    ,即侦听所有的地址的80端口,注意这里也可以写成IP地址的侦听形式,不写即默认的地址:0.0.0.0

  • ServerRoot 配置

  • Apache服务管理员通知邮箱地址

    此选项主要用指定Apache服务管理员通知邮箱地址,选择默认值即可,如果有真实的邮箱地址也可以设置此值

  • Apache根目录访问权限设置

    此选项主要是针对用户对根目录下所有的访问权限控制,默认Apache对根目录访问都是拒绝访问

  • Apache的默认网站根目录设置及访问控制

  • Apache的默认首页设置

  • 虚拟目录配置

  • 修改httpd-vhost.conf

    打开Apache24\conf\extra\httpd-vhost.conf文件,添加如下内容:

    <VirtualHost *:8090>

    DocumentRoot "d:\wwwroot"

    ServerName www.xframe.com

    ServerAlias xframe.com

    <Directory "d:\wwwroot">

    Options Indexes FollowSymLinks MultiViews

    AllowOverride none

    <RequireAll>

    Require all granted

    </RequireAll>

    </Directory>

    </VirtualHost>

  • 添加端口监听

    以外的端口就不需要这样做。

  • 打开对虚拟机的支持

    在httpd.conf中找到Include conf/extra/httpd-vhosts.conf,将前面的#号删掉

  • 修改hosts

    打开C:\Windows\System32\drivers\etc中的hosts文件,添加如下内容:

    127.0.0.1 xframe.com

    ::1 xframe.com

    关闭该文件,打开cmd窗口,执行如下命令刷新dns缓存:

    ipconfig /flushdns

  • 重启服务并访问

    重新启动apache,在5.1中,我们建立的虚拟机对应的物理目录为d:\wwwroot,虚拟主机名为xframe.com,我们在该目录下拷贝一个index.html文件,用如下任何地址都可以进行访问了:

    http://loclahost:8090

    http://127.0.0.1:8090

    http://xframe.com:8090

  • apache的AllowOverride以及Options使用详解

    AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。对于AllowOverride,还可以对它指定如下一些能被重写的指令类型.

    通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override ,即

    <Directory />
    AllowOverride None
    </Directory>

    在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 ".htaccess" 作用域的指令都允许出现在 .htaccess 文件中。

    而对于 URL rewrite 来说,至少需要把目录设置为

    < Directory /myblogroot/>
    AllowOverride FileInfo
    < /Directory>

    2.在要支持url rewirte的目录启用 Options FollowSymLinks和AllowOverride All

    Alias /php "c:/web/php/"
    <Directory "c:/web/php/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

    这样通过http://localhost:8080/php/访问时,/php/和其下面的子目录将支持url rewrite

    1  AuthConfig  允许使用所有的权限指令,他们包括AuthDBMGroupFile AuthDBMUserFile  AuthGroupFile  AuthName AuthTypeAuthUserFile和Require

    2  FileInfo    允许使用文件控制类型的指令。它们包括AddEncoding AddLanguage  AddType  DEfaultType ErrorDocument LanguagePriority

    3  Indexes     允许使用目录控制类型的指令。它们包括AddDescription  AddIcon  AddIconByEncoding AddIconByType  DefaultIcon  DirectoryIndex  FancyIndexing  HeaderName  IndexIgnore  IndexOptions ReadmeName

    4  Limit       允许使用权限控制指令。它们包括Allow Deny和Order

    5  Options     允许使用控制目录特征的指令.他们包括Options 和XBitHack

    Options

    1  All         准许以下除MultiViews以外所有功能

    2  MultiViews  允许多重内容被浏览,如果你的目录下有一个叫做foo.txt的文件,那么你可以通过/foo来访问到它,这对于一个多语言内容的站点比较有用

    3  Indexes     若该目录下无index文件,则准许显示该目录下的文件以供选择

    4  IncludesNOEXEC  准许SSI,但不可使用#exec和#include功能

    5  Includes    准许SSI

    6  FollowSymLinks  在该目录中,服务器将跟踪符号链接。注意,即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名,如果在<Local>;标记内设置,该选项会被忽略

    7  SymLinksIfOwnerMatch  在该目录中仅仅跟踪本站点内的链接

    8  ExecCGI     在该目录下准许使用CGI

  • 使用require指令进行访问控制

    从Apache2.2升级到Apache2.4后,发现原来用来限制部分IP和垃圾网络爬虫的访问控制规则不起作用,查询后才发现,Apache2.4中开始使用mod_authz_host这个新的模块来进行访问控制和其他的授权检查。原来在Apache2.2版本下用以实现网站访问控制的Order,Allow,Deny指令需要替换为新的Require访问控制指令。

    注意:使用require指令时,需要在指令外添加<RequireAll></RequireAll>标签对,否则重启Apache2.4加载规则时将出现错误:" negative Require directive has no effect in <RequireAny> directive "。

    下面直接给出一些实例对Require指令的使用进行说明:

  • 允许所有访问请求

    Apache2.4下的配置:

    <Directory xxx/www/yoursite>

    <RequireAll>

    Require all granted

    </RequireAll>

    </Directory>

  • 拒绝所有访问请求

    <Directory xxx/www/yoursite>

    <RequireAll>

    Require all denied

    </RequireAll>

    </Directory>

  • 只允许来自特定域名主机的访问请求,其他请求将被拒绝

    <Directory xxx/www/yoursite>

    <RequireAll>

    Require host google.com

    </RequireAll>

    </Directory>

  • 只允许来自特定IP或IP段的访问请求,其他请求将被拒绝

    <Directory xxx/www/yoursite>

    <RequireAll>

    Require ip 192.120 192.168.100 192.168.1.1

    </RequireAll>

    </Directory>

  • 允许所有访问请求,但拒绝来自特定IP或IP段的访问请求(阻止恶意IP或恶意爬虫网段的访问)

    <Directory xxx/www/yoursite>

    <RequireAll>

    Require all granted

    Require not ip 192.168.1.1

    Require not ip 192.120 192.168.100

    </RequireAll>

    </Directory>

  • 允许所有访问请求,但拒绝某些User-Agent的访问请求(通过User-Agent屏蔽垃圾网络爬虫)

    使用mod_setenvif通过正则表达式匹配来访请求的User-Agent,并设置内部环境变量BADBOT,最后拒绝BADBOT的访问请求。

    <Directory xxx/www/yoursite>

    SetEnvIfNoCase User-Agent ".*(FeedDemon|JikeSpider|AskTbFXTV|CrawlDaddy|Feedly|Swiftbot|ZmEu|oBot).*" BADBOT

    SetEnvIfNoCase User-Agent "brandwatch" BADBOT

    SetEnvIfNoCase User-Agent "rogerbot" BADBOT

    <RequireAll>

    Require all granted

    Require not env BADBOT

    Require not ip 192.168.100.1

    </RequireAll>

    </Directory>

  • 其它require访问控制指令用法

    Require all granted #允许所有

    Require all denied #拒绝所有

    Require env env-var [env-var] ... #允许匹配环境变量中任意一个

    Require method http-method [http-method] ... #允许特定的HTTP方法(GET/POST/HEAD/OPTIONS)

    Require expr expression #允许,表达式为true

    Require user userid [ userid ] ... #允许特定用户

    Require group group-name [group-name] ... #允许特定用户组

    Require valid-user # #允许,有效用户

    Require ip 192.100 192.168.100 192.168.100.5 #允许特定IP或IP段,多个IP或IP段间使用空格分隔

  • apache禁止列目录

  • 两步:
  • 1、修改Apache配置文件httpd.conf,把Options Indexes FollowSymLinks改成Options FollowSymLinks
  • 2、如果配置了虚拟目录,则打开httpd-vhosts.conf,将你的虚拟目录下的Options Indexes FollowSymLinks MultiViews 修改为Options FollowSymLinks MultiViews

Apache安装使用笔记的更多相关文章

  1. php +apache +mysql 配置笔记

    2013年11月5日 14:27:46 php +apache +mysql 配置笔记 mysql 正常安装 忽略. 1,配置笔记:安装apache 的成功标志是:安装完成之后,在浏览器输入http: ...

  2. CentOS(Linux) - 安装软件笔记(总) - 开发环境安装顺序及汇总

    1.安装java环境 参考文章 CentOS7.1 使用资源搜集 2.需要可视化管理服务器时,需要先安装VPSmate 参考文章 CentOS(Linux) - 安装软件笔记(一) - VPSMate ...

  3. apache 安装及配置

    近期想用apache运行网站,在网上查询windows 版本的中文说明文档有特别少,所以将学习到的在这里做个笔记,以便日后学习以及大家相互交流. 相关文档:http://httpd.apache.or ...

  4. CentOS8安装Geant4笔记(三):Geant4介绍、编译、安装支持Qt5界面并运行exampleB1例程显示Qt界面

    前言   上一篇,安装了Qt5环境.  本篇在服务器CentOs8.2上安装geant4软件,geant4使用Qt5来显示.   GEANT4 介绍   Geant4 是一个用于模拟粒子穿过物质的工具 ...

  5. SLES 10安装Oracle10gR2笔记

    SLES 10安装Oracle10gR2笔记 一. 数据库安装 . 安装C/C++ Compiler gcc --version验证是否安装 . 验证Service Pack版本 SPident –v ...

  6. apache安装mod_deflate配置支持gzip

    apache 配置支持gzip apache使用gzip压缩能够大幅提高网站访问速度并节省网络流量,在网页响应头信息中可以判断是否支持压缩. HTTP/1.1 200 OK Date: Wed, 14 ...

  7. Apache安装

    记录安装Apache的流程,没有进行详细配置,只是记录搭建服务器的流程用于学习Ajax等知识,方便以后重新安装,不用每次都翻别人博客学习安装了,大神看到这里可以关掉这个粗糙简陋的博文了. 1. 官网上 ...

  8. Apache安装配置步骤

    注释:这里以Linux 红帽商业版为例~~~~~~~纯手打啊 Apache安装配置步骤 准备:关闭其他虚拟设备 #/etc/init.d/libvirtd stop #/etc/init.d/xend ...

  9. CentOS 6.4 快速安装Nginx笔记

    CentOS 6.4 快速安装Nginx笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/details/9860 ...

随机推荐

  1. mysql复习2

    -- 1. 创建和管理表 CREATE TABLE -- 方式一:CREATE TABLE emp1( id INT(10), `name` VARCHAR(20), salary DOUBLE(10 ...

  2. crawler碎碎念5 豆瓣爬取操作之登录练习

    import requests import html5lib import re from bs4 import BeautifulSoup s = requests.Session() #这里要提 ...

  3. 跨源请求cors和jsonp

    0.产生跨域的原因 浏览器的同源策略 什么是浏览器的同源策略? src开发 ajax禁止 解决方法 jsonp 通过src绕过浏览器的同源策略 缺点:只发送GET请求 cors 通过设置相应头 分类 ...

  4. spring boot的日常配置

    配置篇 #数据库连接配置msql spring.datasource.url:jdbc:mysql://127.0.0.1:3306/test spring.datasource.username: ...

  5. set去重

    public static void main(String[] args){ List<String> list = new ArrayList<String>(); lis ...

  6. 创建模仿存储库 Making a Mock Repository 精通ASP-NET-MVC-5-弗瑞曼 Listing 7-5

  7. HGE引擎改进——2014/3/4

    2014/3/4 更新 1.提升资源包管理效率 2.Show库整合.目前Show库有Picture.Frame.Animation和Particle类,以及PictureData和ParticleSy ...

  8. 双指针,BFS和图论(三)

    (一)图论 1.大臣的旅费 很久以前,T王国空前繁荣. 为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任 ...

  9. Linux下的expect

    expect简介 expect是一款自动化的脚本解释型的工具. expect基于tcl脚本,expect脚本的运行需要tcl的支持. expect对一些需要交互输入的命令很有帮助,比如ssh ftp ...

  10. Ubuntu安装openjdk8

    sudo apt-get update sudo apt-get install openjdk-8-jdk 通过 which java 找到java安装路径 添加环境变量 sudo vim ~/.b ...