在 Debian 上配置 Apache2 通常包括安装、基础配置、虚拟主机、SSL、权限与常见调优。下面按步骤说明(以 Debian 11/12 为例,其他版本类似)。
sudo apt update
sudo apt install apache2
安装完成后,Apache 会自动启动。
查看状态:
systemctl status apache2
设置开机自启:
sudo systemctl enable apache2
如果使用 ufw:
sudo ufw allow 80
sudo ufw allow 443
Debian 下 Apache2 的重要路径:
/etc/apache2/
├── apache2.conf # 主配置文件
├── ports.conf # 端口配置
├── sites-available/ # 虚拟主机配置(可用)
├── sites-enabled/ # 启用的虚拟主机(软链接)
├── mods-available/ # 可用模块
├── mods-enabled/ # 已启用模块
└── conf-available/ # 额外配置
网页根目录默认:
/var/www/html
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/example.com
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>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf # 可选:关闭默认站点
sudo systemctl reload apache2
sudo a2enmod rewrite
sudo a2enmod ssl
sudo systemctl restart apache2
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
sudo certbot renew --dry-run
sudo apt install php libapache2-mod-php
sudo systemctl restart apache2
测试:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
确保目录属主为 www-data:
sudo chown -R www-data:www-data /var/www
检查配置语法:
sudo apache2ctl configtest
sudo tail -f /var/log/apache2/error.log
如果你有具体需求(如反向代理、多站点、Django/PHP 项目、内网部署等),可以告诉我,我给你更针对性的配置。