多站点配置
实现一台电脑上,可架设和运行多个站点(虚拟站点),并且可以使用不同的域名或主机名进行访问,譬如:
- http://www.x.com 用于个人站点的首页,将来自行编写相关网页及代码
- http://blog.x.com 用于将来安装wordpress,作为个人博客站点
环境准备
已安装好运行环境,如phpstudy
目录准备
- 创建两个目录,每一个目录代表一个虚拟站点,如:
c:\server\blog
和c:\server\www
虚拟站点: 是早期使用的一种虚拟技术,就是在一台物理机器上运行多个站点,但从浏览器的角度,却好象是多个运行在独立物理机器上的独立站点。 当然,在今天,连物理机器都可以虚拟了,譬如阿里云的VPS之类
配置主机名
修改C:\windows\system32\drivers\etc\HOSTS
文件,添加两条本地域名解析记录:
127.0.0.1 www.x.com
127.0.0.1 blog.x.com
生产环境下,域名的解析是需要通过域名服务器(DNS)来实现的,这里使用hosts文件来模拟,仅为演示的用途。 注意:某些安装杀毒软件的电脑会提示不允许更改hosts文件,请给予同意即可 参考: https://baike.baidu.com/item/localhost/2608730
配置apache
编辑c:\server\phpStudy\apache\conf\vhosts.conf
, 为apache增加两个虚拟主机的配置,配置的内容包括:网站根目录documentRoot、主机域名serverName、目录的权限等,如下
## 站点1的配置;每架设一个站点,则增加一组<VirtualHost></VirtualHost>配置
## 此处默认为80端口,如端口被占用,请相应更改
<VirtualHost *:80>
## ServerName 设置访问该网站的域名,即浏览器中输入的网址的域名部分
## DocumentRoot 设置网站的根目录,网站所包含的各文件应放置于该目录下
ServerName www.x.com
DocumentRoot "c:/server/www"
## 设置网站根目录的访问权限,如未设置,会出现access forbition的错误提示
<Directory "c:/server/www">
Options Indexes FollowSymLinks ExecCGI
Require all granted
AllowOverride None
Order deny,allow
Allow from all
</Directory>
## 定制日志文件的名称
ErrorLog "logs/www-error.log"
CustomLog "logs/www-access.log" common
</VirtualHost>
## 站点2的配置,除根目录不同外,基本同上
<VirtualHost *:80>
ServerName blog.x.com
DocumentRoot "c:/server/blog"
<Directory "c:/server/blog">
Options Indexes FollowSymLinks ExecCGI
Require all granted
AllowOverride None
Order deny,allow
Allow from all
</Directory>
## 定制日志文件的名称
ErrorLog "logs/blog-error.log"
CustomLog "logs/blog-access.log" common
</VirtualHost>
一般而言,虚拟站点的配置文件应当是
c:\server\phpStudy\apache\conf\extra\httpd-vhosts.conf
,但在phpStudy下环境也会使用c:\server\phpStudy\apache\conf\vhosts.conf
文件,两种方式均可。 你可自行查看httpd.conf文件中是否有相关的include
语句
检验结果
- 重启apache
- 在各站点的根目录下添加具有不同内容的 index.html文件
- 使用浏览器用域名分别访问相应站点,查看是否成功
注:更改任何配置后,均请务必重启apache