2009-08-11 4 views
2

Ich habe ein Problem beim Erstellen eines Indexes mit Zend_Search_Lucene.Zend_Search_Lucene - Kann Verzeichnis '/ data/users_index' nicht erstellen

Nun funktioniert alles gut auf meinem lokalen Rechner, also denke ich, es gibt nur ein Problem mit Dateiberechtigungen auf dem Webserver.

Hier ist, wie ich versuche Index in Controller zu erstellen:

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

Natürlich ist das Datenverzeichnis hat Berechtigungen auf 0777. Dies ist die Verzeichnisliste:

public_html 
    public  0755 
     css  0755 
     js  0755 
     data 0777 

Doch ich bin diesen Fehler:

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

Antwort

3

Edit/Update: Nach dem weiteren Lektüre und Ihre Struktur zu sehen, würde ich es versuchen und versuchen, einen ABSOLUTE Pfad anstatt eine relativ sein Schreiben an die Schreibstelle zu gewährleisten. Entschuldigung, ich habe diesen Teil früher verpasst. Es ist natürlich nicht die beste Vorgehensweise, aber es würde zumindest eingrenzen, ob es sich um ein Erlaubnis/Befund-Problem handelt oder nicht.

es so etwas wie

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

Obwohl, sollten Sie wirklich, dass außerhalb der öffentlichen HTML-Ordner. Es gibt keinen Grund, dass die Öffentlichkeit Zugang zu Ihren Lucene-Index-Dateien haben sollte.

Zum Beispiel Mine werden hier gespeichert:

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

Wenn Sie auf einem Linux/Unix-Maschine sind, werden Sie den Ordner oder CHOWN/chgrp, so dass die Web-Server müssen CHMOD hat Schreibzugriff. Wenn Sie den Zugriff auf den Server haben, können Sie einfach laufen:

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

Wenn Sie jedoch nicht der Administrator des Servers sind, sollten Sie den Server-Administrator bitten, um sicherzustellen, das die richtigen Berechtigungen zu angewendet werden In diesem Ordner hat jeder Admin seine eigenen Macken, wie er Ordner-Berechtigungen einrichten möchte; In welcher Gruppe sollten sie sein? wer kann es ändern? usw.

Wenn Sie sich auf einem Windows-Rechner befinden, müssen Sie mit der rechten Maustaste auf den Ordner klicken und Berechtigungen für das Konto IUSR_XXXXX erteilen und ihnen Schreib-/Lesezugriff auf diesen Ordner erteilen. (Ersetzen Sie XXX durch was auch immer Ihr Maschinen Name ist)

+0

In den meisten ZF-Anwendungen haben Sie einen APPLICATION_PATH definiert - benutzen Sie ihn - APPLICATION_PATH. '/ Models/lucene/articles/index' – gnarf

+0

Eigentlich habe ich ihn in $ index = Zend_Search_Lucene :: create ('data/users_index'); und es funktioniert. Seltsam. Auf meiner lokalen Maschine ist es egal, ob ich am Anfang einen Schrägstrich setze oder nicht ... –

0

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

??

+0

Das funktioniert nicht, ich habe das auch schon versucht (es funktioniert natürlich auch auf meinem lokalen Rechner, aber nicht auf dem Server online). –