Apache的安装及使用

👁️ 9353 ❤️ 165
Apache的安装及使用

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

下载Apache

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

Apache httpd 2.4.39 Released 为例,点击download。

下载后解压,改名为httpd,放到D盘根目录。

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后台服务。

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

httpd -k stop 停止

httpd -k restart 重启

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

如果出现以下错误

【原因】

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 ,运行后会出现在任务栏中

虚拟主机配置

1、首先需要启用辅助配置

在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

2、然后在文件末尾添加如下代码

DocumentRoot "D:/WWW/taobao"

ServerName www.taobao.com

注意:

1、端口号

2、路径是 “/”不是“\”

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

# 这里仅做演示!!!

127.0.0.1 www.taobao.com

修改访问权限配置

httpd.conf 在231行附近

默认的配置是

AllowOverride none

Require all denied

或者是

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

目录权限控制是通过 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 文件添加如下代码

DocumentRoot "D:/WWW/taobao"

ServerName www.taobao.com

Order allow,deny

Allow from all

【报错】

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.

#

DirectoryIndex index.html

重启Apache

← 压榨出你的柔情绰态 vivo X7 Plus深度测评 世界杯足球场:面积影响比赛与球迷体验的六大因素 →