使用 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 相關資訊而已

因為 Basic access authentication 是 HTTP 協定的應用
而 php-fpm 通常是透過 fastcgi 或 fcgi + proxy 的方式運作
在架構上分成兩段,簡單說就是 Web server 和 Web server 以外的 php-fpm
所以,把 Web Server 的 Authorization 資訊丟給後面的 php-fpm 就可以解決

Apache 設定

上面兩種設定方式擇一即可,這樣就解決了!

順便找了一下 nginx 的設定方式:fastcgi_pass_header
但是沒有實測所以不確定是否可行,如果無效用關鍵字去跟 Google大神 拜碼頭吧

Nginx 設定

 

希望對您有幫助囉