PHP 伺服器500錯誤,看不到錯誤訊息,怎麼辦?

伺服器500錯誤時,在移機時很容易發生,通常的原因是檔案路徑(path)跑掉的關係,

但是,有些伺服器商、主機商、虛擬主機商提供的空間並沒有開啟錯誤訊息,於是,連上網業之後只看的到伺服器500錯誤,連log都沒得看,該怎麼辦呢?

還是有對應的方法的,下面這幾種技巧可以幫助除錯,抓到程式的問題出在哪裡。

首先,PHP中有這個函數可以用。

ini_set

string ini_set ( string $varname , string $newvalue )

ini_set — Sets the value of a configuration option
http://tw2.php.net/manual/zh/function.ini-set.php

這可以強制開啟錯誤訊息,所以,只要在開頭加一段PHP原始碼,就可以看到錯誤訊息了。

ini_set('display_errors', 1);

 

另外,最好檢查以下這些地方,這幾個地方可能會出問題:

  • ※ .htaccess 裡面可能會有一些路徑
  • ※ 資料庫,有些套件會把網址、路徑記錄在資料庫裡,所以要檢查資料庫
  • ※ 所有的php檔,只要有讀取檔案的部分,就要去注意。

 

1 Comment
  1. 羅皓丰 說道:

    我遇到比較多的都是在.htaccess裡面

    還有很典型的就是Allowrewrite忘了開On

    不過我記得500錯誤,如果是.htaccess的問題,就算開display error 好像也不會顯示東西吧@@?

    通常這個時候我會把.htaccess先拿掉,看是否正常,先去除掉一個因素

    還有之前愈過安裝mod_security時,也有問題

    移機的方式建議先不要把所需要的mod一次裝上,從最乾淨的Apache(安全性也最低)開始測試

    慢慢加上你需要的mod,可能比較可以快速找到問題所在

    移機很討厭,所以我已經寫好一套sop 把自己比較容一忘記的先寫下來

    很建議每個人寫一套自己從零安裝到好的sop,比較不容易忽略掉一些細節

Comments are closed.

Welcome , today is 星期二, 2017/09/26