美文网首页PHP经验分享PHP程序猿的进阶屋
win下phpStudy配置多个项目(Nginx)

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

作者: 江河湖海琴瑟琵琶 | 来源:发表于2019-08-05 10:30 被阅读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里的配置就行了.

    相关文章

      网友评论

        本文标题:win下phpStudy配置多个项目(Nginx)

        本文链接:https://www.haomeiwen.com/subject/qmhpdctx.html