2019年10月27日 星期日

PHPStorm使用Remote的Xdebug與phpunit

續前一篇,在Docker中執行PHP,選擇使用 PHPUnit 執行時,會發生錯誤


錯誤為找不到PHPUnit



PHPStorm與遠端(Remote)Docker整合

以前開發PHP時,修改後需要手動上傳到遠端伺服器上,然後再測試執行結果
使用PHPStorm之後只可以減少手動執行的步驟,PHPStorm可以自動將變更的檔案佈署到遠端伺服器上(或者是多台的伺服器群組),在透過遠端的Docker執行單元測試

使用Docker來做單元測試是可以保持環境的一致姓,因為平時開發環境可能會安裝多個版本的PHP或者調整php.ini的關係造成與實際佈署環境不一致的情況,每次執行單元測試的容器都是一次性使用的,執行完單元測試後就會自動銷毀


PHPStorm with remote Docker 架構圖

2019年10月22日 星期二

啟用Docker的Restful API功能

這篇文章適用於Docker 19.03 CE版於ubuntu19.04與CentOS7

因為Docker的Restful API並未提供認證功能
所以啟用此功能務必確認網路是封閉或測試需求
不要在正式環境下開啟此功能


2019年10月20日 星期日

PHPStorm偏好設定(Preferences)

最近開始使用PHPStorm開發,使用一段時間發現有些不適應的地方(之前用VS Code)

1.啟用滑鼠滾輪可縮放編輯區字體(鍵盤Ctrl+滑鼠滾輪)
使用VS開發時大概調130%在編輯區也有一個dropdown可以選















2.未使用項目(unused symbol)顯示顏色調整
因為使用Material darker配色所以編輯區是黑色的,而未使用項目(函數、變數)會顯示呈灰色
尤其是剛打的變數或函數參數會立即變灰色很難辨識





























3.自動完成(code completion)忽略大小寫
預設是區分大小小寫,例如有一個函數為Init()
輸入i開頭會出現但是輸入in就不會出現了

















Refense

https://www.jetbrains.com/help/phpstorm/auto-completing-code.html

使用gdb偵錯crash的程式

最近遇到升級pmacct版本之後發生子程序crash的情況
可以使用gdb配合core dump檔案偵錯
因為沒什麼C語言除錯的經驗,怕忘了所以筆記一下

1.啟用Core Dump
ulimit -c unlimited

2.執行gdb 選擇要執行的程式
輸入參數開始執行 run -f pmacct.conf
出現錯誤之後可Ctrl - C 回到gdb再輸入quit離開




3.崩潰後產生的coredump檔案(結尾為pid編號)














4.載入coredump
gdb [執行檔] [CoreDump檔案]
輸入bt































從#0可以看到產生崩潰的是memcpy這個函數
使用的地方是#1的pgsql_plugin.c:475的位置

2019年9月29日 星期日

Docker筆記

最近工作上用到Docker買了些書還跟同事參加K8s的研討會,回來後就投入把目前開發環境從windows server轉移到ubuntu+docker的模式,也踩了不少坑


2019年8月2日 星期五

Auto update script for GoDaddy DDNS on RouterOS

Follow the steps below to get the API KEY

https://www.instructables.com/id/Quick-and-Dirty-Dynamic-DNS-Using-GoDaddy/