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 的方法〉

讓 Discuz X2.5 在 http 協定下透過 https 協定進行登入動作

前幾天才嘗試修改讓 Discuz! X2.5 可以支援 https 協定 下運作
昨天登入 Google 的 Search Console 收到這樣的提示

自 2017 年 1 月起,Chrome (56 以上版本) 會將收集密碼或信用卡詳細資料的網頁標示為「不安全」(透過 HTTPS 提供的網頁除外)。

下列網址包含密碼或信用卡詳細資料的輸入欄位,將會觸發這項新的Chrome 警告。請查看這些示例,掌握這類警告出現的位置,方便您採取有助於保護使用者資料的行動。請注意,這份清單中僅列出部分示例。

目前鸚鵡裝的是 Chrome 55 版,在 http 協定連線時,網址列前面是一個圓形驚嘆號
但不會有其他提示,不知道 Chrome 56 會不會跳出提示
為了避免被跳出不安全的提示,所以決定再來嘗試改一下程式碼
讓論壇即使是 http 協定連入,登入表單也必定傳送到 https 協定

閱讀全文〈讓 Discuz X2.5 在 http 協定下透過 https 協定進行登入動作〉

讓 Discuz X2.5 支援 https 協定

Discuz! 在 X3 之後才內建支援 https 協定
因為不想大幅度升級,所以決定以修改的方式讓 X2.5 版能支援 https 協定

花了不少時間追原始碼,初步修改後大致上可以同時使用 http 和 https 兩種協定進入論壇
使用 https 進入論壇時,論壇畫面、主題列表 都沒問題
但是點入文章後,很容易就被瀏覽器提醒 連線可能有安全漏洞

原因是論壇本就開放式架構,任何人張貼連外的連結或圖片或其他任何資源
只要連外不是使用 https 連結的,都會被視為不安全的連線
所以多數的論壇都維持使用 http 協定,頂多就是登入時使用 https 而已

既然已經修改了,就紀錄一下修改的方法

閱讀全文〈讓 Discuz X2.5 支援 https 協定〉