phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)

phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)

一、总结

一句话总结:把原生php的网站直接放到thinkphp5的public目录下可以解决以stem.aaaa.hk\**方式访问原生网站会被当成thinkphp子模块的问题

最后的解决方法(别人想出来的):
把原生php的网站直接放到thinkphp5的public目录下
以stem.aaaa.hk访问thinkphp5的那个网站
以stem.aaaa.hk\** 来访问即可

1、thinkphp5开发的网站apache发布的时候能放到子目录下么?

不能

所以不能配置stem.aaaa.hk\mo来访问thinkphp5的那个网站

2、如何让web服务器启动监听0.0.0.0(而不是127.0.0.1)?

apache

下面是网上找到的问题及回答,所以才有了上面的问题:

我有一个linux服务器,在linux服务器上运行了程序,在服务器上通过浏览器访问localhost:8080/login.html能够访问我运行的程序,我现在向对外网开放8080端口。达到在外网访问程序的目的,既在外网通过浏览器登录:ip(服务器对外ip):8080/login.html访问我的程序。该怎么实现呢?

首先你的服务器是否有外网可直达的IP,如果有的话那就简单,配置一下你的web服务器启动监听0.0.0.0(而不是127.0.01)就可以。具体要查询一下你用的是什么web server。
如果IP不能直达,那就要找一台有外网IP的服务器来做反向代理了,可以使用nginx等来支持

web服务器,我用的明显就是apache

3、netstat查看服务器端口时TCP里面有175.***.***.132:81,但是后面的状态是FIN_WAIT_2,80后面是SYN_RECEIVED?

TCP/IP协议
主动关闭 SERVER FIN_WAIT2 状态

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

在HTTP应用中,存在一个问题,SERVER由于某种原因关闭连接,如KEEPALIVE的超时,这样,作为主动关闭的SERVER一方就会进入 FIN_WAIT2状态,但TCP/IP协议栈有个问题,FIN_WAIT2状态是没有超时的(不象TIME_WAIT状态),所以如果CLIENT不关闭,这个FIN_WAIT_2状态将保持到系统重新启动,越来越多的FIN_WAIT_2状态会致使内核crash。

4、直接修改apache配置的方式不好用的时候,可以考虑直接用phpstudy的站点配置功能?

phpstudy 站点配置
vhosts.conf

直接用phpstudy的站点配置功能和手动修改时一样的

直接用phpstudy的站点配置功能生成的文件为 vhosts.conf

这样不容易出错

使用的时候记得在http.conf中开放vhosts.conf即可

phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)

二、phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)

1、问题描述

一个域名(例如stem.aaaa.hk,域名只是举例的,不是真的)上面要配置两个网站,一个是thinkphp5,一个是原生php

直接域名stem.aaaa.hk可以访问thinkphp5的那个网站

原生php的网站如果配置成stem.aaaa.hk\pf来访问就会出错,出错提示是thinkphp5的网站里面没有pf模块,出错原因是thinkphp5那个网站把stem.aaaa.hk\pf中的\pf解析成了pf模块了

既然是把\解析成了模块,换个符号试试呢

另一种解决思路:

配置stem.aaaa.hk来访问thinkphp5的那个网站

配置stem.aaaa.hk:81来访问原生php的网站

这样做本机可以正常访问,但是外面没办法,在防火墙处开启了81端口还是不行,估计可能是路由转发的问题

另一种思路:

配置stem.aaaa.hk\mo来访问thinkphp5的那个网站

配置stem.aaaa.hk\pf来访问原生php的网站

thinkphp5那个网站无法访问,原生php那个网站可以访问
 

2、解决方法

最后的解决方法(别人想出来的):
把原生php的网站直接放到thinkphp5的public目录下
以stem.aaaa.hk访问thinkphp5的那个网站
以stem.aaaa.hk\** 来访问即可
 
这样简单方便,但是缺点就是把两个网站关联起来的
 
我想的是用不同的端口来区分不同的网站,比如80,81,
比如用stem.aaaa.hk 来访问thinkphp5的那个网站
比如用stem.aaaa.hk:81 来访问原生php的网站
但是在服务器上配置好端口81后本机可以访问,但是外网却访问不了,猜测是路由限制了端口(在防火墙里面开放了这个端口,在apache里面也监听了这个端口),其实并没找到实际原因
 
 
上一篇:HTML--控制小人*移动


下一篇:string.Format之你不知道的事