2011-06-07 26 views
0

我正在運行Windows 7,並且我安裝了全新的Zend框架。在所謂的「search.php中」一個新的PHP文件,我試圖建立使用Zend_Search_Lucene把第一線是一個搜索應用程序:PHP Zend Framework:試圖在瀏覽器上運行「Lucene.php」時在本地主機上發生內部服務器錯誤500

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

我在瀏覽器上看到,當我運行這段代碼是內部服務器錯誤500 ..然後我發現,每當我嘗試運行Zend庫中的一些文件時,我得到這個錯誤,這是什麼導致了我提到的錯誤..ie localhost/Zend/Search/Lucene.php上的錯誤500,本地主機/Zend.../blabla.php ..

但是,某些文件在瀏覽器上運行時未顯示此500服務器錯誤。即:localhost/Zend/ProgressBar.php顯示一個空白頁面,這很好,因爲我假設代碼中沒有任何'回顯'。這實際上是我在瀏覽器上運行lucene.php時的預期...

有人可以讓我知道這會發生嗎?爲什麼我會得到內部服務器錯誤而不是異常?如何檢查使用「Lucene.php」文件的搜索應用程序是否正常運行,而不管這個內部500服務器錯誤?謝謝。

回答

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:錯誤報告功能非常有用!感謝

0

Zend的代碼依賴於它們自動加載。你會得到一個錯誤,因爲你沒有初始化它,然後在Zend_Search_Lucene中嘗試實例化一個不存在的類。

這應該做的伎倆:

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

我把你的代碼添加到我的php文件中,它仍然會拋出相同的內部服務器錯誤。但是,就像我說的,Loader.php本身在瀏覽器上運行正常(顯示白色空白頁面) – 2011-06-07 06:45:25

+0

Loader本身只是定義這個班級,別無其他。難怪它有效(用http 200顯示一個空的白頁)。啓用display_errors並重試。 – Maerlyn 2011-06-07 15:34:29

0

正如我不能評論的答案,我再利用Maerlyn代碼:

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

self::$zendLoaded = true;不能爲self工作沒有定義她。

根據ZF文檔,如果您的路徑設置正確,這兩行應該足夠了。

相關問題