凌峰创科服务平台

linux服务器安装apache

准备工作

在开始之前,请确保您:

linux服务器安装apache-图1
(图片来源网络,侵删)
  1. 拥有一台已经安装好 Linux 系统的服务器。
  2. 拥有服务器的 sudoroot 权限。
  3. 服务器有一个可以访问的公网 IP 地址(如果您想从外部访问)。
  4. 服务器的防火墙允许 HTTP(端口 80)和 HTTPS(端口 443)流量。

第一部分:在 Ubuntu/Debian 系统上安装 Apache

Ubuntu 和 Debian 使用 apt 包管理器,安装过程非常简单。

更新软件包列表

更新系统的软件包索引,以确保您能获取到最新的软件包信息。

sudo apt update

安装 Apache

使用 apt 命令安装 Apache2。

sudo apt install apache2

在安装过程中,系统会提示您确认,输入 Y 并按回车即可。

linux服务器安装apache-图2
(图片来源网络,侵删)

检查 Apache 服务状态

安装完成后,Apache 服务通常会自动启动,您可以检查其状态:

sudo systemctl status apache2

如果看到绿色的 active (running) 字样,说明 Apache 正在正常运行。

如果服务没有启动,您可以手动启动它:

sudo systemctl start apache2

设置开机自启

为了让 Apache 在服务器重启后自动启动,请执行以下命令:

linux服务器安装apache-图3
(图片来源网络,侵删)
sudo systemctl enable apache2

验证安装

在浏览器中输入您服务器的公网 IP 地址。

http://<你的服务器IP地址>

如果一切正常,您将看到 Apache 的默认欢迎页面,内容类似于 "Apache2 Ubuntu Default Page",这表明您的 Apache 已经成功安装并运行。


第二部分:在 CentOS/RHEL 系统上安装 Apache

CentOS 和 RHEL 使用 yumdnf 包管理器,较新版本的 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 文件来测试您的网站。

  1. 进入网站根目录:

    cd /var/www/html
  2. 使用 echo 命令创建一个 index.html 文件(或者使用 nano/vim 编辑器):

    sudo echo "<h1>Hello from my Apache Server!</h1>" > index.html
  3. 设置正确的文件所有者(非常重要!):

    • 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

再次访问您的服务器 IP,您应该能看到 "Hello from my Apache Server!" 的内容。


第四部分:排错指南

如果访问 IP 地址看不到页面,请检查以下几点:

  1. 防火墙:确认防火墙已经开放了 80 和 443 端口。
  2. SELinux (仅限 CentOS/RHEL):如果开启了 SELinux,它可能会阻止 Apache 访问文件,可以临时设置为宽松模式测试:sudo setenforce 0,如果问题解决,请学习如何为 Apache 创建正确的 SELinux 策略,而不是永久关闭它。
  3. SELinux 状态:在 CentOS 上,确保 SELinux 策略允许 Apache 写入网站目录,一个常见的命令是:
    sudo chcon -R -t httpd_sys_content_t /var/www/html
  4. 检查错误日志:这是排错最有效的方法。
    • 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 查看。

第五部分:安装和配置 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

按照提示操作:

  1. 输入您的邮箱地址。
  2. 阅读并接受服务条款。
  3. 选择是否接收 EFF 的邮件。
  4. Certbot 会列出您配置的域名,选择您要为其获取证书的域名。
  5. 它会自动处理证书的获取、配置到 Apache 中,并重启服务。

完成后,您的网站就可以通过 https:// 安全访问了,Certbot 还会设置一个定时任务,自动续期即将过期的证书。


就是在 Linux 服务器上安装和配置 Apache 的完整指南,从基础安装到高级的 HTTPS 配置,您已经掌握了管理一个基本 Web 服务器所需的核心技能,祝您使用愉快!

分享:
扫描分享到社交APP
上一篇
下一篇