跳至正文

windows 安装 apache

认识Apache

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

下载Apache

访问地址

官方网站:https://httpd.apache.org/

选择apache版本

打开官网地址 https://httpd.apache.org/ ,如下图( 官网首页 )所示,当前最新稳定版为2.4.54。我们此处下载最新稳定版,因此点击 Apache httpd 2.4.54 Released 下面的 Download

选择操作系统类型

因当前需要安装到 windows 操作系统中,请点击 Files for Microsoft Windows,访问 windows 版 apache 下载页面。

选择下载源

Apache本身不提供软件的二进制版本,只提供源代码。单个提交者可以提供二进制包作为方便,但它不是可交付的版本。如果您无法自己编译Apache HTTP Server,则可以从Internet上提供的众多二进制发行版中获取二进制包。Apache在下面提供了几个可下载二进制包的网站,我们点击第一个 ApacheHaus 进入。

选择位数并下载

我下载 apache 用于本机测试环境。因此我选择 Visual Studio 2022(VS17)进行编译的版本。我的电脑是X64位,因此我选择 Apache 2.4.54 x64 ,下载源我选择如下图(手指处)所示。

注意:下载后和安装之前,应确保文件完好无损且未被篡改。建议使用 SHA 校验和验证完整性,原始SHA1值在下载页面有提供。

下载 Visual Studio Redistributable Packages

为方便进一步兼容apache,我选择了在 https://www.apachehaus.com/cgi-bin/download.plx 上(前面页面拉到最底)下载对应的 Microsoft Visual Studio 2015, 2017, 2019, and 2022 Redistributable (VS14-VS17) x86和x64(x86和x64两个都下载)。如下图所示:

下载验证

下载完成后,建议把需要的文件放在提前设定好的目录中,并对文件完整性进行校验。为了判断文件的完整性是否受到了损坏,需要计算全文件摘要,计算摘要的算法很多,常见有MD5、SHA1、SHA256算法。

设置好的目录和下载好的文件

获取互联网文件原始校验信息

一般文件完整性校验,可以校验md5值,或者sha1值。原始正确的MD5/sha1值,都会在官网公布。如下图所示。

apache 校验信息下载位置

下载后的校验信息,可以使用记事本或其他文本编辑工具打开。有些网站上的文件,校验信息无需下载,直接在官网上显示。

使用记事本或其他文本编辑工具打开校验信息文件
httpd-2.4.54-o111o-x64-vs17.zip.sha 内容

获取本地文件校验信息并对比

下面的图,使用windows 系统自带的文件校验命令,对本地文件进行完整性校验。Windows系统自带certutil工具,支持计算MD5值、SHA1值、SHA256值的算法。

校验并对比
CertUtil -hashfile FileName [HashAlgorithm]
  • 其中:
  • FileName:文件路径和名称
  • HashAlgorithm:校验类型,包含MD2、MD4、MD5、 SHA1、SHA256、SHA384、SHA512

校验失败

如果经过校验,发现本地下载的文件的md5或sha1值与官网提供的不一致(下载不完整,或文件被篡改),则需要删除本地文件,重新下载。

安装apache

目录规划

我的apache+php学习环境,如下图所示。可根据实际情况设置适合自己的目录和结构。

我规划的apache目录
  • D:\My_WebSite,根目录
  • D:\My_WebSite\Soft,存放安装包源文件。
  • D:\My_WebSite\Study,存放学习资料。重要。
  • D:\My_WebSite\System,存放apache和php环境文件,重要。
  • D:\My_WebSite\Tools,存放辅助工具。
  • D:\My_WebSite\WWW,存放网站。
  • 建议:
    • 目录使用连贯的英文字符,以保证最大的兼容性。
    • 分门别类存放文件,防止文件误操作。

配置apache

解压apache

解压apache到计划好的目录中,目录如图:

apache压缩包解压后
注意:不建议将apache目录重命名,原始目录名称在后期故障排查时,更容易查看版本和分析诊断。

配置apache

apache配置文件路径如下图所示,文件名称:httpd.conf

注意:
所有apache的配置修改后,必须重启apache服务,才能生效。
httpd.conf 所在位置

SRVROOT

SRVROOT,指向apache程序的根目录。apache服务器的配置、错误和日志文件都保存在这个目录下。就是说,ServerRoot目录是Apache所有内容的根目录。注意:不要在目录路径的末尾添加斜杠。

默认

Define SRVROOT "/Apache24"
ServerRoot "${SRVROOT}"

更改

Define SRVROOT "D:/My_WebSite/System/httpd-2.4.53-o111o-x64-vs17/Apache24"
ServerRoot "${SRVROOT}"

DocumentRoot

DocumentRoot,你将从该目录中提供你的网站文件。默认情况下,所有的请求都来自这个目录,但可以使用符号链接和别名来指向其他位置。此处根据个人需要进行设置即可。我进行更改,是因为默认的目录层级太深。

默认

DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">

更改

DocumentRoot "D:/My_WebSite/WWW"
<Directory "D:/My_WebSite/WWW">

DirectoryIndex

DirectoryIndex,设置Apache在请求目录时将提供的文件。即apache在访问目录时首选的默认起始页或索引页,默认只提供了index.html。此处因为配置的是apache+php环境,因此,需要添加php的页面类型。

默认

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

更改

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

添加PHP支持

如果需要apache支持php环境,则需要添加php支持。注意:根据实际情况,只需添加一种即可。且一般建议添加高版本的,有更好的支持。

添加php8.x

下面的php版本为8.0以上。注意,确保php8apache2_4.dll文件存在,路径真实。php8.0以上的,php_module不需要写为php_8module .

LoadModule php_module "D:/My_WebSite/System/php-8.1.7-Win32-vs16-x64/php8apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
AddType application/x-httpd-php-source .phps
PHPIniDir "D:/My_WebSite/System/php-8.1.7-Win32-vs16-x64"
添加php7.x

如果需要添加的php支持版本为7.x,则应该使用如下示例。注意,确保php7apache2_4.dll文件存在,路径真实。低版本的以此类推。。。

LoadModule php_7module "D:/My_WebSite/System/php-xxx-Win32-vs16-x64/php7apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
AddType application/x-httpd-php-source .phps
PHPIniDir "D:/My_WebSite/System/php-xxx-Win32-vs16-x64"

端口

Listen,即端口。允许您将 Apache 绑定到特定的 IP 地址和/或端口,而不是默认端口。

默认

Listen 80

修改

Listen 8001

ServerName

ServerName 给出了服务器用来标识自己的名称和端口。这通常可以自动确定,但我们建议您明确指定它以防止在启动过程中出现问题。如果您的主机没有注册的 DNS 名称,请在此处输入其 IP 地址。
在现代的电脑中,默认都使用了ipv6地址,如果不设置此内容,则会发生以下报错:
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using fe80::4f3:777e:798:c4f8. Set the ‘ServerName’ directive globally to suppress this message

默认

ServerName localhost:80

更改

如果默认的为#ServerName localhost:80,则建议取消#注释符号。其他建议根据实际情况进行设置。

安装apache

测试apache配置

在安装apache服务前,可以通过直接运行httpd.exe,来检验apache配置是否正确。如果有错误的配置,则会有相关报错信息。

以管理员权限运行cmd,输入:

cd /d "D:\My_WebSite\System\httpd-2.4.54-o111o-x64-vs17\Apache24\bin"
httpd.exe
使用cmd启动apache服务
在web浏览器中访问apache提供的web服务
localhost指向的本地物理路径

安装apache服务

以管理员权限运行cmd,输入以下命令,安装apache服务。

cd /d "D:\My_WebSite\System\httpd-2.4.54-o111o-x64-vs17\Apache24\bin"
httpd -k install
  • 第一行表示切换到apache所在目录
  • 第二行为安装apache服务,此处没有强制设定apache的服务名称。因此安装完成后,服务名称为apache2.4

Errors reported here must be corrected before the service can be started.在启动服务之前,这里报告的错误必须得到纠正。如果这句后面跟着其他的消息,则应该查看,并处理。如果后面没有内容,则表示配置正确。

系统服务中的apache服务

启动服务

两种方法,一种是在系统服务中,对apache2.4手动点击启动。一种是使用命令。如下:

httpd -k start

相关命令

netstat -aon|findstr 80
rem 查看80端口是否被占用
httpd -k install
rem 安装apache服务
httpd -k start
rem 启动Apache服务
httpd -k stop
rem 停止Apache服务
httpd -k restart
rem 重启Apache服务
httpd -v
rem 查看Apache服务版本号
httpd -help
rem 查看Apache服务的帮助
sc delete apache2.4
rem 删除apache 服务

常见问题

拒绝访问

在安装、卸载、启动、停止、重启Apache时,如果提示拒绝访问,请检查批处理是否以管理员启动。

Define SRVROOT路径

报错:在启动Apache服务之前必须修正一个错误,在D:/My_Web/php/Apache24/conf/httpd.conf第40行,ServerRoot必须是有效的。错误截图如下:

这种情况下,Apache服务已经安装成功,需修改httpd.conf配置内容,修改后如下图所示(根据实际路径进行配置):

Service is already installed.

服务已经存在了,无需安装。或者需要先删除,再安装。

SSLProtocol: Illegal protocol TLSv1.3

错误原因:默认启用了ENABLE_TLS13。注意,此报错在后续版本中没有发生。遇到时,请注意查看自己的apache版本和设置

报错时
修改后

标签:

发表评论

您的电子邮箱地址不会被公开。