2009-08-11 10 views
2

Zend_Search_Luceneでインデックスを作成する際に問題があります。Zend_Search_Lucene - ディレクトリ '/ data/users_index'を作成できません

これで、すべてローカルマシンで正常に動作するので、Webサーバー上のファイルのアクセス許可に問題があると思います。ここで

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

もちろん
$index = Zend_Search_Lucene::create('/data/users_index'); 

データディレクトリがここ0777.に設定されたアクセス権を持っているディレクトリのリストは以下のとおりです。

public_html 
    public  0755 
     css  0755 
     js  0755 
     data 0777 

しかし、私'このエラーになっM:

Can't create directory '/data/users_index'.

答えて

3

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

ので

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

が、のようなものに変更し、あなたが本当にパブリックのHTMLフォルダの外に置く必要があります。大衆があなたのLucene Index Filesにアクセスする必要はありません。例えば、鉱山は、ここで

を格納されます。

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

あなたは、Linux/Unixマシン上にある場合は、WebサーバーようにフォルダまたはCHOWN/chgrpコマンドをchmodのために持ってしようとしています書き込みアクセス権を持っています。あなたは、サーバーへのアクセス権を持っている場合は、単純に実行することができます:

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

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

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

+0

ほとんどのZFアプリケーションでは、APPLICATION_PATHが定義されています - APPLICATION_PATH '/ models/lucene/articles/index' – gnarf

+0

実際に$ index = Zend_Search_Lucene :: create( 'data/users_index')に変更しました。それは動作します。奇妙な。私のローカルマシンでは、最初にスラッシュを入れてもいいかどうかは関係ありません... –

0

$インデックスを=のZend_Search_Lucene ::作成(' 公開/データ/ users_index」 );

??

+0

それは私がすでにそれを試してみました(私のローカルマシンでも動作しますが、もちろんサーバー上では動作しません)。 –

関連する問題