一、什么是虚拟主机?为什么要这么做?
如果你有一台服务器,就像你有一套大房子。
虚拟主机就像把这套房子隔成多个 “房间”,每个房间可以住不同的 “网站”(比如www.abc.com和www.def.com)。
这样只用一台服务器,就能同时运行多个网站,省钱又方便!
虚拟主机就像把这套房子隔成多个 “房间”,每个房间可以住不同的 “网站”(比如www.abc.com和www.def.com)。
这样只用一台服务器,就能同时运行多个网站,省钱又方便!
二、准备工作:先确认你的服务器环境
-
安装 Apache
- 如果你用的是 Linux(常见的如 CentOS、Ubuntu),打开终端输入:
- CentOS:
sudo yum install httpd
- Ubuntu:
sudo apt-get install apache2
- CentOS:
- 安装后,用
sudo systemctl start httpd
(CentOS)或sudo systemctl start apache2
(Ubuntu)启动 Apache。
- 如果你用的是 Linux(常见的如 CentOS、Ubuntu),打开终端输入:
-
找到配置文件
- Apache 的主配置文件一般在:
- CentOS:
/etc/httpd/conf/httpd.conf
- Ubuntu:
/etc/apache2/apache2.conf
- CentOS:
- Apache 的主配置文件一般在:
三、三种虚拟主机类型,新手先学最常用的两种
第一种:多个域名共用一个 IP(最常用!)
比如你有域名
www.abc.com
和 www.def.com
,但服务器只有一个 IP(比如 192.168.1.100),就用这种方法。操作步骤:
-
在服务器里给每个网站建一个文件夹
- 比如:
plaintext
sudo mkdir /var/www/abc.com sudo mkdir /var/www/def.com
- 分别在这两个文件夹里放网站文件(比如放一个 index.html 测试)。
- 比如:
-
修改 Apache 配置文件
- 打开主配置文件,在最后加上以下内容(新手直接复制,改域名和路径):
plaintext
<VirtualHost *:80> ServerName www.abc.com DocumentRoot /var/www/abc.com ErrorLog /var/log/httpd/abc_error.log CustomLog /var/log/httpd/abc_access.log combined </VirtualHost> <VirtualHost *:80> ServerName www.def.com DocumentRoot /var/www/def.com ErrorLog /var/log/httpd/def_error.log CustomLog /var/log/httpd/def_access.log combined </VirtualHost>
- 关键参数解释:
ServerName
:你的域名(比如www.abc.com)。DocumentRoot
:这个网站文件存放的位置。ErrorLog
和CustomLog
:记录这个网站的错误和访问日志(新手暂时不用管,按格式写就行)。
- 打开主配置文件,在最后加上以下内容(新手直接复制,改域名和路径):
-
让域名指向服务器 IP
- 去你的域名服务商(比如阿里云域名控制台),给这两个域名添加一个 “A 记录”,指向服务器的 IP 地址(比如 192.168.1.100)。
-
重启 Apache
- CentOS:
sudo systemctl restart httpd
- Ubuntu:
sudo systemctl restart apache2
- CentOS:
-
测试
- 打开浏览器,输入域名,看看是不是显示对应的网站文件内容!
第二种:不同端口区分网站(适合测试环境)
比如用
192.168.1.100:8080
访问第一个网站,192.168.1.100:8081
访问第二个网站(端口号可以改)。操作步骤(比第一种简单):
- 建文件夹(同上)
plaintext
sudo mkdir /var/www/site1 sudo mkdir /var/www/site2
- 改配置文件
plaintext
<VirtualHost *:8080> DocumentRoot /var/www/site1 </VirtualHost> <VirtualHost *:8081> DocumentRoot /var/www/site2 </VirtualHost>
- 重启 Apache(同上)
- 浏览器输入 IP + 端口测试:比如
http://192.168.1.100:8080
第三种:不同 IP 地址(新手暂时用不到,先跳过)
如果你的服务器有多个 IP(比如 192.168.1.100 和 192.168.1.101),配置类似第一种,把
ServerName
换成 IP 就行,新手暂时不用学~四、新手常见问题排查(一定会遇到!)
-
浏览器显示 “无法访问此网站”
- 可能原因 1:Apache 没启动 → 用
sudo systemctl status httpd
检查状态,没启动就用start
命令启动。 - 可能原因 2:端口被占用 → 80 端口常用,如果你用了其他软件(比如 Nginx),可以改成 8080 等端口(改配置文件里的端口号)。
- 可能原因 3:域名没生效 → 域名解析需要时间(通常 10 分钟到 1 小时),先用 IP + 端口测试(比如
http://192.168.1.100:8080
)。
- 可能原因 1:Apache 没启动 → 用
-
修改配置文件后不生效
- 一定记得重启 Apache!一定记得重启!重要的事情说三遍!
-
文件权限问题
- 如果你放网站文件的文件夹不让 Apache 访问,会报错 403(禁止访问)。
- 解决方法:给文件夹权限 →
sudo chmod -R 755 /var/www/你的网站文件夹
五、总结:新手必记的 3 个重点
- 虚拟主机就是 “服务器里隔房间”,每个 “房间” 放不同网站,通过域名、IP 或端口区分。
- 最常用的是 “多个域名共用一个 IP”,按步骤改配置文件、建文件夹、绑域名就行。
- 遇到问题先检查三点:Apache 是否启动?配置是否正确?有没有重启?
跟着步骤操作,新手也能轻松在一台服务器上部署多个网站!