认识Apache
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
下载Apache
访问地址
官方网站:https://httpd.apache.org/
选择apache版本
提示: 1. 一般在生产环境中,建议使用最新的稳定版。既保证安全性,又保证稳定性。 2. 如果是在测试环境中,则可以根据自己的需要,进行选择。 (1)例如想测试最新版,那就下载最新版。 (2)想测试老版本,那就下载老版本。 (3)如果是生产环境安装前的功能验证,则建议保持与生产环境的版本一致。
打开官网地址 https://httpd.apache.org/ ,如下图( 官网首页 )所示,当前最新稳定版为2.4.54。此处我们下载最新稳定版,因此点击 Apache httpd 2.4.54 Released 下面的 Download。如下图所示。
Apache 官网,可看到当前最新版本的相关介绍和下载链接
选择操作系统类型
提示: 1. bz2、gz 都是 Linux 系统使用的。 2. Windows 系统请点击:Files for Microsoft Windows
本次是安装到 windows 操作系统中,请点击 Files for Microsoft Windows,访问 windows 版 apache 下载页面。
Apache 下载页面,选择适合自己的Apache版本
选择下载源
提示: 1. Apache本身不提供软件的二进制版本,只提供源代码。 2. 单个提交者可以提供二进制包作为方便,但它不是可交付的版本。 3. 如果您无法自己编译Apache HTTP Server,则可以从Internet上提供的众多二进制发行版中获取二进制包。 4. Apache 官网在下面提供了几个可下载二进制包的网站,方便我们使用。
我们点击第一个 ApacheHaus 进入。
Apache 官网提供了5个可下载网站的链接,我们点击第一个网站进入
选择位数并下载
我的电脑是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两个都下载)。
https://www.apachehaus.com/cgi-bin/download.plx 即 Apche 网站推荐的下载 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
提示:
- 经过校验,发现本地文件的md5或sha1值与官网提供的不一致(下载不完整,或文件被篡改),则需要重新下载并重新校验。
- 如果数次下载,始终无法保证本地文件和官网提供的校验值不一致,请检查: (1)对照官网的校验值的类型是否一致。 (2)更换下载工具下载。 (3)检查本地电脑是否中毒或存在恶意软件。
安装apache
目录规划
建议: 1. 如果您的电脑有系统盘之外的分区,建议把网站和网站相关的文件放在这样的分区中。系统重装后,网站只需要简单的环境配置,即可重新恢复活力。 2. 目录建议使用连贯的英文字符和符号,以最大程度保证兼容性和稳定性。 (1)不建议存在仅大小写不同的目录,在有些情况下,系统不区分大小写,会造成混乱。 (2)目录需考虑名称的合理性。 3. 下载解压后的httpd(apache)和php文件夹,建议保留原始文件名,即保留版本号。以方便后续维护升级和排错。 4. 分门别类存放文件,防止文件误操作,也更加方便设置权限。尤其是linux环境,更加如此。 我的目录规划: D:\My_WebSite,根目录 D:\My_WebSite\Software,存放安装包源文件。 D:\My_WebSite\Study,存放学习资料。重要。 D:\My_WebSite\System,存放apache和php环境文件,重要。 D:\My_WebSite\Tools,存放辅助工具。 D:\My_WebSite\WWW,存放网站。
我的 apache+php
测试目录如下图所示。可根据实际情况设置适合自己的目录和结构。
我规划的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服务前,可以通过直接运行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版本和设置
报错时
修改后
标签:httpd,windows,校验,Apache,apache,php,安装,下载 From: https://blog.51cto.com/tech4fei/5985330