Ubuntu系统安装Apache服务教程

Ubuntu系统安装Apache服务教程

      • [🚀 第一步:安装与启动 Apache](#🚀 第一步:安装与启动 Apache)
      • [🔥 第二步:配置防火墙 (UFW)](#🔥 第二步:配置防火墙 (UFW))
      • [✅ 第三步:验证安装](#✅ 第三步:验证安装)
      • [📂 第四步:了解核心目录](#📂 第四步:了解核心目录)
      • [🌐 第五步:配置虚拟主机 (多站点)](#🌐 第五步:配置虚拟主机 (多站点))
      • [🔒 第六步:启用 HTTPS (可选但推荐)](#🔒 第六步:启用 HTTPS (可选但推荐))
      • [🛠️ 常用命令与排错速查](#🛠️ 常用命令与排错速查)

🚀 第一步:安装与启动 Apache

  1. 更新软件包列表
    首先,刷新本地的软件包索引,确保能获取到最新的版本信息。

    bash 复制代码
    sudo apt update
  1. 安装 Apache

    执行安装命令。-y 参数表示自动确认,省去手动输入"Y"的步骤。

    bash 复制代码
    sudo apt install apache2 -y

    安装完成后,Apache 服务通常会自动启动。

  2. 管理 Apache 服务

    你可以使用 systemctl 命令来管理 Apache 的运行状态:

    • 查看状态 :sudo systemctl status apache2,看到 active (running) 字样即为正常。
    • 启动/停止/重启 :sudo systemctl start/stop/restart apache2。
    • 设置开机自启 :sudo systemctl enable apache2。
    • 平滑重载配置 :在不中断服务的情况下重新加载配置文件,sudo systemctl reload apache2。

🔥 第二步:配置防火墙 (UFW)

如果你的 Ubuntu 启用了 UFW 防火墙,需要放行 HTTP (80) 和 HTTPS (443) 端口,否则外部无法访问网站。

最简便的方法是使用 Apache 预置的应用配置文件:

bash 复制代码
sudo ufw allow 'Apache Full'

这条命令会同时放行 80 和 443 端口。执行后,可以用 sudo ufw status 查看规则是否生效。

✅ 第三步:验证安装

打开浏览器,访问你的服务器 IP 地址:

复制代码
http://你的服务器IP

如果看到 "Apache2 Ubuntu Default Page" 的欢迎页面,就说明 Apache 已经成功安装并运行了。

📂 第四步:了解核心目录

熟悉 Apache 在 Ubuntu 下的文件结构,对后续配置很有帮助:

路径 作用
/var/www/html 默认网站根目录,你的网站文件(如 HTML、PHP)就放在这里
/etc/apache2/apache2.conf 主配置文件,包含全局设置
/etc/apache2/sites-available/ 可用站点配置目录,存放虚拟主机的配置文件
/etc/apache2/sites-enabled/ 已启用站点 目录,存放指向 sites-available 中配置文件的软链接
/etc/apache2/mods-available/ 可用模块目录
/etc/apache2/mods-enabled/ 已启用模块目录
/var/log/apache2/ 日志目录 ,包含 access.log (访问日志) 和 error.log (错误日志)

🌐 第五步:配置虚拟主机 (多站点)

虚拟主机允许你在同一台服务器上托管多个网站。以下是一个配置示例,假设域名为 example.com。

  1. 创建网站目录和测试页面

    bash 复制代码
    sudo mkdir -p /var/www/example.com/public_html
    sudo chown -R $USER:$USER /var/www/example.com
    echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/public_html/index.html
  2. 创建虚拟主机配置文件

    使用 nano 或 vim 创建配置文件:

    bash 复制代码
    sudo nano /etc/apache2/sites-available/example.com.conf

    将以下内容粘贴进去(注意替换为你自己的域名和路径):

    apache 复制代码
    <VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com/public_html
    
        <Directory /var/www/example.com/public_html>
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
        CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
    </VirtualHost>
  3. 启用新站点并重载 Apache

    bash 复制代码
    sudo a2ensite example.com.conf
    sudo systemctl reload apache2

    如果需要禁用默认站点,可以执行 sudo a2dissite 000-default.conf。

🔒 第六步:启用 HTTPS (可选但推荐)

使用 Let's Encrypt 的免费证书来启用 HTTPS 是最佳实践。

  1. 安装 Certbot 及其 Apache 插件

    bash 复制代码
    sudo apt install certbot python3-certbot-apache -y
  2. 自动获取并安装证书
    将 example.com 替换为你的域名:

    bash 复制代码
    sudo certbot --apache -d example.com -d www.example.com

    Certbot 会自动修改 Apache 配置,申请证书,并设置 HTTP 到 HTTPS 的自动跳转。

🛠️ 常用命令与排错速查

  • 检查配置语法 :修改配置后,先用此命令检查有无语法错误,再重启服务。

    bash 复制代码
    sudo apache2ctl configtest
  • 403 Forbidden 错误 :通常是文件权限问题,确保 www-data 用户对网站目录有读取权限。

    bash 复制代码
    sudo chown -R www-data:www-data /var/www/你的网站目录
  • 端口被占用 :如果启动失败,检查 80 端口是否被其他程序(如 Nginx)占用。

    bash 复制代码
    sudo netstat -tlnp | grep :80
相关推荐
John_Hui1 小时前
第 3 篇:配置 JDK 17 环境
java·开发语言·ubuntu
晴天的雨.9921 小时前
【Linux】make & Makefile 核心知识点
linux·运维·服务器
Zevalin爱灰灰2 小时前
Linux入门第一部分(Ubuntu入门篇) 第三章 shell脚本入门(一)
linux·ubuntu·嵌入式
丘山望岳2 小时前
Linux基础指令入门篇
linux·运维·服务器
笨笨饿2 小时前
#143_屏幕画撕裂的问题及解决方法
linux·stm32·单片机·嵌入式硬件·mcu·lvgl·嵌入式实时数据库
小年糕是糕手2 小时前
【AI】用 Python 做一个 AI 截图检索助手:把收藏夹里的截图找回来
linux·人工智能·python·chatgpt·agent·codex·deepseek
hhhjhl2 小时前
Zod 跨端三方库仓颉适配全流程
linux·运维·ubuntu
叼烟扛炮2 小时前
Linux 学习笔记(三十二):线程控制——创建、等待与分离
linux·运维·服务器·笔记·学习·1024程序员节
夜雪一千2 小时前
Linux 权限、用户、用户组内容介绍
linux·运维·服务器