之前寫了一篇「UBUNTU 16.04 安裝 APACHE2.4 + MPM_WORKER + FASTCGI + PHP7.0」結果在內部環境跑 mod_fastcgi 時跑 chunked mode 的時候會出現 HTTP erro code 411 的狀況 …
關於這個問題找了一些資料,在 php bugs 找到一篇「 raw POST data missing with chunked encoding, FastCGI」和遇到的狀況相同,裡面提到當使用 chunked mode 的時候會要求要有 Content-Length 這個 header,但是 mod_fastcgi request 並沒有包含 Content-Length,所以 chunked mode 吐 HTTP 411 的錯誤。
從回文中看起來 php 沒有想替這張票多做解釋,並且以 Not a bug 做最後回應:
[2012-08-17 08:12 UTC] ab@php.net
at the end of the day, this is not a php bug
重新仔細看過一遍後在文內有人提交了 patch 給 mod_facgid,而且被接受了「Requests with chunked encoding have no body available to FCGI backend」
For Apache mod_fcgid, I have a patch available in the bug I filed at
https://issues.apache.org/bugzilla/show_bug.cgi?id=53332
由這兩篇可以得知在 mod_fcgid 應該是已經解了這個 bug (但還是同事提醒,我重新看了才發現到)
最後我也直接跑 mod_fcgid 來驗證 chunked mode 確實已經沒有 HTTP 411 的問題了。
參考「Ubuntu 16.04 安裝 Apache2 + mod_fcgid + mpm_worker 跑 php 7.x」