PHP经验分享PHP程序猿的进阶屋

win下phpStudy配置多个项目(Nginx)

2019-08-05  本文已影响2人  江河湖海琴瑟琵琶

问题描述:
根目录www下有两个项目文件test1,test2.
|-www
|-----test1
|-----test2
如果没有域名,开发时只能通过www/test1和www/test2来访问两个项目,很不方便,而且会出现很多问题.
现在想要给他们配置两个域名,达到浏览器输入域名直接访问的效果:
|-www
|-----test1 www.test1.com
|-----test2 www.test2.com

实现原理:
假设我们要访问百度,在浏览器输入域名www.baidu.com,
浏览器在解析域名前,会先查询本机的hosts文件(存放的是域名和IP的对应关系),查找是否有www.baidu.com的IP地址,
如果能找到记录,则直接使用这个IP.
如果找不到记录,就去请求DNS服务器,把域名解析成百度的IP地址,再去请求数据.

那么可以修改这个hosts文件,让域名www.testX.com 指向我们本机.

操作步骤:
1.找到windows下的hosts文件,(win10系统,C:\Windows\System32\drivers\etc)
,用记事本打开,在最后加上两行

127.0.0.1       www.test1.com
127.0.0.1       www.test2.com

保存,退出.(可能遇到无法保存的问题,去百度下)

此时,在浏览器输入www.test1.com或者www.test2.com就能访问到我们本机的服务器了.

但是,服务器只是接收到了请求,还不知道如何处理,接下来的要做的是,告诉Nginx服务器,
请求URL为www.test1.com时进入www/test1 项目.
请求URL为www.test2.com时进入www/test2 项目.

2.配置服务器上的vhosts.conf文件

PHPStudy界面.png

依次点击:其他选项菜单 > 打开配置文件 > vhosts-ini

在vhosts.conf文件写入以下内容

#test1
server {
        listen       80;
        server_name  www.test1.com; ###################域名
    
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        root    "D:/phpStudy/PHPTutorial/WWW/test1";    ########test1项目的路径
        location / {
           index  index.html index.htm index.php l.php;
           autoindex  off;
           if (!-e $request_filename) {
               rewrite  ^/(.*)$  /index.php/$1  last;
               break;
           }

        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php(.*)$  {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

复制一份,把域名改成www.test2.com,路径配置为test2项目的路径.
到此vhosts.conf文件就配置好了.

那么如何让这个vhosts文件生效呢?
只要在Nginx主配置文件引入它就行了.

  1. 引入vhosts.conf
    依次点击:其他选项菜单 > 打开配置文件 > nginx-conf
    在nginx主配置文件末尾加入
include vhosts.conf;

(注意:要写在原有的大括号里边)
保存,退出.这样就OK了.

4.重启服务器.测试一下.
在test1目录下新建index.php文件,写入

<?php
echo 'test1';

在test2目录下新建index.php文件,写入

<?php
echo 'test2';

结果:


test1
test2

这样我们就能通过两个域名,分别访问这两个不同的项目了.如果有更多的项目,只要复制vhosts.conf里的配置就行了.

上一篇下一篇

猜你喜欢

热点阅读