伺服器安裝使用的是oneinstack一鍵安裝套件,lnmpa(Linux + Nginx+ MySQL+ PHP+ Apache)https://oneinstack.com/
程式運行的是discuz3.2, http://www.liuxuesheng8.com/
在發表新帖子,提交時,出現錯誤,提示:
This page isn’t working
bbs.liuxuesheng8.com is currently unable to handle this request.
HTTP ERROR 500
但是內容確實已經寫到資料庫裡,只是卡在上面圖片所示頁面,重新打開網站頁面,發表的新帖子已經提交,很是奇怪。
然後查看伺服器日誌,只是在access_log裡面出現,post 500錯誤,而在apache裡面和openresty的日誌裡面都沒有相應的錯誤日誌,這種情況下在哪裡查找500原因呢? ? ?
- - [29/Apr/2017:18:27:03 +0800] "POST /forum.php?mod=post&action=newthread&fid=70&extra=&topicsubmit=yes HTTP/1.0" 500 -
ringa_lee2017-05-16 13:08:00
顯然你這個錯誤是跟nginx相關的。
nginx出現500,一般有下列幾種情況:
硬碟空間滿了(df -lh查看磁碟佔用情況,nginx所在目錄已佔用100%)。 nginx如果開啟了access log,在不需要的情況下,最好關閉access log。 access log會佔用大量硬碟空間。
nginx設定檔錯誤
設定rewrite的時候,有些規則處理不當會出現500錯誤,檢查下自己的rewrite規則。如果設定檔裡有些變數設定不當,也會出現500錯誤,例如引用了一個沒有值的變數。
並發問題,伺服器扛不住
檔案開啟句柄太小,在做伺服器並發測試的時候,因為伺服器壓力大,我們經常看到一部分請求是500,那麼原因就是nginx可以使用的檔案句柄太小,每個請求都會佔用一個句柄。
天蓬老师2017-05-16 13:08:00
apache, nginx, php錯誤日誌裡面,沒有與這個post500錯誤相關的,,,很奇怪
3樓說的有可能
因為配置了rewrite功能,有時候,打開帖子,rewrite不起效,還是動態網頁,再次點擊這個連結後,rewrite才起效。 。 。我猜想的原因是在post提交後,連結要rewrite,而此時伺服器不能rewrite,從而卡在了對應的頁面上,但資料是已經寫到了資料庫中的