win 10 上安装Apache服务

1. 下载Apache for windows压缩包

下载地址:Apache for windows .zip

2. 解压安装

加压到设定的目录,确保所在路径无中文和空格

  1. 以管理员身份运行命令提示符
  2. 切换到解压的路径
  3. 安装apache服务,在对应路径输入如下命令:
    httpd -k install -n "Apache"
    
  4. 执行完会看到一个提示:
Errors reported here must be corrected before the service canbe started.
httpd: Syntax error on line 39 of 你的安装路径/conf/httpd.conf: ServerRoot mustbe a valid directory
  1. 修改配置文件:
    找到安装路径下的conf目录下的httpd.conf文件用文本编辑器打开,找到上面报错指定的“line 39”行,我的是如下所示,为了方便我把行号也写上了:
37 Define SEVROOT "c:/Apache24"
38 
39 ServerRoot "${SEVROOT}"

我们只需要将报错的那一行的ServerRoot中 的值,这里对应的是第37行SEVROOT “c:/Apache24”
只要把SEVROOT对应的值改为你的解压路径就行了,比如说你的在D盘MyApache路径下的Apache24就把第37行双引号里的值改为"D:/MyApache/Apache24" 注意:双引号内的是斜线 ‘/’ 不是复制路径的反斜线’\'

  1. 测试服务是否生效:
httpd -t

此时会发现最后一行提示 Syntax OK,
但是紧挨着上面一行还有一句提示:

Set the 'ServerName' directive globally to suppress this message

意思是让你去设置ServerName 即服务器地址名称
7. 设置主机地址名称:
通过查找上述的conf文件,发现ServerName在上述的conf文件中的227行,我们只要把#去掉(即取消注释),然后改为 :

ServerName localhost

再次执行上述第6步骤,会发现此时没有别的提示信息了只有一句“Syntax OK”.
恭喜成功安装Apache服务

3. 网站根目录

网站的根目录就是存放我们网站文件的最顶层目录,通常URL中的域名后面的第一个斜线对应的就是网站的根目录。
在httpd.conf文件中只需要改变DocumentRoot “这里的路径就是网站的根目录” ,同时需要将其后面的Directory 标签中的路径也要给为上面同样的路径才行,否则会报“Forbidden”错误。

4. 默认文档

当客户端访问的路径是一个目录而不是具体文件的时候,服务器默认返回这个目录下的某一个文件,这个文件就称之为默认文档。
同样在httpd.conf文件中找到DirectoryIndex,就在上述的Directory标签后面,我们只需要改变DirectoryIndex 后面的文件,就可以把它设置为默认文档了。

5. 目录浏览

默认情况下,当默认文档不存在时,浏览器会将对应路径下的文件夹展示出来,这样把目录结构暴露出来对于网站来说是不安全的,因此要设置一下取消展示目录结构,只需要将上述的Directory标签中的 Options Indexes FollowSymLinks 只要把这里的删除线的单词Indexes给删掉就好了,修改后的页面就会显示“Forbidden”了

6. 虚拟主机

如果说你只要在一个Apache服务器上配置一个站点服务,那么就可以跳过该环节往下看了,如果想要在一个Apache上配置多个站点的话,这是就需要配置虚拟主机了。也就是说虚拟主机可实现单个服务器实现多站点的服务。
一个Apache可以配置多个虚拟主机,一台虚拟主机就可以提供一个网站服务,因此暂时可以将虚拟主机理解为一个网站服务的站点,就像上述Apache服务器一样,它也有网站根目录、默认文档等。需要注意的是,一旦配置了虚拟主机原有的httd.conf文件里配置的网站根目录就会失效。
我们可以看到httpd.conf文件中有一行

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

这一行说明了虚拟主机的配置文件,只需要将上述第二行注释取消,然后去对应的路径下找到httpd-vhosts.conf文件

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "${SRVROOT}/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "${SRVROOT}/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>

对上面的代码进行解释

  1. *:80 - - 意思是监听绑定在当前电脑上的任意IP的80端口,我们可以看到两个虚拟主机都是同一个端口,因为多台虚拟主机一同工作,设置的监听端口可能是相同的,所以每个虚拟主机必须配置 ServerName,因此我们可以看到上述代码每台虚拟主机都有自己唯一的ServerName(即访问的域名)
  2. ServerAdmin - - 网站管理员的邮箱地址;
  3. DocumentRoot - - 就是之前咱们说的网站根目录记住,目录里的分割符号是除号的斜线哦;
  4. ServerName - - 网站域名
  5. ErrorLog - - 错误日志
  6. CustomLog - - 普通日志
    除了上述代码还要增加文件路径的授权权限,否则会报forbidden错误,一次要好增加如下代码:
DocumentRoot "网站根路径"// 这一行下面增加如下的代码
<Directory "网站根路径">
	Options FollowSymLinks   //不让目录可以浏览
	AllowOverride None
	Require all  granted  //这一行是核心 ,授权 允许访问
</Directory>

配置完之后只需要重新启动Apache服务就好了。

配置处理模块

因为Apache只会将指定的文件按照指定的规则进行处理,假如说只配置了如上的东西,还不够,以PHP文件为例,此时如果直接访问php,你会发现,php页面在浏览器上是展示了PHP代码的原样输出,因此还需要设置与PHP的关联,需要将Apache的Loadmodule 改为如下(我的PHP压缩包版本是7.4.5为例):

LoadModule myphp_module php解压路径/php7apache2_4.dll

myphp_module 是你给该模块自定义的名称。
然后再httpd.conf中的IfModule标签中添加如下代码:

AddType application/x-httpd-php .php

apache 根据LoadModule 处理模块判断按照什么规则执行,同时根据 MIME Type 是不是application/x-httpd-php来执行PHP文件。是否支持文件类型,可以去Apache的conf/mime.types 文件中查看。
Apache根据LoadModule确认支持的语言进行相应的解析,如果查找不到的话会直接将文件输出展示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值