PHP Zend Framework:尝试在浏览器上运行“Lucene.php”时localhost上的内部服务器错误500

时间:2011-06-07 05:21:10

标签: php zend-framework lucene zend-search-lucene

我正在运行Windows 7,我有一个全新的Zend框架安装。在一个名为'search.php'的新php文件中,我试图使用Zend_Search_Lucene构建一个搜索应用程序,第一行是:

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

当我运行此代码时,我在浏览器上看到的是内部服务器错误500 ..我发现每当我尝试在Zend库中运行某些文件时我就会收到此错误,这就是导致错误的原因我在localhost / Zend / Search / Lucene.php,localhost / Zend ... / blabla.php上提到了......错误500 ..

但是,某些文件在浏览器上运行时未显示此500服务器错误。即:localhost / Zend / ProgressBar.php显示一个空页面,这很好,因为我假设代码中没有任何'echo'。这实际上是我在浏览器上运行lucene.php时的预期...

有人可以告诉我这是怎么发生的吗?为什么我会收到内部服务器错误而不是异常?如何检查使用“Lucene.php”文件的搜索应用程序是否正常运行,而不管此内部500服务器错误?感谢。

4 个答案:

答案 0 :(得分:4)

尝试启用错误报告:

动态

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

在php.ini中(可能与php和cli不同)

error_reporting = E_ALL
display_errors = 1

有关详细信息,请参阅:

答案 1 :(得分:1)

我终于解决了问题:)查看错误跟踪后,内部服务器错误是因为代码<?php require_once "C:...\Zend\Search\Lucene.php";?>试图访问“Lucene.php”中包含相对路径的特定代码Zend库文件夹= require_once('Zend\Search\Document\...');,服务器不知道文件的路径。需要修复的是我的php.ini文件,在include_path上我添加了;C:\php5\pear;C:\Server\www\.....\ZendFramework\library ..现在它显示空页而不是内部服务器错误。

+1 @Arend:错误报告功能非常有用!感谢

答案 2 :(得分:0)

Zend的代码依赖于他们的自动加载器。你得到一个错误,因为你没有初始化它,然后在Zend_Search_Lucene中它试图实现一个不存在的类。

这应该可以解决问题:

require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
self::$zendLoaded = true;

答案 3 :(得分:0)

由于我无法评论答案,我重新使用了Maerlyn的代码:

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

self::$zendLoaded = true;无效,因为self未定义她。

根据ZF文档,如果您的路径设置正确,这两行就足够了。