0

我正在运行 Windows 7,并且我全新安装了 Zend 框架。在一个名为“search.php”的新 php 文件上,我正在尝试使用 Zend_Search_Lucene 构建一个搜索应用程序,第一行是:

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

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

但是,某些文件在浏览器上运行时并未显示此 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";?>尝试访问“Lucene.php”中的特定代码,该代码包含 Zend 库文件夹的相对路径 =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

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

这应该可以解决问题:

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

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

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

self::$zendLoaded = true;不能像self没有定义她那样工作。

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

于 2011-06-07T08:21:21.677 回答