温馨提示×

如何配置Ubuntu Apache

小樊
44
2026-08-16 19:23:25
栏目: 智能运维

在 Ubuntu 上配置 Apache(通常指 Apache HTTP Server / Apache2)可以按下面步骤来,从安装 → 基本配置 → 虚拟主机 → 常见问题逐步说明。


一、安装 Apache

1. 更新软件源

sudo apt update

2. 安装 Apache2

sudo apt install apache2 -y

3. 验证安装

apache2 -v

浏览器访问:

http://服务器IP

看到 Apache2 Ubuntu Default Page 说明安装成功。


二、Apache 基本目录结构

目录 说明
/var/www/html 默认网站根目录
/etc/apache2 配置文件目录
/etc/apache2/sites-available 虚拟主机配置(可用)
/etc/apache2/sites-enabled 虚拟主机配置(已启用)
/etc/apache2/mods-available 可用模块
/etc/apache2/mods-enabled 已启用模块
/var/log/apache2 日志目录

三、基本配置

1. 修改默认网站目录(可选)

编辑默认虚拟主机:

sudo nano /etc/apache2/sites-available/000-default.conf

修改:

DocumentRoot /var/www/html

2. 重启 Apache

sudo systemctl restart apache2

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

示例:配置一个网站 example.com

1. 创建网站目录

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com

2. 创建测试页面

echo "<h1>Example.com</h1>" > /var/www/example.com/index.html

3. 创建虚拟主机配置

sudo nano /etc/apache2/sites-available/example.com.conf

内容示例:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com

    <Directory /var/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>

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

4. 启用虚拟主机

sudo a2ensite example.com.conf
sudo systemctl reload apache2

5. 禁用默认站点(可选)

sudo a2dissite 000-default.conf
sudo systemctl reload apache2

五、启用常用模块

1. 开启 rewrite(URL 重写)

sudo a2enmod rewrite
sudo systemctl restart apache2

2. 开启 SSL(HTTPS)

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2

六、防火墙配置(UFW)

如果启用了 UFW:

sudo ufw allow 'Apache Full'

查看状态:

sudo ufw status

七、配置 HTTPS(Let’s Encrypt)

1. 安装 Certbot

sudo apt install certbot python3-certbot-apache -y

2. 申请证书

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

3. 自动续期

sudo certbot renew --dry-run

八、常见问题排查

1. Apache 无法启动

sudo apachectl configtest

2. 403 Forbidden

  • 检查目录权限
  • 检查 Require all granted

3. 端口被占用

sudo netstat -tlnp | grep 80

九、常用命令速查

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl status apache2

如果你需要:

  • LAMP(Apache + MySQL + PHP)配置
  • 多站点配置
  • Apache 性能优化
  • 反向代理 / 负载均衡

可以告诉我你的具体使用场景,我可以给你更精确的配置方案。

0