在Cent OS雲服務器上部署基於TP5後端代碼踩坑記錄_艾孜爾江撰

  1. 推薦使用鏡像安裝Cent OS系統,或者在純淨安裝完成之後在完成Apache+MySQL+PHP的時候不要每個單獨安裝,因爲這樣會出一些三者之間版本不配的問題,網上各種說法都有,查起來也非常困難,版本匹配之後又會遇到什麼問題也無從知曉,反正這種單獨安裝的方式不適合一般的開發需求,商業開發也基本上都是使用現成的鏡像直接安裝環境,作爲普通開發者,也不要太在這種沒有技術含金量的事情上面畫太多的時間。
    如果不採用直接安裝系統鏡像的方式,還是想純淨安裝,那我比較推薦的方式是,在安裝好純淨的Cent OS系統之後,下一個XAMPP-Installer,下個匹配於自己在開發過程中使用過的版本。然後安裝這個XAMPP。需要注意的是,裝還這個之後實際上會顯示MariaDB+Apache+PHP,這個不用見怪,因爲度娘說MariaDB實際上就是MySQL的超集,我們在該情形下就拿他當MySQL對待就好。

  2. 在安裝好XAMPP之後,需要檢查一下自己的TP5服務端代碼中的config文件,將裏面的數據庫相關的IP地址改成公網的IP地址,不然會報錯說沒辦法通過root進入到處在127.0.0.1這個位置上的數據庫,網上搜,一大堆解決方式,但是鮮有適合於TP5開發的,因爲產生這類問題的原因太多太多,而網上的各種解決方式基本上都是針對於不同的情況而論,實施之後雖然沒有什麼大問題,並且感覺上像是解決了,但實際上沒有找到問題的根源——網上的解決方式具有特普遍性而不具有特殊性,我們在部署TP5服務器的時候所具有的特殊性是“忘了將config配置文件中的數據庫所在IP地址改成公網服務器的IP地址”。

  3. 在設置好之後需要將數據庫sql文件引入到服務器上的數據庫中,這裏有兩種方式,一個是通過終端頁面進去之後用命令行導入數據庫文件,對於新手不太推薦;比較推薦的是使用Navicat數據庫管理工具遠程連接數據庫並在連接成功後將數據庫文件導入進去進行管理,這個方式的詳細做法可以上嗶哩嗶哩去看我的視頻。但是需要提醒的是,還是因爲我們的這個問題具有特殊性——在TP5代碼的數據庫config文件夾中設置了數據庫登錄的用戶名密碼,所以遠程連接數據庫的時候總會遇到各種拒絕,這時候我們就得看一下有沒有輸入和配置文件中一致的用戶名密碼,建議將用戶名密碼改成和XAMPP數據庫用戶名密碼一致的,比如說我先前設置的XAMPP工具中的MySQL的密碼是空,那麼我在這裏也吧TP5代碼中的數據庫密碼設爲空,這樣做就是爲了能夠順利連接上遠程數據庫並在遠程數據庫上新建數據庫後載入本地數據庫文件進行運行。

  4. 在這些工作都完成之後再去測試接口,會發現跟寫入文件操作的接口沒法用了,如果前期在這裏處理的太好了,比如說我的這個情形,就是在前期就已經吧各種異常處理做好了,這時候因爲無法寫入文件,除了異常只能看到前期我自己寫的拋出異常的語句,鑑於生產環境下很難進行調試,而發現又沒有生成關於這個異常的log日誌,這時候就很令人不耐煩,找來找去發現自己之前在拋出異常的這個語句上面進行了關於開發環境於生產環境的判斷,而部署的時候很自主地將開發模式給關了,換成了生產模式,於是就一直拋出自己寫地異常處理響應語句,這時候就需要把生產模式再關掉去看看TP5框架自己返回的異常是什麼異常。直到這時,才發現,原來是mkdir()函數沒能再Linux系統上正常運行,網上一搜,發現這種坑不會見於Windows開發中,而知見於對運行時權限管理比較注重的Linux操作系統上,也正是因爲沒能夠執行mkdir()函數,我纔在生產模式下沒有看到任何日誌記錄,於是我遍將TP5中記錄日誌的runtime文件夾的權限設置成了777,恨不得把裏面的兩個cache文件夾和log文件夾的權限也都設置成777!,這樣之後,我寫的關於文件操作的函數就能夠順利被調用起來了,大功告成。


<p align="right">2020年5月1日</p>       
<p align="right">艾孜爾江撰稿</p>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章