2011-10-28 49 views
0

私は本当にばかげた問題を抱えており、解決方法はわかりません。私のクライアントの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:これまでのすべての提案に感謝しましたが、私はファイルシステムにアクセスすることさえできないので、ログファイルに書き込めません。少なくともそのように見えるので、私は技術サポートの人と話しました。彼らは来週にそれを調べるつもりだと言っています...

+0

スクリプト全体が実行される前に解析されている可能性があります。 error_reportingとini_setの呼び出しをスクリプトの最後に移動してみてください。 – Tim

+0

カスタムエラーハンドラを定義しようとしましたか? http://php.net/manual/en/function.set-error-handler.php – kasimir

+0

@kasimirああ私は持っていますが、私はファイルシステムにアクセスできず、私は電子メールを送信できません...それ以外の場合は解決策が見つからないので、私は書き込みアクセス権を与えるために電子メールによる技術サポートを既に電子メールにしています –

答えて

-1

set_error_handler()を使用してエラーメッセージをファイルに書き込む方法はありますか?

-1

電子メールでPHPのエラーを取得するには:

function custom_error_handler ($errno, $errstr, $errfile, $errline){ 
    $content = "Time ".date("d.m.Y G:i")."\n\n"; 
    $content .= "Error No: ".$errno."\n"; 
    $content .= "Error String: ".$errstr."\n"; 
    $content .= "Error File: ".$errfile."\n"; 
    $content .= "Error Line: ".$errline."\n\n"; 
    mail("[email protected]", "[ERROR HANDLER]", $content); 
} 

set_error_handler ("custom_error_handler"); 
1

エラーログをするためのものであるものです。同じディレクトリに.user.iniまたはphp.iniファイルを作成するための

試みは

error_log = phperrors.log 

が含まれています(絶対パスが好ましい)

、もう一度スクリプトを実行し、このファイルを探し、それが内容です。

+0

彼のホスティングの人々が吸うように聞こえて、彼はおそらくそれにアクセスできない。 – Tim

+0

はい残念ながら私はphp.iniにアクセスできない –

+0

@Darthは私の唇を読んでいます:**ファイルを作成する**同じディレクトリに** ** –

関連する問題