HTTP 狀態(tài)代碼提供有關(guān)在線請(qǐng)求是否成功的信息,如果不成功,則錯(cuò)誤是什么。 但是錯(cuò)誤消息并不總是很清楚。 “500 內(nèi)部服務(wù)器錯(cuò)誤”尤其如此。 此消息表示在連接到服務(wù)器期間發(fā)生錯(cuò)誤,并且無法訪問所請(qǐng)求的頁面。 但是,它不會(huì)告訴你為什么會(huì)這樣。 幸運(yùn)的是,有不同的方法可以找到原因。?大眼仔指出了典型的錯(cuò)誤來源,并提供了有關(guān)遇到 HTTP 錯(cuò)誤 500 時(shí)該怎么做的提示。
HTTP 500 內(nèi)部服務(wù)器錯(cuò)誤
內(nèi)部服務(wù)器錯(cuò)誤是什么意思?
Web 服務(wù)器使用狀態(tài)代碼告訴互聯(lián)網(wǎng)用戶的瀏覽器(客戶端)請(qǐng)求(即訪問網(wǎng)站)是否成功。 如果瀏覽器收到 200 狀態(tài)碼,就知道一切順利。 但是,用戶永遠(yuǎn)不會(huì)看到此消息,因?yàn)槌霈F(xiàn)的是請(qǐng)求的內(nèi)容。 400 和 500 狀態(tài)碼的情況不同。 前者指示客戶端錯(cuò)誤,而后者與服務(wù)器相關(guān)。 Internal Server Error 500 是服務(wù)器錯(cuò)誤的集合狀態(tài)代碼。 因此,乍一看,無法確定錯(cuò)誤究竟出在哪里。 用戶只知道服務(wù)器報(bào)告了意外錯(cuò)誤。
但是,如果服務(wù)器安裝了 Microsoft Internet Information Services (Microsoft IIS),則會(huì)指定錯(cuò)誤代碼。 小數(shù)位更詳細(xì)地指出了錯(cuò)誤的原因:
-
500.0:發(fā)生模塊或 ISAPI 錯(cuò)誤。
-
500.11:應(yīng)用程序正在 Web 服務(wù)器上關(guān)閉。
-
500.12:應(yīng)用程序正忙于在 Web 服務(wù)器上重新啟動(dòng)。
-
500.13:Web 服務(wù)器太忙。
-
500.15:不允許直接請(qǐng)求 global.asax。
-
500.19:配置數(shù)據(jù)無效。
-
500.21:模塊無法識(shí)別。
-
500.22:ASP.NET httpModules 配置不適用于托管管道模式。
-
500.23:ASP.NET httpHandlers 配置不適用于托管管道模式。
-
500.24:ASP.NET 模擬配置不適用于托管管道模式。
-
500.50:在 RQ_BEGIN_REQUEST 通知處理期間發(fā)生重寫錯(cuò)誤。 發(fā)生配置或入站規(guī)則執(zhí)行錯(cuò)誤。
-
500.51:GL_PRE_BEGIN_REQUEST 通知處理期間發(fā)生重寫錯(cuò)誤。 發(fā)生全局配置或全局規(guī)則執(zhí)行錯(cuò)誤。
-
500.52:在 RQ_SEND_RESPONSE 通知處理期間發(fā)生重寫錯(cuò)誤。 發(fā)生出站規(guī)則執(zhí)行。
-
500.53:在 RQ_RELEASE_REQUEST_STATE 通知處理期間發(fā)生重寫錯(cuò)誤。 發(fā)生出站規(guī)則執(zhí)行錯(cuò)誤。 該規(guī)則配置為在更新輸出用戶緩存之前執(zhí)行。
-
500.100:內(nèi)部 ASP 錯(cuò)誤。
服務(wù)器錯(cuò)誤 500 的原因是什么?
當(dāng) Web 服務(wù)器處理請(qǐng)求時(shí),可能會(huì)發(fā)生“內(nèi)部服務(wù)器錯(cuò)誤”。 集體狀態(tài)代碼包括服務(wù)器上可能發(fā)生并阻止網(wǎng)站加載的所有計(jì)劃外情況。 服務(wù)器錯(cuò)誤 500 的發(fā)生可能是因?yàn)?Web 服務(wù)器的配置發(fā)生了錯(cuò)誤。 以下是一些典型的錯(cuò)誤來源:
-
權(quán)限錯(cuò)誤:主要文件和文件夾的權(quán)限設(shè)置不正確。
-
PHP 超時(shí):腳本嘗試訪問外部資源并遇到超時(shí)。
-
.htaccess 中的錯(cuò)誤代碼:.htaccess 文件中的結(jié)構(gòu)可能有誤。
-
CGI/Perl 腳本中的語法或代碼錯(cuò)誤:在某些情況下,腳本不正確。 特別是路徑可能會(huì)錯(cuò)位。
-
PHP 內(nèi)存限制:進(jìn)程超出內(nèi)存,無法正確執(zhí)行。
對(duì)于 WordPress 網(wǎng)站或其他內(nèi)容管理系統(tǒng),安裝錯(cuò)誤或不兼容的擴(kuò)展也可能是原因。 插件和主題(尤其是來自第三方提供商的)會(huì)影響整個(gè)網(wǎng)站。
網(wǎng)站運(yùn)營者如何解決 500 內(nèi)部服務(wù)器錯(cuò)誤?
您的網(wǎng)站訪問者是否只看到 500 服務(wù)器錯(cuò)誤? 作為運(yùn)營者,您應(yīng)該迅速解決這個(gè)問題,因?yàn)檫@不僅會(huì)嚇跑您的訪問者,而且還可能意味著百度、Google 會(huì)降低您的排名。 在您采取行動(dòng)之前,請(qǐng)先檢查您的服務(wù)器是否仍在運(yùn)行。 如果沒有,請(qǐng)盡快聯(lián)系您的托管服務(wù)提供商。
如果存在內(nèi)部錯(cuò)誤,第一步是查看日志文件。 對(duì)于 Linux 服務(wù)器,應(yīng)在 /var/log/httpd/error_log 中找到錯(cuò)誤消息的集合。 重新加載網(wǎng)站以重現(xiàn) HTTP 錯(cuò)誤 500 代碼并觀察日志文件的創(chuàng)建方式是有意義的。 這將幫助您快速找到錯(cuò)誤的來源。 還要考慮不久之前進(jìn)行了哪些更改。 在許多情況下,錯(cuò)誤編程或不兼容的插件是錯(cuò)誤消息的原因。
如果您沒有為重要文件正確設(shè)置權(quán)限,也會(huì)出現(xiàn)錯(cuò)誤。 一般來說,權(quán)限分為三種:
-
讀取 (r)
-
寫入 (w)
-
執(zhí)行 (x)
可以為三種不同的用戶類型分配這些權(quán)限:
-
文件的擁有者
-
用戶組
-
所有其他人
權(quán)限以縮寫 r、w 和 x 或相應(yīng)的數(shù)值指定:4 表示讀取,2 表示寫入,1 表示執(zhí)行。 它們是為每種用戶類型添加的,并一個(gè)接一個(gè)地指定:rwxr-xr-x(所有者為 rwx,組為 r-x,所有其他用戶為 r-x)或 755。此配置 (755) 應(yīng)該是默認(rèn)設(shè)置。 如果權(quán)限分配設(shè)置不同,可能會(huì)發(fā)生錯(cuò)誤。 您可以使用以下命令更改此設(shè)置:
1 |
chmod?755?filename |
如果此更改不能解決問題,您還可以釋放每個(gè)組的所有權(quán)限以進(jìn)行測試:
1 |
chmod?777?filename |
但是只能使用這個(gè)設(shè)置來定位問題。 允許任何用戶重寫該文件,這是可以理解的安全風(fēng)險(xiǎn)。
接下來,檢查(如果分發(fā)權(quán)限沒有產(chǎn)生錯(cuò)誤消息)您的腳本是否正確運(yùn)行。 有時(shí)會(huì)出現(xiàn)錯(cuò)誤,因?yàn)槟_本文件已被移動(dòng)、重命名或刪除。 還要檢查 .htaccess 文件:即使是語法錯(cuò)誤(無論多么小)都可能導(dǎo)致內(nèi)部服務(wù)器錯(cuò)誤。 一個(gè)同樣常見的錯(cuò)誤是不正確地格式化 .htaccess 文件。 這必須以 ASCII 或 ANSI 格式創(chuàng)建,而不是 Unicode。 因此,請(qǐng)?jiān)谟浭卤?、Notepad++ 或 Sublime Text 等文本編輯器中編寫文件,而不要在 Microsoft Word 等文字處理程序中編寫文件。 要測試是否是該文件導(dǎo)致的錯(cuò)誤,您可以暫時(shí)重命名并重新加載網(wǎng)站。 服務(wù)器現(xiàn)在在加載網(wǎng)站時(shí)不會(huì)訪問 .htaccess。 如果您不再收到錯(cuò)誤消息,您可以修復(fù)該文件或創(chuàng)建一個(gè)新文件。
超時(shí)也可能導(dǎo)致錯(cuò)誤消息。 在這種情況下,這不是 Web 服務(wù)器錯(cuò)誤,而是與外部源的連接中斷。 您網(wǎng)站上的 PHP 腳本是否設(shè)置為從其他服務(wù)器訪問資源? 也許資源不再可用或服務(wù)器通信因其他原因而中斷。 消除這種錯(cuò)誤來源的一種方法當(dāng)然是不要讓您的站點(diǎn)依賴外部資源。 如果這不可能,您可以增加腳本的時(shí)間限制。 實(shí)施有效的錯(cuò)誤處理也很有意義,這樣可以更準(zhǔn)確地檢測到 PHP 腳本中的錯(cuò)誤。
會(huì)不會(huì)是內(nèi)存超載了? 內(nèi)存限制決定了一個(gè)進(jìn)程可以使用多少內(nèi)存。 如果需要的 RAM 多于可用的 RAM,這可能會(huì)導(dǎo)致內(nèi)部服務(wù)器錯(cuò)誤。 您可以增加限制作為臨時(shí)解決方案。 為此,請(qǐng)將如下命令添加到 php.ini:
1 |
memory_limit?=?512M |
在此示例中,您會(huì)將提供的內(nèi)存設(shè)置為 512MB。 但是請(qǐng)注意,您的托管服務(wù)提供商只允許您在預(yù)訂的套餐中使用特定的 PHP 腳本。 如果您輸入一個(gè)更高的值,Web 服務(wù)器將忽略它。 提高限制只是一個(gè)臨時(shí)解決方案:一旦您的網(wǎng)站重新啟動(dòng)并運(yùn)行,您應(yīng)該尋找 RAM 使用率高的原因。 很有可能在您網(wǎng)站的代碼中發(fā)現(xiàn)錯(cuò)誤。
如果這些方法都不能為您提供解決方案,最好聯(lián)系您的托管服務(wù)提供商。 在此之前,您可以檢查服務(wù)器的狀態(tài):許多托管服務(wù)提供商會(huì)通過狀態(tài)頁面報(bào)告其服務(wù)器的狀態(tài),或者在出現(xiàn)問題時(shí)通過社交媒體通知用戶。
互聯(lián)網(wǎng)用戶應(yīng)該如何響應(yīng) HTTP 錯(cuò)誤 500?
作為網(wǎng)站訪問者,如果遇到內(nèi)部服務(wù)器錯(cuò)誤,您幾乎無能為力。 目標(biāo)網(wǎng)站所在的網(wǎng)絡(luò)服務(wù)器配置不正確。 這意味著您的 PC 設(shè)置或網(wǎng)絡(luò)連接設(shè)置沒有錯(cuò)誤。 因此,對(duì)于互聯(lián)網(wǎng)用戶來說,最簡單的解決方案通常是稍后重新加載頁面。 一方面,有可能站長已經(jīng)更正了錯(cuò)誤。 這是很有可能的,尤其是對(duì)于大型供應(yīng)商。 另一方面,可能是您試圖在網(wǎng)絡(luò)服務(wù)器不方便的時(shí)間訪問該網(wǎng)站。 如果您選擇了服務(wù)重新啟動(dòng)的確切時(shí)間,即使一切都在計(jì)劃中,也會(huì)顯示錯(cuò)誤消息。
注意
如果您在網(wǎng)上訂購時(shí)遇到錯(cuò)誤信息,請(qǐng)不要重新加載網(wǎng)頁,因?yàn)槟床坏藉e(cuò)誤發(fā)生的位置。 可能是確認(rèn)頁面加載失敗,但系統(tǒng)已經(jīng)接受了您的訂單。 因此,刷新頁面可能會(huì)導(dǎo)致重復(fù)訂單。
也有可能是頁面瀏覽量的急劇增加導(dǎo)致服務(wù)器突然宕機(jī)。 這個(gè)問題通常會(huì)在幾秒鐘內(nèi)解決?– 除非網(wǎng)站永久超載。 如果刷新頁面后仍然收到錯(cuò)誤消息,您應(yīng)該先清除瀏覽器的緩存。 瀏覽器實(shí)際上可能不會(huì)重新加載網(wǎng)站,而是使用其內(nèi)部存儲(chǔ)器。 清空緩存后,再次嘗試訪問網(wǎng)站。
如果仍然顯示“500 內(nèi)部服務(wù)器錯(cuò)誤”,那你就別無選擇,只能等待網(wǎng)站運(yùn)營商解決問題。 但是,您可以使用一個(gè)小技巧來訪問網(wǎng)站的內(nèi)容。 如果您不依賴于(功能)頁面的最新狀態(tài),您可以訪問谷歌緩存。 如果您在谷歌搜索欄中輸入命令 cache: 后跟相關(guān) URL,您可以訪問該網(wǎng)站的較早版本(希望仍在運(yùn)行)。 但是,您不會(huì)真正瀏覽該頁面,您只會(huì)在 Google 服務(wù)器上的副本中導(dǎo)航。
如果您想訪問的網(wǎng)站長時(shí)間無法訪問,您當(dāng)然可以聯(lián)系站長。 他們甚至可能不知道訪問者無法訪問他們的網(wǎng)站。文章來源:http://www.zghlxwxcb.cn/news/detail-714707.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-714707.html
到了這里,關(guān)于深入了解HTTP 500內(nèi)部服務(wù)器錯(cuò)誤的原因及解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!