CentOS 7 中 Apache 2.4.35 + PHP 7.2.11 + HTTP/2 升級安裝筆記 (零風險升級/平滑升級)

PHP 5 在今年(2018)年底將完全終止安全更新,PHP 7.0 甚至早了一個月,在今年12月初就終止安全更新。將 PHP 升級到較新 7.1 或 7.2 甚至 7.3 會是比較好的選擇

在 CentOS 7 中將 PHP 升級到 5.6 或 7.0 及以上版本,大多數是選擇以  yum 搭配 Remi RepositoryWebtatic Repository 這兩個 repo 來做升級,這樣的作法簡單迅速、不太影響以往的操作模式又好維護。在升級過程中不論選擇哪一個 yum repo 都是必須要原本的 php 先移除後 yum install 新的套件,這過程其實再自然不過了

但前提是,必須非常肯定目前在線上的 php 原始碼在升級後都可以正確執行

鸚鵡目前有上線在運作的程式,蠻大量都是自己寫的,真心沒這個把握!
基於網站不能停或不想中斷服務的前提,上述的方案只能直接放棄

過去鸚鵡都盡可能使用 yum 來管理維護相關套件,盡可能不要自己編譯。但之前有次遇到一個狀況,選用的 repo 終止維護計畫,甚至連網站和 mirror 站點都移除。而該 repo 會有覆蓋基本套件的情況,造成更新完全被卡住,花了一點時間才搞定

所以本次的過程會需要自行編譯一些東西,當然在許可的情況盡量使用 CentOS 的基本套件,編譯及安裝時都選擇獨立的路徑來進行,盡量和既有的系統服務做出區隔

繼續閱讀 “CentOS 7 中 Apache 2.4.35 + PHP 7.2.11 + HTTP/2 升級安裝筆記 (零風險升級/平滑升級)”

使用 PHP-FPM 正確取得 PHP_AUTH_USER 的方法

近期開始嘗試透過 php-fpm 來執行 PHP
上網找資料時,多數的內容都跟 php-fpm.conf 和 www.conf 的設定有關
有部份的文章或討論也會提到使用 php-fpm 後無法使用 $_SERVER['PHP_AUTH_USER']
恩… 確實會有這樣的情況,但若是說 不能使用 也不是正確的說法

會有這樣的情況發生,只是單純因為架構的關係造成 php-fpm 沒辦法直接取得 Web Server 端的 Basic access authentication 相關資訊而已

繼續閱讀 “使用 PHP-FPM 正確取得 PHP_AUTH_USER 的方法”

小米 MIUI ROM 官方刷機包(手機/路由 全機型)

鸚鵡在2014年寫了一個 官方ROM包探測器 用來偵測小米官方所釋出的最新版ROM包
到2016年因為沒有什麼時間更新維護,一直沒有新增支援的機型

最近花了兩個星期的時間,重寫所有的程式
也弄成獨立的網站,有需要的、找刷機包ROM載點 的可以參考看看
同時提供官方更新日誌(changelog)資訊

運作基本上手機內的 系統更新 一樣,所有連結都是官方連結載點
要手動下載放進手機的話,放到 儲存空間 內的 download_rom 資料夾,即可使用內建的系統更新直接更新手機

繼續閱讀 “小米 MIUI ROM 官方刷機包(手機/路由 全機型)”

小米6 使用 MIUI 10 國際開發版完全通過 SafetyNet 使用 Google Pay

最近把手上的小米6更新到 MIUI 10 國際開發版
刷入 Magisk 後卻無法完整通過 SafetyNet 檢測,導致無法使用 Google Pay
Magisk 的檢測結果如下

ctsProfile: false
basicIntegrity: true

上網爬了一下資料,造成 ctsProfile 沒有通過通常是原廠沒有將這個 ROM 提交給 Google 審核
所以這邊提供解決方法

如果您的手機尚未解鎖或是對刷機流程不熟悉,可以先參考文章底的連結
官方解鎖是基本的,還沒解鎖就先解鎖吧
另外,該文章內 『避免自動加密 userdata 分區』 的部份僅適用於 Android 7 的卡刷包

繼續閱讀 “小米6 使用 MIUI 10 國際開發版完全通過 SafetyNet 使用 Google Pay”

網頁Top按鈕 (網頁回到頂端),純 CSS+jQuery 免圖片

在手持行動裝置逐漸取代 PC 的現在
響應式網頁 (RWD / Responsive Web Design) 的規劃也非常普遍

使用 PC/NB 瀏覽網頁時,即使沒有 Go Top 按鈕也可以使用鍵盤的 Ctrl+Home 來達成目的
但使用手持行動裝置就不是那麼一回事了,如果沒有這按鈕時就只能一直不停的往上滑動

最近使用 Bootstrap 4 + jQuery 弄 RWD 頁面,就需要在網頁上加上 回到網頁最上方 的按鈕
然而 Bootstrap 4 已經捨棄了 Glyphicons icon font,想達到目的的選擇大概就是

  • 使用圖片
  • 使用 SVG 繪製
  • 使用 Glyphicons、Octicons、Font Awesome 或其他第三方專案

但是不想使用圖片,對 SVG 也不熟,也不想使用第三方專案的解決方案

繼續閱讀 “網頁Top按鈕 (網頁回到頂端),純 CSS+jQuery 免圖片”

Android 刷機包(卡刷) 中 system.new.dat 的 re-pack工具: rimg2sdat

2013年鸚鵡買了人生第一隻 Android 手機:小米2S 32GB
新機入手就開始刷機和ROOT,從 JLB15.0 玩到 JLB21.0 時就開始動手改卡刷包

就這樣一路改一路玩到了換小米5
搶到陶瓷尊享版後很開心的下載官方卡刷包準備動刀,點開卡刷包時卻矇了

沒有 system 資料夾! 沒有 system 資料夾! 沒有 system 資料夾!

看了一下檔名和檔案大小,大概就是它了: system.new.dat
經過 Google 大神介紹到 xda 論壇拜碼頭,找到了這篇文章 Unpack/re-pack android DAT files
馬上下載工具並安裝 Python ,終於順利的 unpack 了一個 raw image

mount 起來修修改改完準備 re-pack 的時候卡關了
要先用 img2simg 將 raw image 轉換成 Android sparse image 之後才能再轉成 system.new.dat
又不想 git 一堆 andorid source 回來編譯,只為了取得 img2simg 這工具

心想,既然 system.new.dat 可以直接轉 raw image,那直接反向轉回去就好啦!?

完全沒接觸過 Python 還是把 sdat2img.py 開起來,只是閱讀起來異常艱澀
邊看邊對照 unpack 時輸出的資訊,大概抓到原理後就用 PHP 開始土砲

繼續閱讀 “Android 刷機包(卡刷) 中 system.new.dat 的 re-pack工具: rimg2sdat”

在 CentOS 7 幫 Apache 2.4.6 加上 Brotli 網頁壓縮技術(mod_brotli)

最近終於接觸到 Google 釋出的 Brotli 壓縮技術
於是動念想幫 apache 也加上 brotli 的支援,因為現在各大瀏覽器也都已經支援

但因為微軟的 IE (Internet Explorer) 全系列都沒有支援
所以作法就變成增加 mod_brotli 的支援且優先使用,而不是取代 mod_deflate 或 mod_gzip

繼續閱讀 “在 CentOS 7 幫 Apache 2.4.6 加上 Brotli 網頁壓縮技術(mod_brotli)”