2

私はインターネットで多くの情報を検索し、さまざまな提案も試みましたが、必要に応じて何も機能していないようです。ここに問題があります: Zend_Search_Lucene を使用してデータベースで検索を実行したいのですが、最初の段階で立ち往生しています.. Index を作成し、Zend をまったく動作させません。共有 Hostgator ホスト上で、この php コードを使用してインデックスを生成します。

include ('/home/username/public_html/website/config.php');

$path = '/usr/local/Zend';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
require_once ('Zend/Search/Lucene.php');
$index = Zend_Search_Lucene::create('/home/username/public_html/website/tmpbuild');
    $con = mysql_connect("".$dbhost."","".$dbusername."","".$dbpass."");
    if (!$con)
        {
        die('Could not connect: ' . mysql_error());
        }

        mysql_select_db("".$dbname."", $con);

$sql = ('SELECT * FROM rasti_failai');
while($eilute = mysql_fetch_array($sql))
        {
        $filenamesql = $eilute['failu_name'];
        $dydissql = $eilute['dydis'];
        $hostas = $eilute['hostas'];
        $datasql = $eilute['data'];
        $aprasymassql = $eilute['header'];
        $titlesql = $eilute['aprasymas'];
        $url = $eilute['url'];
        $links = $eilute['links'];      

    $document = new Zend_Search_Lucene_Document ();

$document->addField(Zend_Search_Lucene_Field::unIndexed('ID', $eilute['ID']));
$document->addField(Zend_Search_Lucene_Field::Text('failu_name', $eilute['failu_name']));
$document->addField(Zend_Search_Lucene_Field::UnStored('dydis', $eilute['dydis']));
$document->addField(Zend_Search_Lucene_Field::UnStored('hostas', $eilute['hostas']));
$document->addField(Zend_Search_Lucene_Field::UnStored('header', $eilute['header']));
$document->addField(Zend_Search_Lucene_Field::UnStored('aprasymas', $eilute['aprasymas']));
$document->addField(Zend_Search_Lucene_Field::UnStored('url', $eilute['url']));
    $index->addDocument($document);     }
$index->commit();
echo $index->count() . " documents have been indexed.\n";

しかし、次のエラーが発生するため、Zend フレームワークを機能させることができないようです。

Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in /home/username/public_html/website/adminp/lucene.php on line 15

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Loader.php' (include_path='.:/usr/lib/php:/usr/local/lib/php:/usr/local/Zend') in /home/username/public_html/website/adminp/lucene.php on line 15

私のホストにはzendフレームワーク(正確なバージョンはわかりませんが、hostgatorは最新のものを使用していると思いますが、私はphp5を使用していると思います)がインストールされており、サポートは/usr/local/Zendディレクトリにあると言います。

4

2 に答える 2

1

既にインクルード パスを設定しているset_include_path();ので、Zend/ここに示したディレクトリにいます。

$path = '/usr/local/Zend';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once('Zend/Loader.php');

最後の行をこれに変更するとうまくいくと思います:

require_once('Loader.php');

このエラーは、指定したファイルが見つからないことを意味します。

于 2013-03-25T15:07:50.470 に答える
0

わかりました、私はそれを修正しました。誰かがここでどのようにそれを行ったかについての詳細な説明が必要な場合: まず、ダウンローダー zend フレームワーク 1 を使用しました (2 番目のバージョンにはデフォルトで Lucene モジュールが含まれていないため) 次に、このステップバイステップを使用します:

  1. Zend フレームワークをホスティング サーバーにアップロードします (パス: root/library/Zend)

  2. DOCUMENT_ROOT パスを探します

    echo phpinfo();

3. ホスティング アカウントの rood ディレクトリにある php5.ini または php.ini ファイルを作成または更新します。(php5 を使用している場合は、php5.ini ファイルを使用する必要があります)

この行を入力します (既にある場合は、現在のセットの末尾にこの行を追加し、':' で接続します)

include_path = [DOCUMENT_ROOT]/Zend Path

元)include_path = /home/content/m/i/s/misskoreabbq/html/library

zend がうまくインストールされたかどうかをテストするために、zend フレームワークのバージョンを出力してみましょう。

require_once 'Zend/Version.php';
echo 'Your Zend Framework version = ' . Zend_Version::VERSION;
于 2013-03-27T13:50:16.860 に答える