下载

  • 打开网页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. Codeforces Round #615 (Div. 3) 题解

    A - Collecting Coins 题意: 给你四个数a,b,c,d,n.问你是否能将n拆成三个数A,B,C,使得A+a=B+b=C+c. 思路: 先计算三个数的差值的绝对值abs,如果abs大 ...

  2. Qt Installer Framework翻译(4)

    教程:创建安装程序 本教程描述如何为一个小项目创建一个简单的安装程序: 本节描述创建安装程序所必须完成的步骤: 创建一个包文件夹,其中将包含所有配置文件和可安装的包. 创建一个配置文件,其中包含有关如 ...

  3. c#数字图像处理(三)灰度直方图

    灰度直方图是灰度的函数,描述的是图像中具有该灰度级的像素的个数.如果用直角坐标系来表示,则它的横坐标是灰度级,纵坐标是该灰度出现的概率(像素的个数). using System; using Syst ...

  4. 将Ubuntu下网卡名称enss改为eth0

    将Ubuntu下网卡名称enss改为eth0   sudo nano /etc/default/grub 找到GRUB_CMDLINE_LINUX=""改为GRUB_CMDLINE ...

  5. STVP编译时遇到no default placement for segment .FLASH_CODE

    最近编译STM8S003时需要使用flash库函数,看起来简单,实则折腾了超过1天.今天总结方法如下: 1.修改stm8s.h 156行  #define RAM_EXECUTION  注释去掉  如 ...

  6. .net core 认证与授权(一)

    前言 .net core web并不是一个非常新的架构,很多文章提及到认证与授权这个过程,但是一般都会提及到里面的方法怎么用的,而不是模拟一个怎样的过程,所以我打算记录自己的理解. 什么是认证?我们大 ...

  7. 3万字总结,Mysql优化之精髓

    本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降. ...

  8. 快乐编程大本营【java语言训练班】 6课:用java的对象和类编程

    快乐编程大本营[java语言训练班] 6课:用java的对象和类编程 第1节. 什么是对象和类 第2节. 对象的属性和方法 第3节. 类的继承 第4节. 使用举例:创建类,定义方法,定义属性 第5节. ...

  9. (数据科学学习手札75)基于geopandas的空间数据分析——坐标参考系篇

    本文对应代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一篇文章中我们对geopandas中的数据结 ...

  10. MySQL初次安装配置及修改密码

    安装前的准备工作: 下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\mysql-8.0.11 下. 接下来我们需要配置下 MySQL 的配置文件 打开刚刚解压的文件夹 ...