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的網站
