Mysql
帶有 VSwap 的 OpenVZ 在 nginx 上導致 php-fpm/mySQL 錯誤
我遇到了一個相當討厭的問題,希望這裡的任何人都可以幫助我找到可能的解決方案,因為我現在幾乎是磚牆。
情況:
- 我有一個配置了 VSwap 的 OpenVZ VPS
- 我的 VPS 提供商已確認節點上仍有大量可用的主機 cpu/ram/etc
- 我已經完成了教科書 LEMP 安裝,嘗試了 CentOS 5 和 6.3,結果相同
- php-fpm 使用 phpinfo() 執行正常;並給出正確的輸出,所以 nginx 和 php 本身似乎做得很好
- 安裝 phpMyAdmin 來管理數據庫,我遇到了我的問題:第一次,它會給出一個 phpMyAdmin 錯誤,重新載入時會出現可怕的 Bad gateway 502。php-fpm 的日誌文件顯示 SIGSEGV
- php-fpm 不會從中恢復,除非我手動重新啟動服務
- 查看擴展並一一禁用它們,Segfault 似乎是由 APC 引起的,因為禁用它會刪除它。這讓我認為這是共享記憶體某處的記憶體管理問題。
- 對前一點的進一步懷疑是,OpenVZ 上更傳統的 VPS 具有相同的提供者(使用突發/beancounters)和完全相同的設置執行良好。
- 禁用 APC 和其他擴展,只留下所需的,仍然沒有給我 phpMyAdmin,只是給我一個錯誤來檢查 php 配置,我應該檢查日誌。
- 但是,日誌沒有給我任何資訊。
- Nginx 日誌告訴我:797#0: *20 recv() failed (104: Connection reset by peer) while reading response header from upstream
- PHP-FPM 錯誤日誌根本不提供任何資訊(沒有日誌記錄)。
這是否意味著 VSwap 不好?難道我做錯了什麼?再一次,我在 2 個版本的 CentOS 上使用“如果不是真則假”指南完成了教科書安裝,一個 VPS 執行良好(沒有 VSwap)而另一個則沒有(VSwap),其他方面真的沒有區別我可以告訴。
編輯:我嘗試了不同版本和架構的客戶端作業系統(CentOS 5.* 和 6.*、x86 和 x64)以及所有 LEMP 組件和 phpMySQL 的不同版本,但沒有區別。從好的方面來說,我需要的 phpMySQL 可以用其他軟體來完成,而我需要一個在 phpBB3 上執行的數據庫管理工具的論壇似乎做得很好。但這仍然是奇怪和異常的行為。
VSwap 有多重要?我猜你在 CentOS 6 上。你可以要求主機從你的容器中刪除 VSwap 並重新安裝看看是否有效。否則,您可以詢問主機是否有任何其他節點可以讓您加入或交換主機?