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

在 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)〉

免費的 SSL 憑證:Let’s Encrypt!

這幾天隱約想起2015年底好像有看到訊息2016年會有免費的 SSL憑證 可以申請
稍微搜尋了一下有找到 Let’s Encrypt 有提供,其相關背景鸚鵡就不贅述囉
值得注意的是 Let’s Encrypt 提供的憑證只有90天,每60可以更新(renew)憑證

點進網站按下 Get Started 並沒相關申請界面,而是說明採用 ACME protocol 來進行申請。
因此必須主機上擁有使用 shell 的權限才能進行,也就是要有 Linux 基本能力 並且可以使用 ssh 連上主機,而且能取得 root 權限

不熟悉的人可以選擇透過 SSL For Free 來進行申請。步驟不多挺簡單,網路上也很多教學,有需要可以自己搜尋一下。很多提供虛擬主機服務商也都有整合 Let’s Encrypt 服務,

鸚鵡是自己管理主機,所以就自己選擇工具安裝申請憑證,以下就大概紀錄一下步驟

閱讀全文〈免費的 SSL 憑證:Let’s Encrypt!〉

Linux 架設 Git Server 同時支援 ssh 和 http 兩種協定

最近在整理自己過去寫的各種程式碼,真是又多又雜 版本分支多
打算自己建立一台 Git Server 來管理
也打算把近期維護的 VB.NET 的程式碼也一併使用 Git 管理版本
找一了一下的教學,才發現 Virtual Studio 不支援 SSH 僅支援 HTTP 協定

動手弄了台主機就開始搞了,前後花了三個晚上才搞定
SSH 沒搞太久幾乎都是卡在 HTTP 的部份,爬文爬到 Chrome 分頁都快40個了

環境說明:

  • CentOS 7 (1511) x64
  • Apache 2.4.6

我自己的要求:

  1. 該主機也會是開發測試環境
  2. Git 主要自己要使用而已,但要預留將來提供他人使用可能性
  3. SSH 和 HTTP 兩種模式要能維護同一份 Repository
  4. HTTP 需要權限驗證,SSH 不需要輸入帳號密碼
  5. 不使用 WebDAV 協定

閱讀全文〈Linux 架設 Git Server 同時支援 ssh 和 http 兩種協定〉

在 CentOS 7 下安裝 Apache 2.4 的 mod_watch 模組供 Cacti 統計 (2018.03.27更新)

因為鸚鵡習慣使用 RPM 來管理 server 上的套件,所以都會盡可能將 source 打包成 rpm 檔案後在安裝,方便日後的版本管理或移除。所以這篇教學主要是打包成 rpm 檔案再進行安裝

環境:

  • CentOS 7 (7.2.1511 x86_64)
  • Apache 2.4.6

閱讀全文〈在 CentOS 7 下安裝 Apache 2.4 的 mod_watch 模組供 Cacti 統計 (2018.03.27更新)〉