目录
- 第一部分:安装 Apache
- 第二部分:基本配置与文件结构
- 第三部分:创建虚拟主机
- 第四部分:启用 HTTPS (SSL/TLS)
- 第五部分:安全优化
- 第六部分:性能优化
- 第七部分:日志管理
- 第八部分:常见问题与故障排查
第一部分:安装 Apache
1 在 Ubuntu/Debian 上安装
使用 apt 包管理器。

# 更新软件包列表 sudo apt update # 安装 Apache2 sudo apt install apache2 # 检查 Apache 服务状态 sudo systemctl status apache2
2 在 CentOS/RHEL 上安装
使用 yum 或 dnf 包管理器。
# 更新软件包列表 (对于 CentOS 7/8, RHEL 7/8) sudo yum update # 安装 httpd (Apache 的名称) sudo yum install httpd # 对于 CentOS 8/RHEL 8 及更新版本,也可以使用 dnf # sudo dnf install httpd # 启动 Apache 服务并设置为开机自启 sudo systemctl start httpd sudo systemctl enable httpd # 检查 Apache 服务状态 sudo systemctl status httpd
3 验证安装
安装完成后,打开浏览器,访问服务器的 IP 地址或域名,你应该能看到 Apache 的默认欢迎页面。
# 查看服务器的 IP 地址 ip addr show
访问 http://<你的服务器IP>,应该看到 "It works!" 或类似的页面。
第二部分:基本配置与文件结构
了解 Apache 的核心文件和目录是配置的基础。

1 主要配置文件
-
主配置文件:
/etc/apache2/apache2.conf(Ubuntu/Debian) 或/etc/httpd/conf/httpd.conf(CentOS/RHEL)这是 Apache 的核心配置文件,包含了全局设置,如服务器根目录、端口、进程模型等。
-
站点可用/配置目录:
- Ubuntu/Debian:
/etc/apache2/sites-available/(存放可用站点配置) 和/etc/apache2/sites-enabled/(存放已启用的站点配置,通常是sites-available中文件的软链接)。 - CentOS/RHEL:
/etc/httpd/conf.d/(所有自定义的虚拟主机配置文件都放在这里,文件以.conf。
- Ubuntu/Debian:
-
模块目录:
(图片来源网络,侵删)- Ubuntu/Debian:
/etc/apache2/mods-available/和/etc/apache2/mods-enabled/ - CentOS/RHEL:
/etc/httpd/conf.modules.d/
- Ubuntu/Debian:
-
Web 根目录:
- 默认存放网站文件的地方。
- Ubuntu/Debian:
/var/www/html/ - CentOS/RHEL:
/var/www/html/
2 常用管理命令
# Ubuntu/Debian sudo systemctl start apache2 # 启动 sudo systemctl stop apache2 # 停止 sudo systemctl restart apache2 # 重启 (配置修改后常用) sudo systemctl reload apache2 # 优雅重载 (不中断连接,重新读取配置) sudo systemctl status apache2 # 查看状态 # 启用/禁用站点 sudo a2ensite your-site.conf # 启用站点 (创建软链接) sudo a2dissite your-site.conf # 禁用站点 (删除软链接) # 启用/禁用模块 sudo a2enmod mod_rewrite # 启用 rewrite 模块 sudo a2dismod mod_rewrite # 禁用 rewrite 模块 # 测试配置文件语法 sudo apache2ctl configtest # Ubuntu/Debian sudo apachectl configtest # CentOS/RHEL
# CentOS/RHEL sudo systemctl start httpd # 启动 sudo systemctl stop httpd # 停止 sudo systemctl restart httpd # 重启 sudo systemctl reload httpd # 优雅重载 sudo systemctl status httpd # 查看状态 # 测试配置文件语法 sudo apachectl configtest
第三部分:创建虚拟主机
虚拟主机允许你在同一台服务器上托管多个网站,每个网站有独立的域名和配置。
我们将创建两个示例站点:example.com 和 test.com。
1 创建网站目录和文件
# 为 example.com 创建目录 sudo mkdir -p /var/www/example.com/html sudo chown -R $USER:$USER /var/www/example.com/html sudo chmod -R 755 /var/www/example.com/html # 创建 index.html 文件 echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/html/index.html # 为 test.com 创建目录 sudo mkdir -p /var/www/test.com/html sudo chown -R $USER:$USER /var/www/test.com/html sudo chmod -R 755 /var/www/test.com/html # 创建 index.html 文件 echo "<h1>Welcome to test.com</h1>" | sudo tee /var/www/test.com/html/index.html
2 创建虚拟主机配置文件
对于 Ubuntu/Debian:
-
在
sites-available目录下创建配置文件。sudo nano /etc/apache2/sites-available/example.com.conf
-
<VirtualHost *:80> ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/html <Directory /var/www/example.com/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error_example.com.log CustomLog ${APACHE_LOG_DIR}/access_example.com.log combined </VirtualHost> -
启用站点并测试。
sudo a2ensite example.com.conf sudo apache2ctl configtest # 输出应为 "Syntax OK" sudo systemctl reload apache2
对于 CentOS/RHEL:
-
在
conf.d目录下创建配置文件。sudo nano /etc/httpd/conf.d/example.com.conf
-
粘贴与上面 Ubuntu/Debian 中相同的内容(注意
ServerName和ServerAlias)。 -
测试并重启 Apache。
sudo apachectl configtest sudo systemctl restart httpd
3 配置本地hosts文件进行测试 (可选)
如果你没有真实域名,可以在本地电脑的 hosts 文件 (C:\Windows\System32\drivers\etc\hosts on Windows, /etc/hosts on Linux/Mac) 中添加以下行,将域名指向你的服务器 IP:
<你的服务器IP> example.com
<你的服务器IP> www.example.com
<你的服务器IP> test.com
你应该可以通过浏览器访问 http://example.com 和 http://test.com 看到不同的页面了。
第四部分:启用 HTTPS (SSL/TLS)
现代网站必须使用 HTTPS,我们将使用免费的 Let's Encrypt 证书。
1 安装 Certbot
Certbot 是一个自动获取和更新 Let's Encrypt 证书的工具。
Ubuntu/Debian:
sudo apt install certbot python3-certbot-apache
CentOS/RHEL:
# 首先安装 EPEL 仓库 sudo yum install epel-release # 然后安装 Certbot sudo yum install certbot python3-certbot-apache
2 获取并安装证书
运行 Certbot,它会自动检测你的 Apache 配置并引导你完成。
sudo certbot --apache -d example.com -d www.example.com
命令会:
- 提示你输入邮箱地址。
- 询问你是否同意服务条款。
- 询问你是否将 HTTP 流量自动重定向到 HTTPS(强烈推荐选择 Yes)。
- 自动获取证书、修改 Apache 配置(启用
ssl模块,创建 SSL 虚拟主机配置)并重启 Apache。
3 自动续订证书
Let's Encrypt 证书有效期为 90 天,Certbot 会设置一个定时任务来自动续订。
你可以手动测试续订过程:
sudo certbot renew --dry-run
