windows 安装 Apache

Visits: 355

本文是windows电脑或服务器安装 apache+php+mysql 的系列新手教程之一。

认识Apache

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

安装规划

系统类型

Windows 多用于个人计算机等,常见压缩文件格式:zip、rar。Linux 多用于服务器和超级计算机等,支持的压缩文件格式:bz2、gz。根据要安装的系统,选择下载相应格式的安装包。

如果是X64系统优先选择X64的软件,以发挥更高效能。

最新/稳定

1. 一般在生产环境中,建议使用最新稳定版。既保证安全性,又保证稳定性。
2. 如果是在测试环境中,则可以根据自己的需要,进行选择。
(1)例如想测试最新版,那就下载最新版。
(2)想测试老版本,那就下载老版本。
(3)如果是生产环境安装前的功能验证,则建议保持与生产环境的版本一致。

目录规划

目录规划时,需要考虑以下几点:

  • 数据存放在非系统分区
    • 一个服务器可能包含多个网站,每个网站包含各种文件,占用空间可能超出C盘可用空间,此时,不仅网站无法启动,系统更可能无法维护。存放在非系统盘,为后续磁盘扩容留下保障
    • 存放于非系统盘或者分区,系统故障时,不涉及数据迁移,减少配置程序等。加快恢复速度。
  • 兼容性和稳定性
    • 目录使用连贯的英文字符和符号。
      • 请不要仅以大小不同来区分并创建此类文件夹,在某些情况下,可能导致数据混乱或丢失。例如数据备份工具的系统可能与当前操作系统不一致,对大小写不敏感时可能导致数据备份出错。如群晖,windows系统。
  • 考虑目录名称的合理性、统一性、可辨识性
    • 使用有意义的可辨识的名称。方便后续标准化、自动化维护、并方便不同人员相互协作。
    • 下载解压后的httpd(Apache)和php目录,建议保留原始文件名,即保留版本号。以方便后续维护升级和排错。
  • 分门别类存放文件
    • 防止文件误操作,也更加方便设置权限。

目录示例:

  • D:\My_WebSite
    • System
      • httpd-2.4.55-o111s-x64-vs17
        • Apache24
        • readme_first.html
      • php-8.2.6-Win32-vs16-x64
    • Htdocs
      • wordpress
      • test
    • Data
      • wordpress
      • test
    • Bak
      • wordpress
      • test
    • Software
    • Note
    • Tools
  • 根目录,网站的所有文件都在此目录之内。
  • 存放Apache和php环境文件,重要。
  • 当前正在使用的Apache的目录
  • Apache的根目录
  • Apache的第一次说明文档
  • 当前正在使用的php目录
  • 存放网站。也可以使用大众熟知的WWW。
  • 我的网站之一,wordpress仅表示目录名称。
  • 我的网站之一,test 仅表示目录名称。
  • 三个点不是文件夹。只是在此表示更多的网站。
  • 存放网站数据库。文件夹名称与网站目录名称一致。
  • 我的网站之一,wordpress仅表示目录名称。
  • 我的网站之一,test 仅表示目录名称。
  • 三个点不是文件夹。只是在此表示更多的数据库名称。
  • 备份旧文件,强烈建议旧文件不要放在原来的目录中。
  • 我的网站之一,wordpress仅表示目录名称。
  • 我的网站之一,test 仅表示目录名称。
  • 三个点不是文件夹。只是在此表示更多的网站,或者其他配置文件,主题,插件。
  • 存放安装包、主题模板、插件模板、自定义文件等。
  • 存放学习资料、记录进度、任务、学习心得等。
  • 存放辅助工具,例如数据库工具,文本对比工具等。

下载Apache

访问地址

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

如图:apache 网站首页

下载Apache

打开官网地址 https://httpd.apache.org/ ,如下图( 官网首页 )所示,当前最新稳定版为2.4.54。此处我们下载最新稳定版,因此点击 Apache httpd 2.4.54 Released 下面的 Download。如图(手指处)所示:apache 首页;本次是安装到 windows 操作系统中,请点击 Files for Microsoft Windows,访问 windows 版本的 Apache。如图(手指处)所示:apache windows 版本下载;我们点击第一个 ApacheHaus 进入。如图(手指处)所示:apache windows 版本的下载链接页面;我的电脑是X64位,因此我选择 Apache 2.4.54 x64 。如图(手指处)所示:

提示:
1. Apache本身不提供软件的二进制版本,只提供源代码。
2. 单个提交者可以提供二进制包作为方便,但它不是可交付的版本。
3. 如果您无法自己编译Apache HTTP Server,则可以从Internet上提供的众多二进制发行版中获取二进制包。
4. Apache 官网在下面提供了几个可下载二进制包的网站,方便我们使用。
注意:下载后和安装之前,应确保文件完好无损且未被篡改。建议使用 SHA 校验和验证完整性,原始SHA1值在下载页面有提供。

下载Visual Studio

为方便进一步兼容Apache ,我选择了在 https://www.apachehaus.com/cgi-bin/download.plx 下载对应的 Microsoft Visual Studio 2015, 2017, 2019, and 2022 Redistributable (VS14-VS17) x86和x64(x86和x64两个都下载)。

https://www.apachehaus.com/cgi-bin/download.plx 即 Apache 网站推荐的下载 Apache 的网站。也是前面我们下载 Apache 文件包的网站。

如下图所示:

Microsoft Visual Studio
设置好的目录和下载好的文件

文件完整性校验

在网络世界中,安全漏洞、数据泄露、病毒和恶意软件已经变得非常普遍,将文件从 Internet 下载到您的笔记本电脑或 PC 时,存在各种快速和复杂的网络威胁,您无法保证 100% 的安全。必须验证文件的真实性和完整性以避免下载可疑数据和勒索软件、病毒、恶意软件或有害的恶意组件。一个被破坏的文件,即使只有几个字节,如果没有被检测到并被彻底清除,就可以利用公司的整个 IT 基础设施从而造成破坏,数据泄密等不可预估的风险。

检查文件的完整性或哈希值旨在检查文件是否真实或验证文件是否被不受信任的组织和个人修改。互联网上的每一个文件都是独一无二的,当它被改变或改变时,它的哈希值或它的数字签名都会改变。因此,可以使用数字签名和哈希值来检查文件的完整性。

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

Apache 官方校验信息如下图所示。

Apache 校验信息下载位置

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

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

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

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

校验并对比
CertUtil -hashfile FileName [HashAlgorithm]
rem 其中:
rem FileName:文件路径和名称
rem HashAlgorithm:校验类型,包含MD2、MD4、MD5、 SHA1、SHA256、SHA384、SHA512
提示:
1. 经过校验,发现本地文件的md5或sha1值与官网提供的不一致(下载不完整,或文件被篡改),则需要重新下载并重新校验。
2. 如果数次下载,始终无法保证本地文件和官网提供的校验值不一致,请检查:
(1)对照官网的校验值的类型是否一致。
(2)更换下载工具下载。
(3)检查本地电脑是否中毒或存在恶意软件。

安装Apache

解压Apache

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

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

配置Apache

配置Apache

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

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

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支持。

注意:
根据实际情况,php7.x 和 php8.x 只需添加一种即可。且一般建议添加高版本的,有更好的支持。
添加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版本和设置

报错时
修改后

发表评论

Index