Apache http server 安装与配置
注意事项:Apache官网从2.2之后,不再提供windows的msi或exe安装版本,现在Apache http Server有两个分支2.2及2.4
下载
进入Apache官网,http://httpd.apache.org/download.cgi
选择版本,点击 Files for Microsoft Windows ,(windows安装版本)。
在 Downloading Apache for Windows 下选择下载镜像(前三个任意一个,推荐Apache Lounge)
对应不同的系统,不同的VS版本,选择下载。
下载完成后,解压“Apache24” 目录到要安装的盘符。(路径不能有中文或者空格)
主要的文件结构
创建服务 :bin\httpd.exe
管理面板 :bin\ApacheMonitor.exe
主要的配置文件:conf\httpd.conf
网站根目录:\htdocs
安装
- 切换到 Apache 解压路径中的bin目录
$ cd 《解压路径》/bin
- 安装 Apache 服务,-n 参数是指定服务名称,exe 可以忽略不写。
$ httpd.exe -k install -n "Apache"
如果要卸载 Apache 服务,可以执行以下命令
$httpd.exe -k uninstall -n "Apache"
执行安装命令后会报一个错,原因是默认配置文件有问题,需要先调整一下配置文件 conf/httpd.conf
,才能正常启动服务。
按照错误提示,发现默认的配置路径都是C:/Apache24
,所以我们要把默认配置的路径,修改为我们的安装路径,然后重新执行httpd.exe -t
测试配置文件,提示Syntax OK
,这时代表服务安装成功。
如果有关于 ServerName 的警告,可以暂时不理
- 接下来运行以下命令,重新启动服务。
// 注意要使用管理员身份启动窗口
# 启动 Apache 服务
$ httpd.exe -k start -n "Apache"
# 重启 Apache 服务
$ httpd.exe -k restart -n "Apache"
# 停止 Apache 服务
$ httpd.exe -k stop -n "Apache"
- 回到浏览器中,地址栏输入:http://locallhost/,回车访问,这时应该能正常看到
It works!
端口、网站根目录配置
端口
++Apache\conf 目录下 httpd.conf 文件++
Listen 80 (80是端口号)
网站根目录
++Apache\conf 目录下 httpd.conf 文件++
# 禁止所有根目录访问
<Directory />
AllowOverride none
Require all denied
</Directory>
此处双引号内都改为要设置的网站根目录路径(D:/www)
DocumentRoot "D:/www"
<Directory "D:/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
默认文档
++Apache\conf 目录下 httpd.conf 文件++
此标签为设置默认访问页面文档
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
目录浏览
++Apache\conf 目录下 httpd.conf 文件++
Directory 标签内 Options Indexes FollowSymLinks ,去掉 Indexes 就可以禁止目录浏览
<Directory "D:/www">
Options FollowSymLinks
</Directory>
虚拟主机
++Apache\conf 目录下 httpd.conf 文件++
#Virtual hosts
#Include conf/extra/httpd-vhosts.conf
- 解除
<IfModule proxy_html_module>
标签下Include conf/extra/httpd-vhosts.conf
的注释 - 打开
conf/extra/httpd-vhosts.conf
文件
*:80 监听绑定在当前电脑上的任意 IP 的 80 端口
由于多个虚拟主机同时工作,每一个虚拟主机都需要配置ServerName
ServerName 在 Apache\conf 目录下 httpd.conf 文件中配置
同时要在 hosts 文件中
C:\Windows\System32\drivers\etc\hosts
把127.0.0.1指向 ServerName
<VirtualHost *:80>
# 站长邮箱
ServerAdmin webmaster@dummy-host2.example.com
# 一台虚拟主机的根目录
DocumentRoot "D:/www(目录路径)"
# 一台虚拟主机的域名
ServerName baixiu.abc(域名地址)
# 一台虚拟主机的域名别名
ServerAlias www.baixiu.abc(域名别名地址)
# 一台虚拟主机的错误日志文件
ErrorLog "logs/网战域名-error.log"
# 一台虚拟主机的访问日志文件
CustomLog "logs/网站域名-access.log" common
</VirtualHost>
- 需要配置多个虚拟主机,为了防止 Forbidden 情况,要在
VirtualHost
标签中DocumentRoot
下面添加Directory
标签。
<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "D://www"
<Directory "D:/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ServerName baixiu.top
ErrorLog "logs/baixiu.top-error.log"
CustomLog "logs/baixiu.top-access.log" common
</VirtualHost>
同时要在 hosts 文件中 C:\Windows\System32\drivers\etc\hosts
把127.0.0.1指向 ServerName
==设置完成后,要重启 Apache 服务!!!==