在cPanel下的500內部伺服器錯誤因為其語焉不詳的錯誤提示(不同於其它常見Http錯誤),令許多新手朋友們在遇到該類錯誤時,陷入不知如何處理和解決的尷尬處境,由於周良最近入手了一款linux虛擬機器主機:香港主機91,在這裡就以香港主機91的控制台cPanel為例,為大家科普一下在使用虛擬機器主機時,遇到的500錯誤,及相關的解決方案。
以下是造成該類錯誤的常見的3中原因:
1、不正確的檔案許可權
在你的虛擬機器主機控制台的每個檔案和目錄都有一個許可權,該許可權可以控制誰可以讀,寫和執行該檔案.當檔案被建立的時候,預設的許可權就已經被賦予好了,大多數使用者不需要去改變,但是當您的網站需要升級和更新新的版本的時候,這時候就需要檔案許可權的改變了.通常來說,在伺服器上,PHP檔案的許可權不應該超過775.同時也應該注意關於該父目錄檔案夾的許可權也需要相應的正確設定.下面是常見的檔案和檔案夾設定的具體預設許可權。
public_html -750
檔案夾 -755
CGI 和 Perl 指令碼 -755
.html .php和其它文件類型 -644
同時你也可以在cPanel下檔案管理工具,改變檔案或者目錄許可權,具體如下圖所示:
將其設定為上方我給出的對應的預設許可權即可。
2、在你手動上傳安裝內容管理系統,論壇或者部落格時,檔案使用權限設定錯誤
3、在.htaccess檔案的代碼錯誤
解決方案:
為了能找到造成該500內部伺服器錯誤的具體錯誤資訊,你可以在cPanel下的錯誤記錄檔找到該錯誤資訊。
例如顯示: File “/home/username/public_html/concrete/index.php” is writeable by others
表明給了該檔案太高許可權,可被“組”寫入,將其修改成644即可。
或者:File “/home/username/public_html/concrete/intall” is writeable by others
表明給了該目錄太高許可權,可被“組”寫入,將其修改成755即可。
Perl 指令碼 和500錯誤
當一個來自Perl script的500錯誤或許並不常見,該錯誤的具體原因是難以被發現的,同時cPanel下的錯誤記錄檔也並不能告知我們關於該500錯誤的具體錯誤資訊.此時,該錯誤一般是相關代碼錯誤造成的(舉個簡單的例子,該錯誤甚至很可能是你的代碼缺少相關字元造成的).下面我將列舉一個具體的錯誤碼:
#!/usr/bin/perl
print “content-type: text/html \n\n”
print “Hello, PERL!”;
粗略一看,好像沒什麼錯誤對吧,但是你仔細瞧瞧第二行代碼
print “content-type: text/html \n\n”
第二行代碼少了一個不起眼但是很重要的符號“;”
實際上該行正確代碼應該是
print “content-type: text/html \n\n”;
總之,造成500錯誤的原因還有很多,歡迎您能在留言中幫我補充,不吝賜教。
最後要說的就是,500錯誤不一定是由你自己造成的,一個劣質的主機供應商造成你網站500錯誤的機率要比你自己造成的大的多。可能的話,去找一家好的虛擬機器主機供應商:香港主機91,可以為您省下好多心.