温馨提示×

apache2怎么在ubuntu配置

小樊
41
2026-08-27 14:32:05
栏目: 智能运维

在 Ubuntu 上配置 Apache2 通常包括安装、启动、配置虚拟主机、设置防火墙等步骤。下面给你一个从零开始的完整流程(适用于 Ubuntu 20.04 / 22.04 / 24.04)。


一、安装 Apache2

sudo apt update
sudo apt install apache2 -y

安装完成后,Apache 会自动启动。


二、检查 Apache 状态

sudo systemctl status apache2

看到 active (running) 说明运行正常。

常用命令:

sudo systemctl start apache2    # 启动
sudo systemctl stop apache2     # 停止
sudo systemctl restart apache2  # 重启
sudo systemctl enable apache2   # 开机自启

三、测试 Apache 是否成功

在浏览器访问:

http://服务器IP

如果看到 Apache2 Ubuntu Default Page,说明成功。


四、防火墙配置(非常重要)

1️⃣ 允许 Apache 通过防火墙

sudo ufw allow 'Apache Full'

2️⃣ 查看状态

sudo ufw status

应看到类似:

80/tcp  ALLOW  Anywhere
443/tcp ALLOW  Anywhere

五、Apache 目录结构说明

路径 说明
/var/www/html 默认网站目录
/etc/apache2/apache2.conf 主配置文件
/etc/apache2/sites-available/ 可用站点配置
/etc/apache2/sites-enabled/ 已启用站点
/etc/apache2/mods-available/ 可用模块
/var/log/apache2/ 日志目录

六、配置虚拟主机(推荐方式)

1️⃣ 创建网站目录

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com

2️⃣ 创建测试页面

echo "<h1>Welcome to example.com</h1>" > /var/www/example.com/index.html

3️⃣ 创建虚拟主机配置文件

sudo nano /etc/apache2/sites-available/example.com.conf

内容示例:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com

    <Directory /var/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

七、启用站点并重启 Apache

sudo a2ensite example.com.conf
sudo systemctl reload apache2

如需禁用默认站点:

sudo a2dissite 000-default.conf

八、本地测试(可选)

如果你没有域名,可以修改本地 hosts 文件:

sudo nano /etc/hosts

添加:

127.0.0.1 example.com

浏览器访问:

http://example.com

九、启用 HTTPS(强烈推荐)

1️⃣ 安装 Certbot

sudo apt install certbot python3-certbot-apache -y

2️⃣ 申请证书

sudo certbot --apache -d example.com -d www.example.com

证书会自动续期 ✅


十、常见问题排查

403 Forbidden

sudo chmod -R 755 /var/www

网站不生效

sudo apache2ctl configtest

如果你愿意,可以告诉我:

  • ✅ 是 本地开发 还是 云服务器
  • ✅ 是否要 PHP / Python / 反向代理
  • ✅ 是否要 多站点配置

我可以给你更精确的配置示例。

0