私は本当にばかげた問題を抱えており、解決方法はわかりません。私のクライアントの1人は、Windows/PHP共有ホスティングでホストされている彼のウェブサイトに簡単なPHPスクリプトを置くことを望んでいました。"内部サーバーエラーが発生したため、ページを表示できません。"エラー報告を有効にするオプションはありません
問題は、エラー報告が無効になっており、エラーログにアクセスできないということです。私は取得しています唯一のものは
The page cannot be displayed because an internal server error has occurred.
である私は
<?php
error_reporting(E_ALL);
ini_set('display_errors','On');
foreach(1 as $i);
?>
を試みたが、それは私はまだ一般的な500エラーを取得しています、何も変わりません。 PHPのエラーメッセージを表示させる他の方法はありますか?ホスティングの技術サポートは完全に応答しませんが、何らかのハッカーであっても、何とかこれを解決したいと思います。これは、ソリューションがどれほど汚いか気にしないことを意味します。私が気にするのは、エラーメッセージ詳細に。
Here's a link to the phpinfo();
call
編集:私はあなたたちが示唆したように、カスタムエラーハンドラを追加しようとしましたが、私はまだ500ページと書かれていないエラーログを取得しています
<?php
date_default_timezone_set("Europe/Prague"); // tried commenting this line out, didn't help
function fileLogHandler($errno, $errstr, $errfile, $errline) {
$logFile = "error.log";
$f = fopen($logFile, "a") or die("Couldn't open log file for write");
fwrite($f, strftime("%c") . " $errstr on line $errline\nin file $errfile\n\n");
}
set_error_handler("fileLogHandler");
foreach(1 as $i);
?>
私はこれを実行しますローカルマシンでは正常に動作します。
$ php -f test.php && cat error.log
Fri Oct 28 15:40:14 2011 Invalid argument supplied for foreach() on line 12
in file /Users/darth/Sites/shalamar/test.php
ただし、ホストマシンでは動作しません。01 は私が
<?php
$logFile = "error.log";
$f = fopen($logFile, "a");
fwrite($f, "Hi");
?>
にスクリプト全体ダウンダムにしようと、私はおそらく、フォルダへの書き込み権限がないことを、実現することになりました。問題は、それは、Windows Serverだ、と私はFileZillaを経由してアクセス権を変更しようとした場合、私は私の周りグーグルしようとした素敵な
Command: SITE CHMOD 666 error.log
Response: 500 'SITE CHMOD 666 error.log': command not understood
を取得し、私はFTP経由でファイルのアクセス権を設定することはできませんように見える、です。メールでログを送信する
は今も500エラー
mail("[email protected]", "Voice of desperation");
で任意の提案を終わりますか?
edit2:これまでのすべての提案に感謝しましたが、私はファイルシステムにアクセスすることさえできないので、ログファイルに書き込めません。少なくともそのように見えるので、私は技術サポートの人と話しました。彼らは来週にそれを調べるつもりだと言っています...
スクリプト全体が実行される前に解析されている可能性があります。 error_reportingとini_setの呼び出しをスクリプトの最後に移動してみてください。 – Tim
カスタムエラーハンドラを定義しようとしましたか? http://php.net/manual/en/function.set-error-handler.php – kasimir
@kasimirああ私は持っていますが、私はファイルシステムにアクセスできず、私は電子メールを送信できません...それ以外の場合は解決策が見つからないので、私は書き込みアクセス権を与えるために電子メールによる技術サポートを既に電子メールにしています –