概述
Apache 是目前世界上最流行的 Web 服务器软件之一,它稳定、功能强大且高度可配置,安装过程根据您使用的 Linux 发行版包管理器不同而有所差异。

- 对于 Ubuntu/Debian 系统: 使用
apt包管理器。 - 对于 CentOS/RHEL/Fedora 系统: 使用
yum或dnf包管理器。
第一步:准备工作
在开始之前,请确保您:
- 拥有一台已经安装好的 Linux 服务器。
- 拥有服务器的
sudo或root权限。 - 服务器可以访问互联网。
第二步:安装 Apache
A. 在 Ubuntu/Debian 系统上安装
-
更新包列表 这是一个好习惯,确保您获取的是最新的软件包信息。
sudo apt update
-
安装 Apache 使用
apt安装apache2包。sudo apt install apache2
系统会提示您确认安装,输入
Y并按回车。
(图片来源网络,侵删) -
验证安装 安装完成后,Apache 服务通常会自动启动,您可以通过以下方式检查其状态:
sudo systemctl status apache2
如果看到绿色的
active (running)字样,说明 Apache 已成功运行。
B. 在 CentOS/RHEL 系统上安装
-
更新系统 同样,先更新系统以确保所有软件包都是最新的。
# 对于 CentOS/RHEL 7/8 和 Fedora sudo yum update # 对于 Fedora 34+ 和 RHEL 8+ # sudo dnf update
-
安装 Apache 使用
yum或dnf安装httpd包。
(图片来源网络,侵删)# 对于 CentOS/RHEL 7/8 和 Fedora sudo yum install httpd # 对于 Fedora 34+ 和 RHEL 8+ # sudo dnf install httpd
输入
y确认安装。 -
启动并设置开机自启 与 Ubuntu 不同,CentOS/RHEL 上的 Apache 不会在安装后自动启动,您需要手动启动它,并设置为开机自启。
# 启动 Apache 服务 sudo systemctl start httpd # 设置 Apache 开机自启 sudo systemctl enable httpd
-
验证安装 检查服务状态。
sudo systemctl status httpd
看到
active (running)即表示成功。
第三步:配置防火墙
安装完成后,如果服务器开启了防火墙,您需要允许 HTTP (端口 80) 和 HTTPS (端口 443) 流量通过。
对于 Ubuntu/Debian (使用 UFW 防火墙)
# 允许 Apache 的 HTTP 和 HTTPS 流量 sudo ufw allow 'Apache Full' # 如果您只想允许 HTTP (端口 80) # sudo ufw allow 'Apache' # 重新加载防火墙规则以应用更改 sudo ufw reload
对于 CentOS/RHEL (使用 firewalld 防火墙)
# 永久性地添加 HTTP 和 HTTPS 服务到防火墙规则 sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 重新加载防火墙以应用更改 sudo firewall-cmd --reload
第四步:测试 Web 服务器
您可以通过服务器的 IP 地址来测试 Apache 是否正常工作。
-
获取服务器 IP 地址
# 在 Ubuntu/Debian 上 hostname -I # 在 CentOS/RHEL 上 ip addr show
或者直接在服务器上运行
curl ifconfig.me获取公网 IP。 -
在浏览器中访问 打开浏览器,在地址栏输入
http://<您的服务器IP地址>。如果一切正常,您将看到 Apache 的默认欢迎页面,页面内容因发行版而异:
- Ubuntu/Debian: 会显示 "Apache2 Ubuntu Default Page"。
- CentOS/RHEL: 会显示 "Test Page for Apache HTTP Server"。
这表明您的 Apache 服务器已成功安装并运行!
第五步:基本配置和文件结构
了解 Apache 的核心文件结构对于后续管理至关重要。
-
网站根目录 这是存放您网站文件(如 HTML, CSS, JavaScript)的目录。
- Ubuntu/Debian:
/var/www/html/ - CentOS/RHEL:
/var/www/html/
- Ubuntu/Debian:
-
主配置文件
- Ubuntu/Debian:
/etc/apache2/apache2.conf - CentOS/RHEL:
/etc/httpd/conf/httpd.conf
- Ubuntu/Debian:
-
虚拟主机配置文件 用于配置多个网站(域名)。
- Ubuntu/Debian:
/etc/apache2/sites-available/(可用站点) 和/etc/apache2/sites-enabled/(已启用站点,通常是指向sites-available中文件的软链接)。 - CentOS/RHEL:
/etc/httpd/conf.d/,在该目录下的.conf文件会被自动加载。
- Ubuntu/Debian:
-
错误日志和访问日志
- Ubuntu/Debian:
- 访问日志:
/var/log/apache2/access.log - 错误日志:
/var/log/apache2/error.log
- 访问日志:
- CentOS/RHEL:
- 访问日志:
/var/log/httpd/access_log - 错误日志:
/var/log/httpd/error_log
- 访问日志:
- Ubuntu/Debian:
示例:创建一个简单的虚拟主机
假设您想为域名 example.com 创建一个网站。
-
创建网站目录
sudo mkdir -p /var/www/example.com
-
创建一个测试首页
sudo nano /var/www/example.com/index.html
在文件中输入一些简单的 HTML 内容,
<!DOCTYPE html> <html> <head> <title>Welcome to example.com!</title> </head> <body> <h1>Success! Your Apache server is working.</h1> </body> </html>保存并退出 (在
nano中是Ctrl+X, 然后按Y, 再按Enter)。 -
设置目录权限 让 Web 服务器用户可以访问这个目录。
sudo chown -R www-data:www-data /var/www/example.com # Ubuntu/Debian # sudo chown -R apache:apache /var/www/example.com # CentOS/RHEL sudo chmod -R 755 /var/www/example.com
-
创建虚拟主机配置文件
-
Ubuntu/Debian:
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 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>启用新站点并禁用默认站点(可选):
sudo a2ensite example.com.conf sudo a2dissite 000-default.conf
-
CentOS/RHEL:
sudo nano /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80> ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined </VirtualHost>
-
-
重新加载 Apache 配置 让新的配置生效。
# Ubuntu/Debian sudo systemctl reload apache2 # CentOS/RHEL sudo systemctl reload httpd
当您访问 http://example.com (或您服务器的 IP 地址) 时,就应该能看到您创建的页面了。
第六步:管理 Apache 服务
您可以使用 systemctl 命令来管理 Apache 服务。
