多站点配置

实现一台电脑上,可架设和运行多个站点(虚拟站点),并且可以使用不同的域名或主机名进行访问,譬如:

环境准备

已安装好运行环境,如phpstudy

目录准备

  • 创建两个目录,每一个目录代表一个虚拟站点,如: c:\server\blogc:\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

host工具

results matching ""

    No results matching ""