1. 程式人生 > >500 (Internal Server Error)錯誤解析

500 (Internal Server Error)錯誤解析

今天遇到一個很奇怪的問題。問題起因是,原先我寫了一個小型的網站,突然有一天那臺機器出了問題被重灌了,結果我的小應用就沒了。慶幸的是,我做了備份(看來做備份真是太重要的一件事了)。我將備份的檔案放到了/var/www目錄下,但是介面卻不正常。只有HTML的部分顯示正常,但是涉及到jQuery的部分就不正常了。後來通過chrome除錯,得到了下面的錯誤訊息:

500 (Internal Server Error)

然後就在網上查,得到的是這個錯誤是告訴你問題是出在伺服器端的,但是並沒有說明具體是伺服器端哪裡出的問題。

這就讓我很是奇怪,原先程式時完全可用的,並沒有出現今天所見的問題。程式碼應該是沒有錯誤的,錯誤應該是出現在環境上。

於是就上網查,網上查到的這個問題還真不少,不過就是沒有能拿來解決我遇到問題的頁面。於是我就又拿自己的虛擬機器嘗試一下,把需要的檔案都拷貝到我的虛擬機器上,開啟網頁,一切正常。這就怪了,為什麼噹噹在那臺電腦上就是不行呢?自己很是想知道為什麼,其實那個時候,自己完全可以不去查它了,既然在虛擬機器上跑起來了,就沒有這個必要非要在實體機上也搭起來。只能是接著查了,果然功夫不負有心人,在這篇文章中得到了線索,可以去檢視Apache的錯誤日誌,並且告訴了具體的日誌檔案。其實自己之前到時有這個想法,但是由於對Apache伺服器並不是很熟悉,不知道究竟在哪裡看。在/var/log下檢視,並沒有找到真正想要的日誌。這個Apache的日誌檔案就是:

/var/log/apache2/error.log

結果一看,關鍵錯誤盡是:Call to undefined function json_encode()。我之前已經通過
sudo apt-get install php5-json

將其安裝上了呀,為什麼還會出這樣的錯誤呢。再查原來是我沒有重啟導致的,如果不重啟是無法使用的,果斷重啟,重啟命令如下:
sudo service apache2 restart

重啟後果然就好了。心情頓時就高興起來了。

收穫:

  1. 檢視Apache伺服器的日誌:/var/log/apache2/error.log.
  2. 如果安裝了php5-json,一定要重啟apache2,否則並不會起作用。