以下的陳述讓我搜尋答案大約一天,才終於弄明白
「不應在網路伺服器環境中啟用行程控制,如果在網路伺服器環境中使用任何行程控制函式,可能會發生非預期的結果。」
至少對於我正在使用的 PHP 5.3.8 以及更早的版本來說,這不是「不應」的問題,而是「不能」的問題。即使我已經使用 --enable-pcntl 編譯了 PCNTL,結果它只編譯到 CLI 版本的 PHP 中,而不是 Apache 模組中。因此,我花了許多時間試圖找出為什麼 function_exists('pcntl_fork') 會返回 false,即使它編譯正確。結果發現,從 CLI 執行時它會正確地返回 true,而只有在處理 HTTP 請求時才會返回 false。所有 pcntl_*() 函式都是如此。