回覆列表
-
1 # 破人閣
-
2 # 紙飛機技術拆解局
如果單單從部署角度來看,可能PHP是最簡單的一種了,基本的姿勢就一種:
Web伺服器首先當然是要有一個Web伺服器,比如像IIS、Apache、Nginx等等都是不錯的選擇。當然,不是說,執行PHP指令碼需要Web伺服器,而是說一般情況下,針對PHP的程式設計,最後多以Web的方式向外提供服務
PHP引擎光有Web伺服器當然不行,因為他不會主動的解析並執行PHP指令碼,所以,還需要有PHP引擎,並且,需要以適當的方式(不同的伺服器方式不同),告知Web伺服器,當遇到PHP指令碼時,請呼叫我來處理。
當然,考慮到不同的指令碼,有時候需要呼叫一些非預設支援的PHP類庫,那麼,這時候還需要在引擎中進行相應的配置,這方面就不展開了
相關目錄怎麼理解相關目錄?如果不考慮比如地址最佳化、負載均衡等一系列配置在Web伺服器上的規則,一個簡單的例子就能說清楚,那就是:
當我們在瀏覽器上訪問某個地址,比如:http://xxxxx/a.php時,所謂相關目錄,其實就是指xxxxx域名所對應那臺Web伺服器,實際存放a.php這個檔案的物理路徑。
所以,從根本原理上來講就這麼簡單,再加上PHP本身又是一種解釋執行的指令碼語言,所以他的基本部署就是複製。
酋長分兩個部分回答這個問題:
一、php網站執行要求二、不能正常執行的可能問題php網站執行要求網站的主要組成部分:域名、伺服器(包括系統環境、資料庫等)、原始碼。一般有些朋友會使用phpstudy在本地配置環境,省去了資料庫、環境的手動配置,所以可能有些沒有接觸過的朋友會對此不瞭解,以為將原始碼上傳到伺服器就可以正常使用了,其實不同的原始碼對伺服器是有不同的要求。
關於網站伺服器的部署酋長會在之後專門回答,這裡先不說明;下面主要回答下不能正常訪問的可能原因。
不能正常執行的可能問題1.伺服器環境不支援:例如使用的伺服器僅支援asp、asp.net等型別原始碼,那麼將php上傳到這類伺服器上顯然是不能正常使用的。
解決:伺服器增加對php支援,或者是更換伺服器。
2.資料庫問題:關於資料庫問題,可能是以下幾種原因及解決方法。
a.資料庫沒有資料:將資料庫檔案匯入到網站的資料庫裡(有些開源系統支援線上安裝時,自動匯入資料庫;自己開發的可能得手動匯入,具體根據自己的系統來操作)。
b.資料庫配置問題(比如資料庫的賬戶密碼、資料庫型別、資料庫表字首等等):核實資料庫配置檔案裡的資料庫使用者名稱、密碼、地址、表字首等是否正確,資料庫是否屬於支援的型別(比如本地使用mysql,但是在伺服器上去使用access資料庫)。
3.首頁檔案設定錯誤:比如正常是使用index.php作為首頁檔案,但是在伺服器裡設定成index.asp作為首頁檔案(這種機率比較低,一般伺服器會預設設定多個首頁檔案來避免這個問題)。
解決:檢查伺服器上的首頁檔案是否正確,如果有問題則修改成正確的。
4.偽靜態:一般不會影響,但也有可能。不過如果本地測試時候也沒有設定偽靜態,那麼基本可以忽略這個問題。
解決:根據系統設定正確的偽靜態(注意格式,比如nginx和apache的區別)。
5.域名問題:
a.域名解析需要一段生效時間,如果有些解析生效時間比較長,那麼在未生效前就會影響網站的正常開啟;這種情況就多等一會兒吧,時間能解決這個問題。
b.域名繫結是否正確;正常是按A記錄繫結伺服器ip(同時需要在伺服器上繫結域名),所以檢查域名繫結的ip、伺服器是否繫結域名、域名的繫結方式(看是A記錄、MX記錄,還是其他的)來確定解決。
注意:www開頭和沒有www開頭是不一樣的;也就是說,如果僅繫結的主機記錄是www.baidu .com的話,那麼baidu. com是不能開啟的。
c.域名是否備案:如果是使用國內伺服器,那麼域名是需要備案的。不過如果沒有備案,那麼開啟網站後會有域名未備案的提醒。
6.網站的設定問題:比如像DISCUZ,在後臺設定的首頁導航與網站域名相同,也可能會導致網站打不開,這種情況設定其他欄目為首頁就可以了(比如論壇,或者門戶)。
除此之外,可能還有其他的原因導致網站不能正常訪問,比如伺服器崩潰了,原始碼首頁域名沒有改過來(還是127.0.0.1或者locahost)等等原因。由於題主沒有說明不能正常使用的具體體現,也沒有其他的情況說明,所以沒法針對性的給出解決方法,只能參考上面的說明逐個檢查了。