温馨提示×

apache配置ubuntu要注意啥

小樊
38
2026-10-05 03:19:04
栏目: 智能运维

在 Ubuntu 上配置 Apache(通常是 Apache2) 时,有几个常见但容易踩坑的点,下面按「安装 → 配置 → 权限 → 安全 → 排错」给你梳理一下。


一、安装与基础命令

1. 安装

sudo apt update
sudo apt install apache2

2. 常用命令

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl enable apache2
sudo systemctl status apache2

二、目录结构与配置文件(Ubuntu 特有重要)

Ubuntu 的 Apache 结构和 CentOS 不太一样:

/etc/apache2/
├── apache2.conf        # 主配置(不要直接乱改)
├── ports.conf         # 端口配置
├── sites-available/   # 可用站点(配置在这里)
├── sites-enabled/     # 启用站点(软链接)
├── mods-available/
├── mods-enabled/
└── conf-available/

✅ 正确做法:

  • 站点配置写在 sites-available/
  • 用命令启用:
sudo a2ensite your-site.conf
sudo a2dissite 000-default.conf
sudo systemsctl reload apache2

三、网站根目录与权限(最容易出问题)

默认目录

/var/www/html

权限注意

  • Apache 默认运行用户是:
www-data

设置权限示例:

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

⚠️ 不要把目录设成 777


四、虚拟主机(多站点)

示例 /etc/apache2/sites-available/example.conf:

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

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

    ErrorLog ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

启用:

sudo a2ensite example.conf
sudo systemctl reload apache2

五、.htaccess 与 AllowOverride

如果你用 WordPress、Laravel 等:

sudo a2enmod rewrite

并确保:

AllowOverride All

否则 .htaccess 不生效。


六、防火墙(UFW)

Ubuntu 常用 UFW:

sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

七、HTTPS(强烈建议)

使用 Let’s Encrypt

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

自动配置 80 → 443。


八、常见坑总结

❌ 改了配置不生效
✅ 记得 reload 或 restart

❌ 403 Forbidden
✅ 检查:

  • DocumentRoot 是否存在
  • Directory 权限
  • Require all granted

❌ 站点不显示
✅ 检查:

  • DNS 是否解析
  • 是否 a2ensite
  • 是否监听端口

九、日志排查(非常重要)

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

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

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 用途(PHP / 静态 / 反向代理)
  • 是否用 Docker

我可以直接给你一份可复制的配置模板。

0 踩