0

Windows 7 を実行しており、Zend フレームワークを新規インストールしています。「search.php」という新しい php ファイルで、Zend_Search_Lucene を使用して検索アプリケーションを構築しようとしています。最初の行は次のとおりです。

<?php require_once "C:...\Zend\Search\Lucene.php";?>

このコードを実行すると、ブラウザに内部サーバー エラー 500 が表示されます。その後、Zend ライブラリ内のいくつかのファイルを単独で実行しようとすると、このエラーが発生することがわかりました。これが、前述のエラーの原因です。 .ie ERROR 500 on localhost/Zend/Search/Lucene.php, localhost/Zend.../blabla.php..

ただし、一部のファイルは、ブラウザで実行したときにこの 500 サーバー エラーが表示されませんでした。つまり、localhost/Zend/ProgressBar.php は空のページを表示します。これは、コードに「エコー」がないと仮定しているため問題ありません。これは、ブラウザで lucene.php を実行したときに実際に期待したものです...

経験豊富な誰かがこれがどのように起こるか教えてもらえますか? 例外ではなく内部サーバー エラーが発生するのはなぜですか? この内部 500 サーバー エラーに関係なく、「Lucene.php」ファイルを使用する検索アプリケーションが正しく動作するかどうかを確認するにはどうすればよいですか? ありがとう。

4

4 に答える 4

4

エラー報告を有効にしてみてください:

急いで

ini_set('display_errors', 1);
error_reporting(E_ALL);

php.ini 内(おそらく php と cli では異なる)

error_reporting = E_ALL
display_errors = 1

詳細については、次を参照してください。

于 2011-06-07T05:26:42.480 に答える
1

私はついに問題を解決しました:)エラートレースを見た後、内部サーバーエラーは、コード<?php require_once "C:...\Zend\Search\Lucene.php";?>がZendライブラリフォルダーへの相対パスを含む「Lucene.php」内の特定のコードにアクセスしようとしたためです=require_once('Zend\Search\Document\...');そしてサーバーはファイルへのパスがわかりません。修正する必要があったのは、実際には私のphp.iniファイルで、include_pathに追加しまし;C:\php5\pear;C:\Server\www\.....\ZendFramework\libraryた。これで、内部サーバーエラーではなく空のページが表示されます。

+1 @Arend:エラー報告機能は本当に便利です!ありがとう

于 2011-06-07T08:10:54.367 に答える
0

回答にコメントできないので、Maerlynのコードを再利用します。

require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();

self::$zendLoaded = true;self彼女が定義されていないように働くことはできません。

ZFのドキュメントによると、パスが正しく設定されていれば、これらの2行で十分です。

于 2011-06-07T08:21:21.677 に答える
0

Zend のコードは、オートローダーに依存しています。初期化していないためエラーが発生し、Zend_Search_Lucene で存在しないクラスをインスタンス化しようとします。

これでうまくいくはずです:

require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
self::$zendLoaded = true;
于 2011-06-07T05:27:01.110 に答える