Windows Server 2003 R2 / MySQL 5.0.18 / Apache 2.2 / PHP 5.2.17 / 瑞星防毒 + WebShield
現象:長查詢 > 30 秒被 PHP 強制終止,MySQL 連線隨之斷開。
; php.ini
max_execution_time = 300 ; 5 分鐘,0 表不限制 (慎用)
重啟 Apache 生效。
現象:頻繁開關連線,MySQL 短時間內無法接受新連線,停止發送 2 分鐘自動恢復。
TIME_WAIT 預設 240 秒 (註冊表 TcpTimedWaitDelay),連線釋放慢MaxUserPort),高併發下埠號耗盡Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:0000001e ; 30 秒 (十六進位 0x1E)
"MaxUserPort"=dword:00008000 ; 32768 埠 (十六進位 0x8000)
**修改後必須重開機生效**。
| 項目 | 正確選擇 | 原因 |
|---|---|---|
| VC6 vs VC9 | VC6 | Apache 使用 VC6 編譯,模組需同編譯器 |
| Thread Safe vs Non Thread Safe | Thread Safe | Apache mod_php 以 DLL 載入,多執行緒需線程安全 |