Apache HTTP Server(简称 Apache)是全球最流行的 Web 服务器软件之一,稳定、开源、功能强大,是搭建网站的理想选择。

目录
- 第一步:准备工作
- 明确网站类型(静态/动态)
- 选择操作系统(推荐 Linux)
- 准备域名和服务器
- 第二步:安装 Apache 服务器
- 在 Linux (Ubuntu/Debian) 上安装
- 在 Linux (CentOS/RHEL) 上安装
- 在 Windows 上安装
- 第三步:基础配置与管理
- 启动、停止、重启 Apache
- 验证安装(测试默认页面)
- Apache 目录结构解析
- 第四步:部署你的第一个网站
- 创建网站目录
- 创建虚拟主机
- 配置域名解析
- 测试网站访问
- 第五步:进阶配置
- 配置 HTTPS/SSL (Let's Encrypt)
- 配置伪静态
- 配置反向代理
- 第六步:安全加固
- 防火墙设置
- 禁用不必要的模块
- 文件权限设置
- 第七步:常见问题排查
- 查看 Apache 错误日志
- 常见错误码解析
第一步:准备工作
在开始之前,你需要明确以下几点:
-
网站类型:
- 静态网站:只包含 HTML、CSS、JavaScript、图片等文件,内容固定,个人博客、企业官网。
- 动态网站:需要服务器端语言(如 PHP、Python、Node.js)和数据库(如 MySQL)来生成页面,电商网站、社交媒体。
- 本指南将先以静态网站为例,再扩展到动态网站。
-
操作系统:
- Linux (推荐):Apache 在 Linux 上性能最好,最稳定,也是服务器环境的主流选择,推荐使用 Ubuntu/Debian 或 CentOS/RHEL。
- Windows:也可以运行 Apache,但通常用于本地开发环境或特定业务场景,配置上可能稍显复杂。
-
域名和服务器:
(图片来源网络,侵删)- 域名:你需要一个域名(
yourdomain.com),并在域名注册商处购买。 - 服务器:你需要一台云服务器(如阿里云、腾讯云、AWS、Vultr 等)或一台本地电脑,服务器需要有一个公网 IP 地址。
- 域名:你需要一个域名(
第二步:安装 Apache 服务器
这里我们以最推荐的 Ubuntu 20.04 为例。
在 Ubuntu/Debian 上安装
-
更新软件包列表:
sudo apt update
-
安装 Apache:
sudo apt install apache2
-
安装过程中,系统会自动启动 Apache 服务,你可以通过以下命令检查状态:
(图片来源网络,侵删)sudo systemctl status apache2
如果看到
active (running),说明安装成功。
在 CentOS/RHEL 上安装
-
安装 EPEL 仓库(如果尚未安装):
sudo yum install epel-release
-
安装 Apache:
sudo yum install httpd
-
启动 Apache 服务:
sudo systemctl start httpd
-
设置开机自启:
sudo systemctl enable httpd
在 Windows 上安装
- 访问 Apache 官方下载页面。
- 下载 Windows 版本的 ZIP 压缩包(
httpd-2.4.x-win64-VC15.zip)。 - 解压到一个没有空格的路径,
C:\Apache24。 - 打开
C:\Apache24\conf\httpd.conf文件,找到Define SRVROOT "C:/Apache24"这一行,确保路径正确。 - 打开命令提示符(CMD),以管理员身份运行,进入
C:\Apache24\bin目录,然后执行httpd.exe。 - 打开浏览器访问
http://localhost,如果看到 "It works!" 页面,说明安装成功。
第三步:基础配置与管理
启动、停止、重启 Apache
-
启动:
# Ubuntu/Debian sudo systemctl start apache2 # CentOS/RHEL sudo systemctl start httpd
-
停止:
# Ubuntu/Debian sudo systemctl stop apache2 # CentOS/RHEL sudo systemctl stop httpd
-
重启(修改配置后常用):
# Ubuntu/Debian sudo systemctl restart apache2 # CentOS/RHEL sudo systemctl restart httpd
-
重新加载配置(不会中断现有连接,更推荐):
# Ubuntu/Debian sudo systemctl reload apache2 # CentOS/RHEL sudo systemctl reload httpd
验证安装
在浏览器中输入你的服务器公网 IP 地址,http://123.45.67.89,如果看到 "It works!" 页面,说明 Apache 已经成功运行。
Apache 目录结构
了解这些关键目录对你后续配置至关重要:
- 网站根目录:存放网站文件的地方。
- Ubuntu/Debian:
/var/www/html/ - CentOS/RHEL:
/var/www/html/ - Windows:
C:\Apache24\htdocs\
- Ubuntu/Debian:
- 配置文件目录:
- Ubuntu/Debian:
/etc/apache2/ - CentOS/RHEL:
/etc/httpd/conf/
- Ubuntu/Debian:
- 虚拟主机配置目录:
- Ubuntu/Debian:
/etc/apache2/sites-available/(配置文件) 和/etc/apache2/sites-enabled/(启用的配置链接) - CentOS/RHEL:
/etc/httpd/conf.d/(所有.conf文件都会被自动加载)
- Ubuntu/Debian:
- 日志文件目录:
- Ubuntu/Debian:
/var/log/apache2/ - CentOS/RHEL:
/var/log/httpd/access.log: 记录所有访问请求。error.log: 记录服务器错误信息。
- Ubuntu/Debian:
第四步:部署你的第一个网站
假设我们要部署一个名为 example.com 的网站。
创建网站目录
在网站根目录下为你的网站创建一个专属文件夹。
# Ubuntu/Debian sudo mkdir -p /var/www/example.com # CentOS/RHEL sudo mkdir -p /var/www/example.com
创建虚拟主机
虚拟主机允许你在一台服务器上托管多个网站,每个网站都有独立的配置。
以 Ubuntu/Debian 为例:
-
创建配置文件:
sudo nano /etc/apache2/sites-available/example.com.conf
粘贴进去,并修改
ServerName和DocumentRoot:<VirtualHost *:80> ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com <Directory /var/www/example.com> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>ServerName: 你的主域名。ServerAlias: 你的其他域名(如带www的)。DocumentRoot: 网站文件存放的绝对路径。AllowOverride All: 允许在该目录下使用.htaccess文件(伪静态常用)。
-
启用虚拟主机: 使用
a2ensite命令创建符号链接到sites-enabled目录。sudo a2ensite example.com.conf
-
禁用默认站点(可选):
sudo a2dissite 000-default.conf
-
重新加载 Apache 配置:
sudo systemctl reload apache2
以 CentOS/RHEL 为例:
- 创建配置文件:
sudo nano /etc/httpd/conf.d/example.com.conf ```与 Ubuntu/Debian 的配置文件
