phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)
一、总结
一句话总结:把原生php的网站直接放到thinkphp5的public目录下可以解决以stem.aaaa.hk\**方式访问原生网站会被当成thinkphp子模块的问题
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)
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的网站