繁体   English   中英

PHP Zend 框架:尝试在浏览器上运行“Lucene.php”时,本地主机上出现内部服务器错误 500

[英]PHP Zend Framework: Internal Server Error 500 on localhost when trying to run “Lucene.php” on browser

我正在运行 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 上的错误 500..

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

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

尝试开启错误报告:

在飞行中

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

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

error_reporting = E_ALL
display_errors = 1

有关更多信息,请参阅:

我终于解决了问题:)查看错误痕迹后,内部服务器错误是因为代码<?php require_once "C:...\Zend\Search\Lucene.php";?>试图访问特定的"Lucene.php" 中的代码包含 Zend 库文件夹的相对路径 = require_once('Zend\Search\Document\...'); 并且服务器不知道文件的路径。 What needed to be fixed was actually my php.ini file, on the include_path i added ;C:\php5\pear;C:\Server\www\.....\ZendFramework\library ..Now it shows empty page instead内部服务器错误。

+1 @Arend:报错 function 真的很有用! 谢谢

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

这应该可以解决问题:

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

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

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

self::$zendLoaded = true; 不能工作,因为self没有定义她。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM