温馨提示×

如何配置Ubuntu的Apache

小樊
55
2026-07-31 23:15:24
栏目: 智能运维

下面给你一份在 Ubuntu 上配置 Apache 的完整常见流程(从安装到常用配置),适用于 Ubuntu 20.04 / 22.04 / 24.04。如果你有更具体的需求(虚拟主机、HTTPS、PHP、反向代理等),可以再继续深入。


一、安装 Apache

sudo apt update
sudo apt install apache2 -y

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

检查状态:

sudo systemctl status apache2

如果未启动:

sudo systemctl start apache2
sudo systemctl enable apache2

二、防火墙放行 HTTP / HTTPS

如果启用了 ufw:

sudo ufw allow 'Apache Full'

验证:

sudo ufw status

浏览器访问服务器 IP,若看到 Apache2 Default Page,说明安装成功。


三、Apache 目录结构(重点)

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

四、配置虚拟主机(推荐做法)

1️⃣ 创建网站目录

sudo mkdir -p /var/www/example.com/public_html

2️⃣ 创建测试页面

echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/public_html/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/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>

4️⃣ 启用站点

sudo a2ensite example.com.conf
sudo systemctl reload apache2

五、启用重写(URL Rewrite)

常用于 WordPress、Laravel 等:

sudo a2enmod rewrite
sudo systemctl restart apache2

并在 <Directory> 中确保:

AllowOverride All

六、配置 HTTPS(Let’s Encrypt)

1️⃣ 安装 Certbot

sudo apt install certbot python3-certbot-apache -y

2️⃣ 申请证书

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

Certbot 会自动:

  • 申请证书
  • 修改 Apache 配置
  • 设置 HTTPS 自动跳转

证书自动续期测试:

sudo certbot renew --dry-run

七、常用 Apache 命令

sudo systemctl start apache2      # 启动
sudo systemctl stop apache2       # 停止
sudo systemctl restart apache2    # 重启
sudo systemctl reload apache2     # 平滑重载
sudo apache2ctl configtest        # 检查配置

八、常见问题排查

❌ 403 Forbidden

  • 文件权限问题
sudo chown -R www-data:www-data /var/www/example.com

❌ 网站不生效

sudo apache2ctl configtest
sudo systemctl reload apache2

❌ 端口被占用

sudo netstat -tlnp | grep 80

九、我可以继续帮你

你可以直接告诉我:

  • ✅ 是否用 PHP / Python / Node
  • ✅ 是否需要 多站点
  • ✅ 是否做 反向代理(Apache → Tomcat / Docker)
  • ✅ 是否是 生产服务器

我可以给你一份完全针对你场景的 Apache 配置方案。

0 踩