Apache的安装及使用

PHP最初是 Persional Home Page 的缩写,表示我的主页。html

下载Apache

进入apache服务器官网 http://httpd.apache.org/ 这里咱们如下载稳定版的apache

Apache httpd 2.4.39 Released 为例,点击download。windows

download

下载后解压,更名为httpd,放到D盘根目录。浏览器

Apache目录

Apache 各目录做用

目录名 说明
bin Apache执行文件所在目录,如httpd.exe、ApacheMonitor.exe 等
cgi-bin GCI网页程序存放目录
conf Apache服务器配置文件所在目录
error 错误文件目录,用于保存因服务器设置或浏览器请求的数据错误时产生的错误
htdocs 默认Web文档根目录,就是存放默认首页的位置
icons Apache预设的一些小图标存放目录
include
lib
logs Apache 日志文件存放目录,主要包括访问日志 access.log 和错误日志 error.log
modules Apache服务器支持的动态加载模块所在目录

安装 Aapche 服务

使用管理员身份运行cmd,命令行下进入到 Apache 下面的 bin 目录,输入服务器

httpd -k install

把apache安装成windows后台服务。ide

命令启动Apache服务:httpd -k startui

httpd -k stop 中止url

httpd -k restart 重启spa

更多命令,请使用 httpd -help 查看.net

若是出现如下错误

【缘由】 httpd.conf 里面配置的 ServerRoot 路径跟实际路径不一致,致使路径无效。

【解决方案】 修改 D:\httpd\Apache24\conf 目录下的 httpd.conf 文件,在38行左右

Define SRVROOT "D:/httpd/Apache24"
ServerRoot "${SRVROOT}"

注意路径是 “/”不是“\

端口冲突问题

Apache 默认使用的端口号为 80,若是遇到 80 端口被其余应用程序占用的状况,有两种解决方案:

方案一:将占用 80 端口的程序关闭掉,具体作法以下:

在cmd中运行 netstat -ano "80" 查看是哪一个PID在使用 80 端口, 查找到PID 后能够使用 kill 命令将其结束掉进程。

也能够按 Ctrl + Shift + Esc 组合键 (或者搜索 services.msc) 打开“服务”面板,查找对应的PID再鼠标右键结束进程。

若是占有80端口的程序比较重要,不能将其关闭,则考虑修改Apache使用的端口。

方案二:修改Apache使用的端口号

好比将默认的80端口修改成88端口, httpd.conf 文件第60行左右

#Listen 12.34.56.78:80
Listen 88

httpd.conf 在224行左右

ServerName localhost:88

运行成功

Apache系统环境变量的配置

(手动配置是永久性的修改,命令配置只对当前窗口有效)

ApacheMonitor

在Apache 目录中的 bin 目录有个ApacheMonitor.exe 能够控制apache 的启动、中止、重启服务

用管理员的身份运行 ApacheMonitor.exe ,运行后会出如今任务栏中

虚拟主机配置

一、首先须要启用辅助配置

在Apache目录中有两个 httpd-vhosts.conf 文件:

这里咱们使用的是 D:\httpd\Apache24\conf\extra 目录下的 httpd-vhosts.conf 文件,在 502 行左右,去掉 # Include conf/extra/httpd-vhosts.conf 前面的注释“#”

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

二、而后在文件末尾添加以下代码

<VirtualHost *:88>
    DocumentRoot "D:/WWW/taobao"
    ServerName www.taobao.com
</VirtualHost>

注意: 一、端口号 二、路径是 “/”不是“\

三、在 C:\Windows\System32\drivers\etc 目录下的 host 文件中添加一行

# 这里仅作演示!!!
127.0.0.1 www.taobao.com

修改访问权限配置

httpd.conf 在231行附近 默认的配置是

<Directory />
    AllowOverride none
    Require all denied
</Directory>

或者是

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

目录权限控制是经过 Directory 指令段来实现的。 Order deny,allow 表示先判断 deny 语句再判断 allow 语句。 而后就是 deny 和 allow ,如 Deny from all 表示拒绝全部的,因为没有 allow 语句,因此最终的判断就是拒绝全部。

再举个例子:

//下面配置表示容许全部客户端来访问
Order deny,allow
Allow from all

//下面配置表示容许全部客户端来访问,可是拒绝 IP 为192.168.1.100 的访问
Order deny,allow
Allow from all
Deny from 192.168.1.100

首先要知道再哪来配置,在 Apache 中有两种方式来进行配置目录权限: 第一种:独立是使用 Directory 段来配置,如上面的

第二种:在对应的 VirtualHost 中配置,建议使用这种来配置 D:\httpd\Apache24\conf\extra 目录下的 httpd-vhosts.conf 文件添加以下代码

<VirtualHost *:88>
    DocumentRoot "D:/WWW/taobao"
    ServerName www.taobao.com
    <Directory "D:/WWW/taobao">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

【报错】 Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration

【解决方案】 去掉 httpd.conf 在52行左右的注释“#”

LoadModule access_compat_module modules/mod_access_compat.so

默认首页

在 httpd.conf 中的 280 行左右

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

重启Apache

相关文章
相关标签/搜索