web-dev-qa-db-ja.com

HTMLファイルではないphpファイルの500内部サーバーエラー

私のサイトは4-5の静的ページしかありません。 index.htmlindex.php両方ともあります。 index.htmlは問題なく機能しています。私がindex.phpに変更した場合、それは500 Internal Server Errorを与えます。私の間違いはどこにあるのかわかりませんか?

注:。htaccessphp_flag display_errors 1ファイルを使用すると、

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.を表示しています

empty。htaccess fileを使用すると、

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.を表示しています

そして私が../contact-us.phpを与えれば、それは正しく表示されます。

ありがとう….

62
KarSho

phpコードに致命的なエラーがあるがエラー表示がオフになっている場合は、500 Internal Server Errorが表示されます。あなたは500エラーページの代わりにエラー自体を見るためにこれを試みるかもしれません:

あなたのphpファイルでは

ini_set('display_errors', 1);

.htaccessファイルの場合

php_flag display_errors 1
128
Hast

PHPファイルのアクセス許可は644に設定する必要があります。PHPファイルおよびPHPアクセスを含むフォルダー(ファイルをアップロードする場合など)は、755に設定されている必要があります。 777に設定されたパーミッションを持つファイルやフォルダを扱うとき、PHPは500エラーを実行します。

64
David Valenza

私はこの質問が古いことを知っています、しかし、私は書き換えのために.htaccessファイルを使おうとしている間、Windows 8.1でこの問題に遭遇しました。私の解決策は簡単でした、私はhttpd.confの以下の行を修正するのを忘れていました

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so

Apacheモニタを再起動しました。現在はすべてうまくいきました。将来の誰かが同じ問題に簡単な修正で遭遇する可能性があるので、これを答えとして投稿するだけです。

がんばろう!

2
Winter

私はMySQLに接続しようとしていたのでこの問題を抱えていましたが、必要なパッケージがありませんでした。エラーログをチェックするという@ Amadanのコメントのため、私はそれを考え出しました。私の場合、私はエラーがありました:Call to undefined function mysql_connect()

PHPファイルにMy-SQLデータベースに接続するためのコードがある場合は、最初にphp5-mysqlをインストールする必要があります。私はそれをインストールしていなかったので、私はこのエラーを受けていました。私のファイル許可はすべて良かった。 Ubuntuでは、次のコマンドでインストールできます。

Sudo apt-get install php5-mysql

2

.htaccessファイルの行末(Windows CRLFからUnix LFへ)を変更して修正しました。

2
Saran

グーグルはここで私を導きますがそれは私の解決しませんでした、これは非常に一般的な質問であり、そして様々な原因があります。

500エラーのもう一つの考えられる原因はこのようにheader(...)関数の構文エラーです:

header($_SERVER['SERVER_PROTOCOL'] . '200 OK');

サーバープロトコルとステータスコードの間にはスペースが必要ですので、注意してください。

header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');

だからあなたのコードでそれを持っているなら、私はあなたのhttpヘッダ呼び出しをチェックすることを勧めます。

0
Lin