我正在运行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服务器错误?感谢。
答案 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文档,如果您的路径设置正确,这两行就足够了。