hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt werden

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt werden

Post by kmsmei » Mon Sep 15, 2014 9:00 am

Hallo mal wieder nach langer Zeit.

Upgrade gerade einige Projekte nach 1.6 und stolpere bei der Einbindung vom hi_kcfinder: Bild einfügen --> Durchsuchen ==> Fehlermeldung: Ordner Userfiles kann nicht angelegt werden.

Kann aber wohl nicht sein, denn:
System-Check
hi_KCFinder Version: 2.0.1
Build: 2014020701
CMSimple_XH-Version: 1.6.2
PHP-Version: 5.4.4-14+deb7u14
Extension "gd" installed
Extension "mbstring" installed
Extension "pcre" installed
Extension "session" installed
Extension "SPL" installed
Folder "./userfiles/" is writeable
Folder "./userfiles/images/" is writeable
Folder "./userfiles/downloads/" is writeable
Folder "./userfiles/media/" is writeable

Hat jemand eine Idee, was ich da übersehe? Bin nach ein paar Versuchen inzwischen wohl betriebsblind...

Gruß Frank

manu
Posts: 1090
Joined: Wed Jun 04, 2008 12:05 pm
Location: St. Gallen - Schweiz
Contact:

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by manu » Mon Sep 15, 2014 9:07 am

Hallo Frank
Auf den ersten Blick sehe ich auch nichts.
Hast Du mal den Cache gelöscht? hi_kcfinder ist ja ziemlich AJAX lastig.
Gruss
manu

kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by kmsmei » Mon Sep 15, 2014 9:23 am

Hallo Manu,

Versuch war's wert - Danke! Aber leider: Browser auf Auslieferungszustand zurückgesetzt, Pop-Up-Blocker bekämpft, gleiches Fehlerbild.

Am aufgerufenen Pfad kann ich auch nichts besonderes entdecken:

Code: Select all

http://www.sn.schule.de/~kmsmei/cms16/plugins/hi_kcfinder/kcfinder/browse.php?opener=tinyMCE&prefix=./&lang=de&thumbdir=userfiles/images/.thumbs&type=image&dir=userfiles/images/
VG Frank

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by cmb » Mon Sep 15, 2014 11:34 am

Hallo Frank,

zunächst mal gibt es einen Bug in CMSimple_XH 1.6.2, wo der normale Filebrowser andere Filebrowser blocken kann. Daher deaktiviere (plugins/filebrowser/ -> plugins/.filebrowser/) oder deinstalliere den Filebrowser am besten. Dann noch mal den Browser-Cache löschen; vielleicht funktioniert es dann.

Ansonsten könnte ich mir vorstellen, dass das Problem durch das Userdir (~kmsmei) verursacht wird. Diesbezüglich wurden ja schon Probleme beim Upload behoben; vielleicht müsste da aber noch nachgebessert werden.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by kmsmei » Mon Sep 15, 2014 6:08 pm

Hallo Christoph,

an die alte UserDir-Geschichte hatte ich auch schon gedacht. Scheint aber nicht die Ursache zu sein.

Habe das ganze jetzt mal auf eine Testumgebung gebracht, die diese Sorge nicht hat und bin keinen Schritt weiter. Habe aber das Gefühl, dass sich irgendwo Variablen beißen, da in der neuen Testumgebung die "Beschwerde" dahin geht, dass er den Thumbnails-Ordner nicht erstellen oder beschreiben kann und das bei einem Link der mir absolut nicht einleuchtet, denn der verweist auf das auch mit deiner Hilfe selbstgestrickte Pixlie2.0-PlugIn:

Code: Select all

http://***.de/_cms16/plugins/hi_kcfinder/kcfinder/browse.php?opener=tinyMCE&prefix=./&lang=de&thumbdir=plugins/pixlie/upload/images/.thumbs&type=image&dir=plugins/pixlie/upload/images/
Da das auch noch passiert, nachdem ich das PlugIn rausgenommen habe, mache ich mich jetzt mal auf die Suche in diversen Konfigurationsfiles, die ich von einer 1.5.x-Umgebung mit übernommen habe - irgendwo muss da was verborgen sein.

Melde mich wieder.
Gruß Frank

kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by kmsmei » Mon Sep 15, 2014 6:23 pm

OK, beim Schreiben fängt man an zu denken und mal wieder saß der Fehler 50cm vor dem Computer :oops: . Die Pfade in Einstellungen / CMS waren in meinem 1.5, dass ich als Basis genommen hatte, verbogen. Schlimm genug, denn jetzt läuft der kcfinder, womit das Thema UserDir wieder aus der Versenkung auftaucht. Ich experimentiere mal ein wenig weiter - vom Tisch ist das Problem damit wohl noch nicht.
Gruß Frank

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by cmb » Mon Sep 15, 2014 6:52 pm

kmsmei wrote:Ich experimentiere mal ein wenig weiter - vom Tisch ist das Problem damit wohl noch nicht.
Du solltest Dir zur Kontrolle mal die Session anschauen, denn dort legt der hi_kcfinder ja eine Reihe von Variablen an. Den relevanten Teil der Session kannst Du Dir wie folgt anzeigen lassen:

Code: Select all

session_start(); echo '<pre>'; print_r($_SESSION['KCFINDER']); echo '</pre>';
(den Code kannst Du z.B. zu Beginn von cmsimple/cms.php einfügen)

Da müsste u.a. folgendes angezeigt werden:

Code: Select all

[dirImages] => userfiles/images/
Und dann überprüfe mal das uploader::typeDir; dazu in plugins/hi_kcfinder/kcfinder/core/uploader.php Zeile 265ff wie folgt:

Code: Select all

        // CHECK & CREATE UPLOAD FOLDER
var_dump($this->typeDir); // diese Zeile einfügen
        if (!is_dir($this->typeDir)) {
Dann sollte oben im Filebrowser der Pfad angezeigt werden; würde mich nicht wundern, wenn dieser falsch ist, d.h. auf einen Ordner zeigt, der nicht existiert. Falls das so ist, müsste man da mal weiter suchen -- ansonsten woanders.

PS: Gerade habe ich plugins/hi_kcfinder/kcfinder_init.php folgendes entdeckt (Zeile 48ff):

Code: Select all

    //experimental: look vor a userDir...
    $hi_kcfUserdir = dirname($_SERVER['SCRIPT_FILENAME']) . '/';
    if (strpos($hi_kcfUserdir, '~')) {
        $_SESSION['KCFINDER']['uploadDir'] = str_replace('index.php', '', str_replace('/' . $sl . '/', '/', $hi_kcfUserdir));
    }
Die Abfrage (strpos($hi_kcfUserdir, '~')) sieht mir fraglich aus -- im SCRIPT_FILENAME kommt doch auch bei Dir kein ~ vor, oder (siehe PHP-Info)? Probier doch einfach mal, was passiert, wenn Du folgenden Code statt dessen verwendest:

Code: Select all

    //experimental: look vor a userDir...
    $hi_kcfUserdir = dirname($_SERVER['SCRIPT_FILENAME']) . '/';
    $_SESSION['KCFINDER']['uploadDir'] = str_replace('index.php', '', str_replace('/' . $sl . '/', '/', $hi_kcfUserdir));
Christoph M. Becker – Plugins for CMSimple_XH

Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by Holger » Tue Sep 16, 2014 10:13 am

Hallo Christoph,
cmb wrote:Die Abfrage (strpos($hi_kcfUserdir, '~')) sieht mir fraglich aus -- im SCRIPT_FILENAME kommt doch auch bei Dir kein ~ vor,
Im SCRIPT_FILENAME nicht, aber im dirname($_SERVER['SCRIPT_FILENAME']) doch schon?

Die Kontrolle der Session-Variablen, wie oben beschrieben, sollte aber etwas Licht bringen.

LG
Holger

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by cmb » Tue Sep 16, 2014 11:07 am

Holger wrote:Im SCRIPT_FILENAME nicht, aber im dirname($_SERVER['SCRIPT_FILENAME']) doch schon?
Ich bin gar nicht mal sicher, was allgemein in SCRIPT_FILENAME steht. CGI spezifiziert diese Variable nicht. Das PHP-Handbuch sagt: "Der absolute Pfad des aktuell ausgeführten Skripts." Das würde ich in Verbindung mit dem Namen der Variablen als Dateipfad (nicht URL-Pfad) interpretieren. Und zumindest in Franks Fall war das auch tatsächlich so.

Bei UserDirs ist es aber wohl üblich, dass die URL auf eine Datei im jeweiligen User-Ordner gemappt wird, also z.B. http://example.com/~cmb/index.php auf /home/cmb/www/index.php. (Siehe auch http://httpd.apache.org/docs/current/ho ... _html.html.) Da wäre also nicht notwendigerweise ein ~ enthalten.

Um sicher zu stellen, dass $_SESSION['KCFINDER']['uploadDir'] nur für UserDir-Installation gesetzt wird, könnte man vielleicht REQUEST_URI prüfen:

Code: Select all

if (isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '/~') !== false)) {
Allerdings weiß ich nicht, ob es auch Server gibt, die REQUEST_URI nicht setzen, aber dennoch UserDirs ermöglichen.

PS: dirname() arbeitet soweit ich weiß nur mit dem übergebenem String (ohne weiteren Zugriff aufs Dateisystem). Da müsste ggf. noch realpath() verwendet werden.
Christoph M. Becker – Plugins for CMSimple_XH

kmsmei
Posts: 93
Joined: Tue Nov 03, 2009 9:03 am

Re: hi_kcfinder 1.6+ Ordner Userfiles kann nicht angelegt we

Post by kmsmei » Mon Sep 22, 2014 3:30 pm

Hallo Christoph, hallo Holger,
erst mal Danke für die Tipps. Jetzt ist glücklicherweise mal wieder Zeit, dass ich mich ran setze - schau' mer ma:
cmb wrote: Du solltest Dir zur Kontrolle mal die Session anschauen, denn dort legt der hi_kcfinder ja eine Reihe von Variablen an. ... Da müsste u.a. folgendes angezeigt werden:

Code: Select all

[dirImages] => userfiles/images/
Hm, das ist unauffällig.

Code: Select all

[uploadURL] => /~kmsmei/cms16/
[types] => Array
        (
            [userfiles] => 
        )

    [thumbsDir] => userfiles/images/.thumbs
    [dirImages] => userfiles/images/
    [dirDownloads] => userfiles/downloads/
    [dirMedia] => userfiles/media/
cmb wrote: Und dann überprüfe mal das uploader::typeDir; dazu in plugins/hi_kcfinder/kcfinder/core/uploader.php Zeile 265ff wie folgt:...
Da liegt der Hase im Pfeffer: var_dump gibt aus:

Code: Select all

"/export/htdocs/~kmsmei/cms16/userfiles"
der Unix-Pfad ist aber:

Code: Select all

/export/autoren/kmsmei/www/cms16/userfiles
cmb wrote: PS: ... Probier doch einfach mal, was passiert, wenn Du folgenden Code statt dessen verwendest:

Code: Select all

    //experimental: look vor a userDir...
    $hi_kcfUserdir = dirname($_SERVER['SCRIPT_FILENAME']) . '/';
    $_SESSION['KCFINDER']['uploadDir'] = str_replace('index.php', '', str_replace('/' . $sl . '/', '/', $hi_kcfUserdir)); 
Spannend: var_dump liefert prinzipiell den richtigen Pfad,
/export/autoren/kmsmei/www/cms16/userfiles
der KCFinder baut Fenster und Layout auf und meldet in den Fenstern "Unbekannter Fehler".
Versuche ich eine Bilddatei hochzuladen, meldet er, "Kann nicht in den upload-Ordner schreiben. Die stehen wie gehabt auf 777 - das kann es also nicht sein.

Vermute mal, das es irgendwo noch so eine Stelle gibt, wie eben... Ansonsten kann ich mir beim besten Willen keinen Reim mehr drauf machen - da hört mein php-Verständnis auf.

Viele Grüße
Frank

Post Reply