2009-08-11 11 views
2

J'ai un problème pour créer un index avec Zend_Search_Lucene.Zend_Search_Lucene - Impossible de créer le répertoire '/ data/users_index'

Maintenant, tout fonctionne correctement sur ma machine locale, donc je suppose qu'il y a juste un problème avec les autorisations de fichiers sur le serveur web.

Voici comment je suis en train de créer un index dans le contrôleur:

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

Bien sûr, le répertoire des données a définir des autorisations à 0777. Voici la liste des répertoires:

public_html 
    public  0755 
     css  0755 
     js  0755 
     data 0777 

Pourtant, je 'm obtenir cette erreur:

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

Répondre

3

Edit/Update: Après la lecture et de voir plus de votre structure, je donnerais un coup de feu et essayez d'utiliser un chemin ABSOLUTE plutôt qu'un par rapport à assurer son écriture à l'emplacement d'écriture. Désolé, j'ai raté cette partie plus tôt. Ce n'est évidemment pas la meilleure pratique, mais il faudrait au moins préciser s'il s'agit ou non d'une question de permission/conclusion.

changer donc à quelque chose comme

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

Bien que, vous devriez vraiment mettre cela en dehors du dossier HTML public. Il n'y a aucune raison pour que le public ait accès à vos fichiers d'index Lucene.

Par exemple, le mien sont stockés ici:

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

Si vous êtes sur une machine Linux/Unix, vous allez devoir CHMOD le dossier ou CHOWN/chgrp afin que le serveur Web a un accès en écriture. Si vous avez accès au serveur, vous pouvez simplement lancer:

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

Si vous n'êtes pas l'administrateur du serveur cependant, vous devriez probablement demander à l'administrateur du serveur pour vous assurer que ce sont les autorisations appropriées à appliquer à ce dossier, chaque administrateur a ses propres caprices sur la façon dont ils veulent l'installation des autorisations de dossier; dans quel groupe ils devraient être; qui arrive à le changer;

Si vous êtes sur un ordinateur Windows, vous devrez cliquer avec le bouton droit de la souris sur le dossier et accorder des autorisations au compte IUSR_XXXXX et leur donner accès en lecture/écriture à ce dossier. (Remplacez XXX par le nom de votre machine)

+0

Dans la plupart des applications ZF vous avez un APPLICATION_PATH défini - utilisez-le - APPLICATION_PATH. '/ Models/lucene/articles/index' – gnarf

+0

En fait je l'ai changé en $ index = Zend_Search_Lucene :: create ('data/users_index'); et il fonctionne. Bizarre. Sur ma machine locale ce n'est pas grave si je mets une barre oblique au début ou non ... –

0

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

??

+0

Cela ne marche pas non plus j'ai déjà essayé ça (cela fonctionne aussi sur ma machine locale, mais pas sur le serveur en ligne). –

Questions connexes