[PHP] 處理二進制資料 – Binary Data Pack/Unpack

Intro PHP支援二進制的資料處理,應用上在跟低階語言(如C語言)做資料介接就幫上許多。 PHP函式 pack() 封裝 Data to BIN unpack 分析 BIN to Data $bin = pack(“Sa3”, 50, ‘abc’); file_put_contents(‘data.bin’, $bin); $bin = file_get_contents(‘data.bin’); $data = unpack(“SShort/a3Char3”, $bin); print_r($data); Array ( [Short] => 50 [Char[3]] => abc )

[JS][jQuery] Events Hooking – 元件觸發事件開發

Intro JS基本的Callback這篇就不多談,現在主要是開發JS元件的Events Pattern。 例如Bootstrap Modal Events Pattern 以jQuery實作,自定義Event Namespace 利用jQuery Event及jQuery Trigger <a>Ancher</a> <!– jQuery required –> <script> $(“a”).click(function(){ alert(‘Click’); var e = $.Event(“namespace”); $(this).trigger(e); // Or directly `$(this).trigger(“namespace”);` }); $(“body”).on(“namespace”, function(){ alert(‘A’) }) $(“body”).on(“namespace”, function(){ alert(‘B’) }) $(“a”).on(“namespace”, function(){ […]

[Google][API] Error: 這個應用程式未經驗證 (This app isn’t verified)

Intro Google OAuth 應用授權大概在2017-07-18後會遇到以下問題: 這個應用程式未經驗證 這個應用程式尚未經過 Google 驗證。除非你認識且信任開發人員,否則請勿繼續執行。 隱藏進階設定 Google 尚未審查這個應用程式,因此無法確認其是否通過驗證。未經驗證的應用程式可能會對你的個人資料造成危害。 瞭解詳情 前往「yidas.com」(不安全) 解決方法 Google – OAuth Client Verification

[PHP] PHP-FPM Pool Socket (Multi-Sock-User) 設定指南

Intro 情境:想要某個Site的PHP-FPM改變執行使用者(例如Webhook trigger特殊程式) 設定方式 概念上,一個pool sock擁有一組設定,包含執行使用者(user)或群組(group),所以可以利用開立多個pool sock來提供給Web server多種PHP-FPM Conf達到應用。 1. 開立新的pool PHP-FPM Pool設定複製原始www.conf出新的自定義設定檔,將listen sock自定義改掉,讓var/run/php下自動產生新定義的socket,例如/etc/php/7.0/fpm/pool.d/deployer.conf: ; pool name (‘www’ here) [deployer] user = deployer group = www-data listen = /run/php/php7.0-fpm_deployer.sock 設定完後restart PHP-FPM即會自動生成對應的新Sock 2. 提供新的Socket給Web server site 以Nginx為例,換上新的Socket: location ~ \.php$ { […]

[Linux] LVM (Logical Volume Manager) 教學指南

Intro Logical Volume Manager (Linux) 雖然個人不喜用LVM來管理硬碟,但遇上使用LVM的機器還是得適應。 PV基本操作 搜尋PV硬碟 pvscan $ pvscan 顯示PV狀態 pvdisplay $ pvdisplay 建立PV pvcreate $ pvcreate /dev/sdb $ pvcreate /dev/sdb{1,2,3} 移除PV pvremove $ pvremove /dev/sdb VG基本操作 vgscan 搜尋VG $ vgscan vgdisplay 顯示系統VG狀態 $ vgdisplay vgcreate 建立VG $ […]

[AB] ApacheBench – 網站壓力測試工具

Intro ApacheBench壓力測試工具,Windows安裝XAMPP即Apache就有內建。 執行檔案 以Windows XAMPP為例,找到安裝目錄下Apache執行檔目錄: D:\xampp\apache\bin\ab.exe HTTPS傳輸 Windows XAMPP使用ab.exe測試HTTPS的網站會有錯誤: SSL not compiled in; no https support HTTPS協定是使用abs.exe執行: D:\xampp\apache\bin\abs.exe Linux的apache2-utils即等於abs.exe 使用方法 同時 10 個連線,連續訪問 100 次 (每個 Request 執行完後自動重連) ab -n 100 -c 10 http://www.example.com/ 同時 10 個連線,連續訪問 100 次,並且使用 Keep-Alive […]

[VM] Proxmox (PVE) 指南

Intro Proxmox Concepts USB安裝 Storage – 硬碟&OS ISO Datacenter > Storage可以指定內容包括Disk image、ISO image複合選擇,如要新增Storage則可以自行在系統分割mount出一個資料夾給PVE新增: Datacenter > Storage > Add > Directory 系統mount範例:mkfs.ext4 /dev/sdb /mnt/hdd; mount /dev/sdb /mnt/hdd; (建議設fstab) ID: 自行取名,如hdd Directory: 對應系統資料夾位置,如/mnt/hdd Content: 套用的內容,如用於存放ISO或者Disk image 新增上傳OS ISO Image 當建立好包含ISO image內容的Stroage,即可直接在列表選擇該Stroage > […]

[GCP] Load balancing – 負載平衡指南

Intro 目前測試,功能強大但種類選型繁多。 (本篇資訊於2018-12-07測試) 選型 HTTP(S) Load Balancing 看來是目前總體最適合做Web App LB Front-end可同時設定HTTP+HTTPS對同一個Global IP Back-end依照Instance group的Name port mapping做連線(LB Back-end設定中的port number為相同連動設定) Healthy Check支援https也向下相容http,為另外Serivce連線過來檢測,與Back-end設定無關 支援多組Back-end,必須設定Rules去區分對應Back-end群 L7 Session affinity是設定在單一Back-end上 TCP Load Balancing Multiple regions (or not sure yet) 過TCP Proxy or SSL Proxy 雷,FrontEnd不支援80port,無法做HTTP to […]

[Linux] SSH Config 連線設定檔指南

Intro SSH的個人連線設定檔使用~/.ssh/config管理較為方便且是針對Host個別套用(如Git)。 設定 檔案:~/.ssh/config 使用:針對設定的Host別名快速連線:ssh host-alias-name 設定檔規範 Host alias-name HostName server.name Port port-number IdentitiesOnly yes IdentityFile ~/.ssh/private_ssh_file User username-on-remote-machine 設定範例 Host server.com Hostname 36.200.190.110 User nick_tsai Host gitlab Hostname gitlab.com IdentitiesOnly yes IdentityFile ~/pem/my-gitlab.pem Port 22 User nick Host alias1 […]