2

Zend_Search_Luceneでインデックスを作成する際に問題が発生しました。

これで、ローカルマシンですべてが正常に機能するようになったため、Webサーバーのファイル権限に問題があるだけだと思います。

これが私がコントローラーでインデックスを作成しようとしている方法です:

$index = Zend_Search_Lucene::create('/data/users_index');

もちろん、データディレクトリの権限は0777に設定されています。ディレクトリリストは次のとおりです。

public_html
    public      0755
        css     0755
        js      0755
        data    0777

しかし、私はこのエラーを受け取ります:

ディレクトリ'/data/users_index'を作成できません。

4

2 に答える 2

3

Edit/Update:構造をさらに読んで確認した後、ショットを与えてABSOLUTE、書き込み場所への書き込みを確実にするために、相対ではなくパスを使用してみます。申し訳ありませんが、私は以前にその部分を逃しました。これは明らかにベストプラクティスではありませんが、許可/検索の問題であるかどうかを少なくとも絞り込むことができます。

だからそれを次のようなものに変更します

$index = Zend_Search_Lucene::create('/path/to/public_html/public/data/users_index');

ただし、実際には、パブリックHTMLフォルダーの外に配置する必要があります。一般の人がLuceneインデックスファイルにアクセスできるようにする必要がある理由はありません。

たとえば、私のものはここに保存されます:

'../application/models/lucene/articles/index'

Linux / Unixマシンを使用している場合は、Webサーバーが書き込みアクセスできるようにフォルダーまたはCHOWN/CHGRPをCHMODする必要があります。サーバーにアクセスできる場合は、次のコマンドを実行するだけです。

chmod -R 770 /path/to/your/data/users_index

ただし、サーバーの管理者でない場合は、サーバー管理者に、これがこのフォルダーに適用される適切なアクセス許可であることを確認するように依頼する必要があります。すべての管理者は、フォルダーのアクセス許可をどのように設定するかについて独自の癖があります。彼らがどのグループに属するべきか; 誰がそれを変更するのか。等

Windowsマシンを使用している場合は、フォルダーを右クリックしてIUSR_XXXXXアカウントにアクセス許可を付与し、そのフォルダーへの読み取り/書き込みアクセス権を付与する必要があります。(XXXをマシン名に置き換えてください)

于 2009-08-11T15:02:41.887 に答える
0

$ index = Zend_Search_Lucene :: create('public / data / users_index');

??

于 2009-08-11T13:24:46.443 に答える