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)

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里面也監聽了這個端口),其實並沒找到實際原因
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM