我的網站目前有個 node 無法 update,每次更新都會出現 500 Internal Server Error。文章有六十多 kb,而 PHP 的 memory_limit 有 128mb,所以推測不是記憶體問題。目前有如下症狀:
- 編輯這個 node 時,有最多內容的那個 textfield 的 CKeditor 無法顯示出來,會變成一個普通的 textfield;底下還是有 Switch to plain text editor 按鈕但沒作用。
- 刪掉該 textfield 中的一半內容之後再按 Switch to plain text editor,CKeditor 會恢復正常,並且可以成功 update。
- 刪掉一半內容然後把剩下的那一半複製貼上讓它變回和原來一樣長,CKeditor 仍維持正常,但送出仍會 500 Internal Server Error(不讓我更新這麼長就是了)。
- 直接複製出問題的原文新增一個 node,500 Internal Server Error。
- 以 plain text 狀態送出,500 Internal Server Error。
- 此狀況在另一個伺服器的測試網站(Drupal 7.41)不發生,但在正式運轉的網站(7.43)發生。除了伺服器設定可能的差異之外,兩個網站的不同幾乎只有 Drupal 版本(在更新前這兩個網站是檔案映射過去的)。
- Recent log messages 不會留下任何關於此事件的紀錄。
目前看來最可能的問題是 Drupal 在送出的時候因為某些原因沒有成功處理內容?但我上次更新這個 node (沒出問題)的時候並不是在現在這個伺服器,好像也不能排除是某些伺服器設定。請問有哪些可能的解決方向?
好像之前有人問過,如果有可以進主機的cpanel的話
好像之前有人問過,如果有可以進主機的cpanel的話
去把 modsecurity 關掉
我也有看過這個建議,確實和我的症狀很像不過結論是沒用
我也有看過這個建議,確實和我的症狀很像不過結論是沒用。目前的想法是等 CentOS 出 PHP7 官方套件然後更新看看能不能解決。
這問題我在另一個看似不相干的狀況中意外解決了
這問題我在另一個看似不相干的狀況中意外解決了。這次的新狀況是我用 image field 上傳某個檔案時總是發生 ajax 500 internal server error,經過搜尋和一連串測試之後發現是我用 FastCGI 的問題:我不知道 FastCGI 要吃不同的設定參數,以為改 PHP 參數就好了,而且 FastCGI 上傳的上限預設只有 130 kb。現在我在相關的設定檔裡面加進:
<IfModule mod_fcgid.c>
MaxRequestLen 10000000
</IfModule>
然後上傳圖片的問題解決了;我在這串發問的問題忽然也解決了。
我不太懂 FastCGI 和 mod_php 的具體架構,不過真的是有一些奇妙的現象,像是 SQLite 的檔案在 mod_php 下需要 664 權限才能運作,但 FastCGI 只要 644 就能夠動了。以前都用虛擬空間所以沒注意過這種環節。