温馨提示×

ubuntu apache2配置要注意啥

小樊
34
2026-07-05 23:51:02
栏目: 智能运维

在 Ubuntu 上配置 Apache2 时,有几个常见且容易踩坑的点。下面按安装 → 配置 → 安全 → 排错来总结,都是实战经验。


一、安装与基本检查

1️⃣ 安装 Apache2

sudo apt update
sudo apt install apache2

2️⃣ 启动并开机自启

sudo systemctl start apache2
sudo systemctl enable apache2

3️⃣ 基本状态检查

sudo systemctl status apache2

✅ 看到 active (running) 才正常


二、防火墙(非常重要)

UFW 防火墙

sudo ufw allow 'Apache Full'
sudo ufw reload

确认:

sudo ufw status

常见端口:

  • 80(HTTP)
  • 443(HTTPS)

三、目录与权限(最常见坑)

1️⃣ 默认根目录

/var/www/html

2️⃣ 权限问题(重点)

⚠️ 不要直接 chmod 777

推荐做法:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

www-data 是 Apache 的运行用户


四、站点配置(推荐用虚拟主机)

1️⃣ 新建站点配置

sudo cp /etc/apache2/sites-available/000-default.conf \
/etc/apache2/sites-available/example.conf

编辑:

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

基本模板:

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

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

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

2️⃣ 启用站点

sudo a2ensite example.conf
sudo systemctl reload apache2

3️⃣ 禁用默认站点(可选)

sudo a2dissite 000-default.conf

五、启用 rewrite / SSL 等模块

常用模块

sudo a2enmod rewrite
sudo a2enmod ssl
sudo a2enmod headers

然后:

sudo systemctl restart apache2

六、.htaccess 不生效?

检查两点:

1️⃣ 是否开启 AllowOverride

<Directory /var/www/html>
    AllowOverride All
</Directory>

2️⃣ 是否启用了 rewrite

sudo a2enmod rewrite

七、HTTPS(强烈建议)

使用 Let’s Encrypt

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

✅ 自动配置 HTTPS + 自动续期

检查续期:

sudo certbot renew --dry-run

八、日志排错(非常重要)

日志位置

/var/log/apache2/error.log
/var/log/apache2/access.log

实时查看错误

sudo tail -f /var/log/apache2/error.log

九、常见错误总结

问题 原因
403 Forbidden 目录权限 / 没有 index 文件
404 DocumentRoot 写错
.htaccess 无效 AllowOverride 没开
端口占用 nginx / 其他服务占 80
配置不生效 忘了 reload / restart

十、性能与安全建议(进阶)

✅ 关闭目录浏览:

Options -Indexes

✅ 隐藏 Apache 版本:

ServerTokens Prod
ServerSignature Off

✅ 限制访问:

<Directory /var/www/html/admin>
    Require ip 1.2.3.4
</Directory>

十一点睛总结

Ubuntu + Apache2 配置记住这 5 点:

  1. 防火墙放行 80/443
  2. 目录权限不要 777
  3. 用虚拟主机而不是改默认配置
  4. 改配置后一定要 reload
  5. 出问题先看 error.log

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

  • ✅ 是 本地虚拟机 / 云服务器 / 本地开发
  • ✅ 是否 WordPress / Laravel / 静态网站
  • ✅ 是否 多域名 / HTTPS

我可以给你一份完全贴合你场景的 Apache2 配置示例

0