私のサイトは4-5の静的ページしかありません。 index.html&index.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
を与えれば、それは正しく表示されます。
ありがとう….
phpコードに致命的なエラーがあるがエラー表示がオフになっている場合は、500 Internal Server Errorが表示されます。あなたは500エラーページの代わりにエラー自体を見るためにこれを試みるかもしれません:
あなたのphpファイルでは
ini_set('display_errors', 1);
.htaccessファイルの場合
php_flag display_errors 1
PHPファイルのアクセス許可は644に設定する必要があります。PHPファイルおよびPHPアクセスを含むフォルダー(ファイルをアップロードする場合など)は、755に設定されている必要があります。 777に設定されたパーミッションを持つファイルやフォルダを扱うとき、PHPは500エラーを実行します。
私はこの質問が古いことを知っています、しかし、私は書き換えのために.htaccessファイルを使おうとしている間、Windows 8.1でこの問題に遭遇しました。私の解決策は簡単でした、私はhttpd.confの以下の行を修正するのを忘れていました
#LoadModule rewrite_module modules/mod_rewrite.so
に
LoadModule rewrite_module modules/mod_rewrite.so
Apacheモニタを再起動しました。現在はすべてうまくいきました。将来の誰かが同じ問題に簡単な修正で遭遇する可能性があるので、これを答えとして投稿するだけです。
がんばろう!
私はMySQLに接続しようとしていたのでこの問題を抱えていましたが、必要なパッケージがありませんでした。エラーログをチェックするという@ Amadanのコメントのため、私はそれを考え出しました。私の場合、私はエラーがありました:Call to undefined function mysql_connect()
PHPファイルにMy-SQLデータベースに接続するためのコードがある場合は、最初にphp5-mysql
をインストールする必要があります。私はそれをインストールしていなかったので、私はこのエラーを受けていました。私のファイル許可はすべて良かった。 Ubuntuでは、次のコマンドでインストールできます。
Sudo apt-get install php5-mysql
.htaccess
ファイルの行末(Windows CRLFからUnix LFへ)を変更して修正しました。
グーグルはここで私を導きますがそれは私の解決しませんでした、これは非常に一般的な質問であり、そして様々な原因があります。
500エラーのもう一つの考えられる原因はこのようにheader(...)
関数の構文エラーです:
header($_SERVER['SERVER_PROTOCOL'] . '200 OK');
サーバープロトコルとステータスコードの間にはスペースが必要ですので、注意してください。
header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');
だからあなたのコードでそれを持っているなら、私はあなたのhttpヘッダ呼び出しをチェックすることを勧めます。