簡體   English   中英

任何導致INTERNAL SERVER ERROR的.php文件

[英]Any .php file causing INTERNAL SERVER ERROR

突然,我服務器上的所有.php文件都會導致INTERNAL SERVER ERROR。

我不知道它是否相關,但它是在我更新yum時開始的。

即使是空白的.php文件也會導致錯誤。 我已經移動了所有我的網站內容,只嘗試了一個空的.php文件,但它仍然給出了同樣的錯誤。

也沒有.htaccess文件。

我該怎么辦? = /

(同一台服務器上的其他站點工作正常)

Apache和php日志似乎沒有更新。 Apache的最后一次是從今天開始,但與此問題無關。 PHP的最后一個來自APRIL

UPDATE

我剛發現每個域都有自己的Apache日志。

這是特定網站的內容

[Thu Jul 28 22:04:02 2011] [error] [client 173.245.56.24] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:02 2011] [error] [client 173.245.56.168] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:02 2011] [error] [client 173.245.56.168] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:02 2011] [error] [client 103.22.200.144] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:02 2011] [error] [client 103.22.200.144] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:02 2011] [error] [client 103.22.200.150] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:02 2011] [error] [client 103.22.200.150] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:03 2011] [error] [client 173.245.56.168] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:03 2011] [error] [client 173.245.56.168] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:04 2011] [error] [client 199.27.128.138] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:04 2011] [error] [client 199.27.128.138] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:04 2011] [error] [client 103.22.200.246] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:04 2011] [error] [client 103.22.200.246] Premature end of script headers: cgi_wrapper

我不確定,但有時它可能與文件的權限有關。 在我使用的網絡主機上,如果權限未設置為655,則會給出505; 777將給出500內部服務器錯誤。 我的猜測是,在YUM的PHP發布更新中他們做了類似的事情,但這只是猜測。 簡而言之,檢查文件權限,如果它們不是655,則嘗試將它們更改為該權限。

嘗試閱讀日志。 請記住,許多主機在超載時會拋出500內部服務器錯誤,即使php沒有問題。 當我或同一服務器中的其他人多收費時,它會發生在我的共享主機帳戶中

如果等待服務器變得不那么繁忙或者你看不到日志,那么你應該真正與你的托管支持人員交談,這似乎與PHP本身無關,至少不是你自己的一方。

可在https://support.exabytes.com/kb/a3479/500-internal-server-error-information.aspx上找到:

權限錯誤,可由組寫入

錯誤的權限錯誤可能如下所示:

[Sun Jun 05 12:03:22 2012] [error] [client 66.249.72.82] SoftException in Application.cpp:601: Directory "/home/exampleuser/public_html" is writeable by group

在這種情況下,該文件夾具有文件夾設置太高的權限。 要更正此問題,需要將權限從“777”更改為“755”。

目錄和文件夾應為755. cgi-bin文件夾中的可執行腳本必須為755.圖像,媒體和HTML等文本文件應為644。

文件 - 644 CGI腳本 - 755目錄 - 755您可以使用文件管理器修改權限,該文件管理器位於cPanel的“文件”類別,FTP客戶端或使用SSH / Bash中的chmod命令。

Bad .htaccess,無效的代碼,命令或語法

.htaccess文件(“dot htaccess”)中,您可能添加了措辭錯誤或沖突的行。 解決此問題的最佳方法是注釋掉.htaccess中的行。

您可以通過在開頭添加#來注釋.htaccess中的一行。 在進行更改之前,最好保存任何文件的原始副本。

例如,如果.htaccess看起來像這樣:

DirectoryIndex default.html
AddType application/x-httpd-php5 php

然后嘗試這樣的事情:

DirectoryIndex default.html
#AddType application/x-httpd-php5 php

以php_flag開頭的虛線和線條是最常見的錯誤。 如果您無法確定哪個行是問題,那么注釋掉每一行。

其他常見的.htaccess錯誤

的FollowSymLinks

錯誤可能如下所示:

[Sun Jun 05 12:07:10 2011] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: Option FollowSymlinks not allowed here

在這個例子中,錯誤很容易修復; 在指定的文件中,使用allowed指令 - 在這種情況下使用“SymlinksIfOwnerMatches”而不是“FollowSymlinks”,或者完全刪除該行。

語法未關閉

錯誤可能如下所示:

 [Sun Jun 05 12:11:38 2011] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: /home1/examplec/public_html/.htaccess:3: <IfModule>ExampleRule/Module> was not closed.

同樣,解決方案是簡單地修復語法,或刪除它。 在這種情況下,關閉結尾“”; 指令正確並將規則放在自己的行上以解決問題。

這些只是一些可能由壞的.htaccess參數引起的常見示例。 您遇到的情況可能會有所不同,但通常情況下,錯誤消息的描述性足以確定其中的錯誤,而無需進一步調查。

php.ini配置不正確

ForceType指令

當您使用與(或沒有)擴展名不同的文件類型的文件類型的正常擴展名時,可以在.htaccess文件中使用ForceType,以使服務器清楚如何處理該文件(或文件夾中的所有文件) (這適用於沒有phpsuexec的服務器)。

例如:當你有一個名為“item”的文件(比如Nucleus用於FancyURL)並希望它被服務器解析為php時,你在.htaccess文件中使用以下代碼:

ForceType application/x-httpd-php

但是,因為我們的服務器使用phpsuexec,這將導致內部服務器錯誤。 要解決此問題,您只需使用SetHandler而不是ForceType,因此.htaccess文件將變為:

SetHandler application/x-httpd-php

php_value

在沒有phpsuexec的服務器上,可以使用.htaccess文件中的php_value語句來更改php的設置(實際上覆蓋了php.ini中的設置)。 在具有phpsuexec的服務器上,這也將導致服務器錯誤。 要解決此問題,您可以使用php.ini文件,該文件放在與放置.htaccess文件的文件夾相同的文件夾中。 在那個php.ini文件中,你可以改變所有的PHP值。 您只需將要修改的值放在該文件中即可。 例如,如果你想將short_open_tag設置為Off,你會使用short_open_tag嗎? = .htaccess文件中的off。 使用php.ini文件會導致:

[PHP]
short_open_tag = Off

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM