温馨提示×

debian怎样配置apache2

小樊
44
2026-09-30 14:42:39
栏目: 智能运维

在 Debian 上配置 Apache2 通常包括安装、基础配置、虚拟主机、SSL、权限与常见调优。下面按步骤说明(以 Debian 11/12 为例,其他版本类似)。


一、安装 Apache2

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

四、配置虚拟主机(推荐方式)

1. 创建网站目录

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R www-data:www-data /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>
        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>

3. 启用站点

sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf   # 可选:关闭默认站点

4. 重载 Apache

sudo systemctl reload apache2

五、启用常用模块

sudo a2enmod rewrite
sudo a2enmod ssl
sudo systemctl restart apache2

六、配置 HTTPS(Let’s Encrypt 示例)

1. 安装 certbot

sudo apt install certbot python3-certbot-apache

2. 申请证书

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

3. 自动续期测试

sudo certbot renew --dry-run

七、PHP 支持(如需要)

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

测试:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

八、常见问题排查

1. 权限问题

确保目录属主为 www-data:

sudo chown -R www-data:www-data /var/www

2. 配置错误

检查配置语法:

sudo apache2ctl configtest

3. 日志查看

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

如果你有具体需求(如反向代理、多站点、Django/PHP 项目、内网部署等),可以告诉我,我给你更针对性的配置。

0 踩