准备工作
在开始之前,请确保您:

- 拥有一台已经安装好 Linux 系统的服务器。
- 拥有服务器的
sudo或root权限。 - 服务器有一个可以访问的公网 IP 地址(如果您想从外部访问)。
- 服务器的防火墙允许 HTTP(端口 80)和 HTTPS(端口 443)流量。
第一部分:在 Ubuntu/Debian 系统上安装 Apache
Ubuntu 和 Debian 使用 apt 包管理器,安装过程非常简单。
更新软件包列表
更新系统的软件包索引,以确保您能获取到最新的软件包信息。
sudo apt update
安装 Apache
使用 apt 命令安装 Apache2。
sudo apt install apache2
在安装过程中,系统会提示您确认,输入 Y 并按回车即可。

检查 Apache 服务状态
安装完成后,Apache 服务通常会自动启动,您可以检查其状态:
sudo systemctl status apache2
如果看到绿色的 active (running) 字样,说明 Apache 正在正常运行。
如果服务没有启动,您可以手动启动它:
sudo systemctl start apache2
设置开机自启
为了让 Apache 在服务器重启后自动启动,请执行以下命令:

sudo systemctl enable apache2
验证安装
在浏览器中输入您服务器的公网 IP 地址。
http://<你的服务器IP地址>
如果一切正常,您将看到 Apache 的默认欢迎页面,内容类似于 "Apache2 Ubuntu Default Page",这表明您的 Apache 已经成功安装并运行。
第二部分:在 CentOS/RHEL 系统上安装 Apache
CentOS 和 RHEL 使用 yum 或 dnf 包管理器,较新版本的 CentOS (如 CentOS 8+) 使用 dnf,而旧版本 (如 CentOS 7) 使用 yum,这里以 dnf 为例,如果您的系统使用 yum,只需将命令中的 dnf 替换为 yum 即可。
安装 Apache
使用 dnf 命令安装 httpd (Apache 的包名)。
sudo dnf install httpd
输入 y 确认安装。
启动 Apache 服务
安装完成后,手动启动 Apache 服务。
sudo systemctl start httpd
检查 Apache 服务状态
查看服务是否正常运行。
sudo systemctl status httpd
同样,看到 active (running) 即表示成功。
设置开机自启
让 Apache 在系统重启后自动启动。
sudo systemctl enable httpd
验证安装
在浏览器中输入您服务器的公网 IP 地址。
http://<你的服务器IP地址>
如果看到 "Test Page for Apache HTTP Server" 的测试页面,说明安装成功。
第三部分:基本配置和管理
安装只是第一步,了解如何管理 Apache 服务和配置网站非常重要。
管理服务命令
| 命令 | 功能 |
|---|---|
sudo systemctl start apache2 (Ubuntu) / sudo systemctl start httpd (CentOS) |
启动 Apache 服务 |
sudo systemctl stop apache2 / sudo systemctl stop httpd |
停止 Apache 服务 |
sudo systemctl restart apache2 / sudo systemctl restart httpd |
重启 Apache 服务(配置修改后常用) |
sudo systemctl reload apache2 / sudo systemctl reload httpd |
重新加载配置(不中断现有连接) |
sudo systemctl enable apache2 / sudo systemctl enable httpd |
设置开机自启 |
sudo systemctl disable apache2 / sudo systemctl disable httpd |
取消开机自启 |
sudo systemctl status apache2 / sudo systemctl status httpd |
查看服务状态 |
配置防火墙
为了让外部用户能够访问您的网站,必须开放 80 (HTTP) 和 443 (HTTPS) 端口。
对于 Ubuntu/Debian (使用 UFW 防火墙):
# 允许 HTTP 流量 sudo ufw allow 'Apache Full' # 或者分开允许 (更精确) sudo ufw allow 80/tcp sudo ufw allow 443/tcp
对于 CentOS/RHEL (使用 Firewalld 防火墙):
# 添加永久规则并立即生效 sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
目录结构说明
了解 Apache 的文件结构有助于您管理网站。
| 路径 | 说明 |
|---|---|
| Ubuntu/Debian | |
/var/www/html/ |
网站根目录:默认情况下,您的网站文件(如 index.html)应该放在这里。 |
/etc/apache2/sites-available/ |
可用站点配置文件:每个虚拟主机(网站)的配置文件都存放在这里。 |
/etc/apache2/sites-enabled/ |
已启用站点配置文件:这里存放的是 sites-available 中通过软链接启用的配置文件。 |
/etc/apache2/apache2.conf |
主配置文件:Apache 的全局设置。 |
| CentOS/RHEL | |
/var/www/html/ |
网站根目录:同上。 |
/etc/httpd/conf.d/ |
额外配置文件目录:虚拟主机配置文件通常放在这里,文件名以 .conf
|
/etc/httpd/conf/httpd.conf |
主配置文件:Apache 的全局设置。 |
创建一个简单的测试页面
您可以创建一个简单的 HTML 文件来测试您的网站。
-
进入网站根目录:
cd /var/www/html
-
使用
echo命令创建一个index.html文件(或者使用nano/vim编辑器):sudo echo "<h1>Hello from my Apache Server!</h1>" > index.html
-
设置正确的文件所有者(非常重要!):
- Ubuntu/Debian:
# www-data 是 Apache 运行时的用户 sudo chown -R www-data:www-data /var/www/html
- CentOS/RHEL:
# apache 是 Apache 运行时的用户 sudo chown -R apache:apache /var/www/html
- 一个更通用的方法是设置目录所有者为当前用户,并设置正确的权限:
# 在所有系统上都适用 sudo chown -R $USER:$USER /var/www/html sudo chmod -R 755 /var/www/html
- Ubuntu/Debian:
再次访问您的服务器 IP,您应该能看到 "Hello from my Apache Server!" 的内容。
第四部分:排错指南
如果访问 IP 地址看不到页面,请检查以下几点:
- 防火墙:确认防火墙已经开放了 80 和 443 端口。
- SELinux (仅限 CentOS/RHEL):如果开启了 SELinux,它可能会阻止 Apache 访问文件,可以临时设置为宽松模式测试:
sudo setenforce 0,如果问题解决,请学习如何为 Apache 创建正确的 SELinux 策略,而不是永久关闭它。 - SELinux 状态:在 CentOS 上,确保 SELinux 策略允许 Apache 写入网站目录,一个常见的命令是:
sudo chcon -R -t httpd_sys_content_t /var/www/html
- 检查错误日志:这是排错最有效的方法。
- Ubuntu/Debian: 日志文件通常在
/var/log/apache2/error.log,使用tail -f /var/log/apache2/error.log实时查看错误信息。 - CentOS/RHEL: 日志文件在
/var/log/httpd/error_log,使用tail -f /var/log/httpd/error_log查看。
- Ubuntu/Debian: 日志文件通常在
第五部分:安装和配置 SSL (HTTPS) - 使用 Let's Encrypt
为了让网站通过 https 访问,您需要一个 SSL 证书。Let's Encrypt 提供免费的 SSL 证书,推荐使用 certbot 工具自动获取和安装证书。
安装 Certbot
Ubuntu/Debian:
sudo apt update sudo apt install certbot python3-certbot-apache
CentOS/RHEL:
sudo dnf install certbot python3-certbot-apache
获取并自动安装证书
Certbot 会自动检测您的 Apache 配置,并引导您完成获取和安装证书的过程。
sudo certbot --apache
按照提示操作:
- 输入您的邮箱地址。
- 阅读并接受服务条款。
- 选择是否接收 EFF 的邮件。
- Certbot 会列出您配置的域名,选择您要为其获取证书的域名。
- 它会自动处理证书的获取、配置到 Apache 中,并重启服务。
完成后,您的网站就可以通过 https:// 安全访问了,Certbot 还会设置一个定时任务,自动续期即将过期的证书。
就是在 Linux 服务器上安装和配置 Apache 的完整指南,从基础安装到高级的 HTTPS 配置,您已经掌握了管理一个基本 Web 服务器所需的核心技能,祝您使用愉快!
