温馨提示×

ubuntu apache2配置要注意什么

小樊
42
2026-09-05 06:34:58
栏目: 智能运维

在 Ubuntu 上配置 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 的 Apache2 配置结构和 CentOS 不同:

/etc/apache2/
├── apache2.conf          # 主配置文件(少改)
├── ports.conf           # 端口配置
├── sites-available/     # 可用站点配置
├── sites-enabled/       # 启用的站点(软链接)
├── mods-available/
├── mods-enabled/
└── conf-available/

⚠ 注意

  • 不要直接改 sites-enabled 里的文件
  • 正确流程:
sudo nano /etc/apache2/sites-available/example.conf
sudo a2ensite example.conf
sudo systemctl reload apache2

禁用站点:

sudo a2dissite 000-default.conf

三、虚拟主机配置注意点

1. 基本虚拟主机示例

<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>

2. 常见坑

  • DocumentRoot 目录必须存在
  • 目录权限建议:
sudo chown -R www-data:www-data /var/www/example
sudo chmod -R 755 /var/www/example
  • ServerName 不配置会报警告

四、模块管理

启用 / 禁用模块

sudo a2enmod rewrite
sudo a2dismod status
sudo systemctl restart apache2

常用模块:

  • rewrite(伪静态)
  • ssl
  • headers
  • proxy
  • proxy_fcgi(PHP-FPM)

五、PHP 配置注意(如用到)

Apache + PHP(mod_php)

sudo apt install php libapache2-mod-php
sudo systemctl restart apache2

Apache + PHP-FPM(推荐)

sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl restart apache2

六、HTTPS / SSL 配置

1. 启用 SSL

sudo a2enmod ssl
sudo a2ensite default-ssl

2. 使用 Let’s Encrypt(推荐)

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

注意

  • 防火墙要放行 443
sudo ufw allow 'Apache Full'

七、安全配置建议

1. 隐藏版本信息

ServerTokens Prod
ServerSignature Off

2. 禁止目录遍历(如无 index)

Options -Indexes

3. 防火墙

sudo ufw enable
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'

八、日志与排错

日志位置

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

排错步骤

sudo apache2ctl configtest
sudo journalctl -u apache2

常见错误:

  • Address already in use → 端口冲突
  • 403 Forbidden → 权限 / AllowOverride
  • 404 → DocumentRoot 错误

九、总结关键注意点 ✅

  1. sites-available + a2ensite
  2. 权限归属 www-data
  3. 改配置后 reload / restart
  4. 开启防火墙但不要锁死 SSH
  5. 生产环境一定要上 HTTPS

如果你有 具体用途(如 PHP 网站、反向代理、Docker、Laravel、WordPress),我可以给你一份针对性配置示例。

0