[Apache] CPanel & .htaccess & php.ini 應用指南

Intro CPanel應用為主 .htaccess 每個目錄皆能Override [Apache][.htaccess] 停用PHP – Disable PHP php.ini 預設建立在當前目錄下即會對當前目錄生效。 套用至所有子目錄 php.ini file recursive 隨一建置的.htaccess(一般文獻會建議建在/public_html),指定suPHP設定路徑: suPHP_ConfigPath /home/username/public_html 旗下子目錄就會以這個指定目錄下的php.ini為主,當然還是能再被Override… open_basedir CPanel Web執行者為個別用戶 檔案管理員背景可sudo使MOD可改為000

[PHP] PHP底層效能原理測試 – PHP Core Performance Test

Intro PHP底層效能原理測試 指標&記憶體 測試版本:PHP 5 $data2 = $data; $data3 = $data; 以第一行為例:此時的宣告記憶體配置等同於$data2 = &$data,即記憶體不會因$data2宣告而多複製產生,只有在相依變數產生異動(Assign Write)時才會有相應機制: 當$data先產生異動 異動事件如: $data[0] = ‘modified’; $value = &$data[0]; 異動前記憶體共用同一份$data內容,以下為流程: 因為$data有相依變數,PHP會將異動前$data的記憶體內容複製或保留至暫存區(Temp),自己使用新的內容進行異動。 此時記憶體有兩塊內容:新的$data與舊的$data內容 原本相依$data的變數($data2與$data3)轉擁有或轉指向這個暫存區(Temp)。 若$data2又發生異動,則會同第一步自己使用新的內容進行異動,此時$data3為擁有暫存區(Temp)因為沒有其他相依變數。 此時記憶體有三塊內容:$data,$data2,$data3內容 若$data3又發生異動,因為沒有相依變數,等於擁有內容則直接異動。 以上在記憶體形成3塊由原生$data產出的內容,最後各自獨立。 Foreach Pointer 個人不偏好在foreach內使用Pointer,本身Loop內也沒有必要使用Pointer優化。 弊端方面就是foreach的特性,還會產生母變數記憶體複製的問題。 弊端特性之一:PHP Pass by reference in […]

[Mail] DNS 設定 SPF 記錄(TXT) 設定範例指南

Intro DNS SPF紀錄用來反查認證寄送IP。 Sender Policy Framework – SPF Record Syntax 規則 使用DNS的TXT紀錄標記: “v=spf1 +a +mx +ip4:139.162.80.137 -all” 其中的 v=spf1 是表示 spf 所使用的版本 符號: +:Pass 代表允許,為預設的屬性 -:Fail 代表拒絕,-all 表示除了有條列出來的主機允許其他都拒絕,標式為 Hard Fail 不會接受該信件 ~:SoftFail 代表拒絕,~all 表示除了有條列出來的主機允許其他都拒絕,標式為 Soft Fail 還是接收了該信件 ?:Neutral 代表可能還有其他網域,收件主機還是會接收該信件。 設定範例 […]

[Yii2] Widget 建構與目錄架構 – Widget Pattern

Intro Yii2 Application Structure: Widgets Directory Structure 通用(共用)Widget架構 your_app (e.g. frontend)/ – widgets/ – assets/ – js/ – hedaer.js – css/ – header.css – views/ – hedaer.php – HeaderWidget.php – HeaderWidgetAsset.php 通用架構上,assets即可以考慮另外移至web外層以省搬移成本。 獨立Widget架構 your_app (e.g. frontend)/ – widgets/ – header/ […]

[Yii2] Why Yii2 Framwork – Yii2 框架選型指南

Introduction 為什麼選擇Yii2作為PHP Framework。 特色 Application Components Components事先定義,透過Magic Method用到才new出來,效能與結構兼具考量。 概念如同CodeIgniter 3的Library(不做Alias),在單一Request cycle中為一次性啟動物件。 Asset Manager Assets支援物件導向管理,並且支援application內動態生成(適合用在Composer assets)。特色包含繼承、載入順序、重複載入防止。 保留Controller作為預設路由 如同CodeIgniter,預設使用Controller資料夾結構映射Route,但也支援自訂Route Map。 Yii2 Url Manager的Rule還可以支援URL生成比對,對應的Route Value在Url::to()宣告是可以自動生成Route Key。例如,’test’ => ‘site/action’的rule在URL::to設定site/action實際會生成test。 Pure Template Engine PHP本身就是個樣板引擎! Yii2使用原生PHP達到框架View Layout,相對於Laravel額外多一層打造的Blade引擎或CodeIgniter沒架構的純粹View引入法,Yii2扮演著中庸最適解決方案。 原理是使用規範的嵌入點打造每個Layout,藉由Controller決定選用的Layout套入Content View。 …補齊中…

[Yii2] Yii 2 Advanced Template 開發流程指南

Intro Yii 2 Advanced Project Template 適合前後站台Spec開發模板。 Dev – 開發人員 建置與更新其實與Composer流程相同: ./init –env=Development –overwrite=All composer install Prod/Stage – 佈署 Stage的建置與更新也相同,唯獨佈署時Stage可以包固定流程以確保每次更新: ./init –env=Production –overwrite=All composer install 設定檔 設定檔位於/environments內,更新後對應的環境得再跑一次init。

[Network] Wireshark 指令&過濾速查指南

Intro Wireshark(前稱Ethereal)是一個免費開源的網路封包分析軟體。網路封包分析軟體的功能是截取網路封包,並盡可能顯示出最為詳細的網路封包資料。 Download Wireshark 建議使用安裝版,像Winpcap這種Lib需要連帶安裝 設定 Name Resolution Edit > Preferences > Name Resolution > Resolve network(IP) addresses 過濾 Filter Bar左邊即有Display Filters可以快速使用。

[lftp] LFTP指令指南|mirror鏡像 – lftp Command Guide

Intro lftp在這年頭還是有機會用到,像被綁架的主機環境僅提供FTP Access。 至於為何使用lftp? 使用過ftp就知道…連folder控制都成問題。 文件:LFTP – the manual page lftp連線 lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site] For example: lftp www.yourdomain.com -u username,password 也可以先連線至site後再使用login: login <user> [<pass>] 基本操作(本地端與遠端) – local & remote directory ls ls pwd, lpwd […]