在 Ubuntu 上配置 Apache(通常是 apache2)时,有几个常见但容易踩坑的点,下面按“安装 → 配置 → 安全 → 排错”给你梳理一下。
sudo apt update
sudo apt install apache2
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
⚠️ 注意:
apache2,不是 httpd/etc/apache2//etc/apache2/
├── apache2.conf # 主配置(一般不动)
├── ports.conf # 端口配置
├── sites-available/ # 可用站点(虚拟主机)
├── sites-enabled/ # 启用的站点(软链接)
├── mods-available/
├── mods-enabled/
└── conf-available/
✅ 正确做法:
sites-available 写配置a2ensite 启用sites-enabledsudo nano /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
⚠️ 注意:
DocumentRoot 目录必须存在sudo chown -R www-data:www-data /var/www/example
sudo a2enmod rewrite
sudo a2enmod ssl
sudo systemctl restart apache2
⚠️ 如果用了 .htaccess:
AllowOverride 必须不是 Nonesudo ufw allow 'Apache Full'
或:
sudo ufw allow 80
sudo ufw allow 443
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
⚠️ 注意:
❌ 错误:
chmod -R 777 /var/www
✅ 正确:
chmod -R 755 /var/www
Options -Indexes
如果访问不了:
systemctl status apache2sudo tail -f /var/log/apache2/error.log
.htaccess 方便、兼容老项目如果你愿意,可以告诉我:
我可以直接帮你写一份可用配置模板。