win下phpStudy配置多个项目(Nginx)
问题描述:
根目录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主配置文件引入它就行了.
- 引入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里的配置就行了.