2026最新Ubuntu LAMP环境Apache虚拟主机配置完整指南(2026)

一、核心概念概述

虚拟主机(Virtual Host)是指在一台服务器上运行多个网站,每个网站拥有独立的域名和配置。在Ubuntu LAMP(Linux+Apache+MySQL+PHP)环境中,Apache支持两种虚拟主机配置方式:
基于域名的虚拟主机(推荐,使用不同域名)
基于IP的虚拟主机(使用不同IP地址)

二、环境准备

2.1 安装LAMP环境

确保已安装Ubuntu 22.04并配置LAMP:

sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql

2.2 配置防火墙

开放HTTP(80)和HTTPS(443)端口:

sudo ufw allow 'Apache Full'
sudo ufw reload

三、虚拟主机配置步骤

3.1 创建网站根目录

为每个网站创建独立根目录:

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

3.2 设置权限

确保Apache用户(www-data)拥有读写权限:

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

3.3 创建测试文件

在每个根目录下创建index.html:

sudo nano /var/www/example.com/public_html/index.html

内容:

<!DOCTYPE html>
<html>
<head>
    <title>Example.com</title>
</head>
<body>
    <h1>Welcome to Example.com!</h1>
    <p>This is a test page for Example.com.</p>
</body>
</html>

3.4 配置Apache虚拟主机

3.4.1 创建虚拟主机配置文件

为每个网站创建配置文件:

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

内容:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
    CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>

3.4.2 启用虚拟主机

启用配置文件并重启Apache:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl restart apache2

3.4.3 测试配置

检查Apache配置是否正确:

sudo apache2ctl configtest

四、域名解析与绑定

4.1 域名解析

在域名注册商后台添加A记录:
– 域名:example.com
– 记录类型:A
– 记录值:服务器公网IP(如192.168.1.100)
– TTL:300(5分钟)

4.2 本地测试(可选)

修改本地hosts文件测试:

sudo nano /etc/hosts

添加:

192.168.1.100 example.com www.example.com
192.168.1.100 test.com www.test.com

五、Apache SSL配置(HTTPS)

5.1 安装Certbot

sudo apt install certbot python3-certbot-apache

5.2 获取SSL证书

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

按照提示完成配置,Certbot会自动修改Apache配置并重启服务。

5.3 测试HTTPS

访问https://example.com,确认证书有效。

六、测试与优化

6.1 测试虚拟主机

  • 访问http://example.com,查看测试页面
  • 访问http://test.com,查看测试页面
  • 访问https://example.com,查看HTTPS页面

6.2 优化建议

  • 启用Apache缓存,提升性能
  • 配置Gzip压缩,减少传输大小
  • 定期备份虚拟主机配置和网站数据

七、常见问题解答

Q1: 虚拟主机不生效?

A: 检查:
– Apache配置是否正确(apache2ctl configtest)
– 虚拟主机是否启用(a2ensite)
– 域名解析是否正确
– 防火墙是否开放80/443端口

Q2: 权限问题?

A: 确保网站根目录权限为755,文件权限为644,所有者为www-data。

Q3: SSL证书续期?

A: Certbot默认自动续期,可测试续期:

sudo certbot renew --dry-run

Q4: 如何禁用虚拟主机?

A: 使用a2dissite命令:

sudo a2dissite example.com.conf
sudo systemctl restart apache2

八、总结

Ubuntu LAMP环境下配置Apache虚拟主机的关键步骤包括:创建网站根目录、设置权限、配置虚拟主机、域名解析、SSL配置。通过合理配置虚拟主机,可以在一台服务器上运行多个网站,提升服务器利用率。

注:本文基于Ubuntu 22.04、Apache 2.4、Certbot 1.21版本编写,具体实现可根据实际环境调整。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注