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
相关推荐
byte轻骑兵8 小时前
时序数据库选型指南:Apache IoTDB 社区版实践与踩坑
数据库·人工智能·apache·时序数据库·iotdb
say_fall9 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
ö Constancy9 小时前
一台电脑的硬件组成与作用:按功能分类详解(Windows 与 Linux 视角)
linux·windows·电脑
江湖有缘9 小时前
基于Ubuntu部署SoduWork:企业级 AI 原生协同平台实战全流程
linux·人工智能·ubuntu·ai·soduwork
无奈笑天下18 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
Rabitebla1 天前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump1 天前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
星恒随风1 天前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
少司府1 天前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件