温馨提示×

Debian Apache如何配置

小樊
37
2026-08-20 10:33:31
栏目: 智能运维

下面给你一个常见、实用的 Debian + Apache 配置指南,从安装到常用配置,适合新手和日常服务器使用。


一、安装 Apache(Debian)

sudo apt update
sudo apt install apache2

安装完成后,Apache 会自动启动。

查看状态:

sudo systemctl status apache2

常用命令:

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl enable apache2   # 开机自启

二、防火墙放行(如有 UFW)

sudo ufw allow 80        # HTTP
sudo ufw allow 443       # HTTPS
sudo ufw reload

三、Apache 目录结构(Debian)

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

网站根目录默认:

/var/www/html

四、配置一个网站(虚拟主机)

1️⃣ 创建网站目录

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com

2️⃣ 创建虚拟主机配置文件

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>
        AllowOverride All
        Require all granted
    </Directory>

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

3️⃣ 启用站点

sudo a2ensite example.com.conf
sudo systemctl reload apache2

禁用默认站点(可选):

sudo a2dissite 000-default.conf

五、启用 rewrite(URL 重写,常用于 WordPress)

sudo a2enmod rewrite
sudo systemctl restart apache2

.htaccess 才能生效(前提是 AllowOverride All)。


六、启用 HTTPS(推荐)

1️⃣ 安装 Certbot

sudo apt install certbot python3-certbot-apache

2️⃣ 申请证书

sudo certbot --apache -d example.com -d www.example.com

证书会自动续期。


七、常用模块管理

sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2dismod xxx

八、检查配置是否正确

sudo apache2ctl configtest

看到:

Syntax OK

说明配置没问题。


九、常见问题

❌ 403 Forbidden

  • 目录权限不对
  • 没有 Require all granted

❌ .htaccess 不生效

  • 没启用 rewrite
  • AllowOverride 不是 All

❌ 端口被占用

sudo netstat -tlnp | grep 80

十、如果你有具体需求

你可以直接告诉我:

  • ✅ 是 Debian 11 / 12
  • ✅ 单站点还是多站点?
  • ✅ 是否用 PHP / Python / 反向代理
  • ✅ 是否部署 WordPress / 宝塔 / Docker

我可以给你更精确的配置示例

0