2009-08-30 27 views
0

私の問題は次のとおりです。このコードは、Webブラウザ経由でページをロードするときに問題なく動作します。しかし、コマンドラインからスクリプトを実行すると、 "php script.php"のように爆撃されます。PHP error_log&working does not working

script.phpは次のとおりです。

<?php 
include_once('class.WebsiteScraper.php'); 
$ws = new WebsiteScraper(); 
$ws->test(); 
... 
?> 

class.WebsiteScraper.phpは次のとおりです。

<?php 
echo 'test'; 
class WebsiteScraper { 
    public function test() { 
     echo 'test2'; 
    } 
} 
?> 

これはエラーを返します。コマンドラインから呼び出されたときにのみ

PHP Fatal error: Call to undefined method WebsiteScraper::test() in ... on line 4

を行いますこれは起こる。 私はscript.phpするに

error_log('hey there'); 

を追加したときにもう一つは、注意することは、それは、というよりも、私のエラー・ログに標準出力にエラーがスローされます。しかし、Webブラウザから呼び出されると、エラーログに記録されます。何か案は?

+0

を追加

てみエラーがありますか? –

+0

いいえ、それは事です...私は、エラーが発生するにはダミーのファイル名を入れれば、 "ファイルは存在しませんでした"というエラーが発生すると思います。だからそれを見つけるのですが、クラスにメソッドをロードできませんでしたか? –

答えて

1

は、コマンドラインは、Apacheと同じコンフィギュレーション・ファイルをロードしているかどうかを確認するためにcommand line option--iniを使用します。

php --ini 

あなたはまた、phpinfo()を呼び出すことができます。

ファイルが含まれていない可能性があります。おそらく、パスを含むためです。

編集:インクルードファイルが見つからない@

error_reporting(E_ALL); 
+0

それだけです!私はMAMPを使用していて、MAMPのためにiniファイルを編集しました(Apacheと一緒に使用されています)。しかし、sys iniファイルは別の場所にあります。 –

+0

Welp、ハングアップ。私は両方のiniファイルをチェックして、両方が正しくパスしています。しかし、コマンドラインから "error_log"というスクリプトを呼び出すと、まだ動作しません。 –

+0

また、インクルードされたファイルはエラーを返すものではありません - phpは "ストリームを開く"ことができますが、ファイル内のどのコードも説明/実行されていません。 –