Seite 1 von 1

upload und safemode = on

Verfasst: Fr 5. Feb 2010, 12:41
von stetson79
Hallo Community!

Ich arbeite gerade an einem Projekt, wo der Server auf safemode on gestzt ist und der Admin des Kunden dies auch beibehalten möchte.
Ich bekomme nun bei dem Versuch Bilder zu uploaden folgende Fehlermeldung ausgegeben und kann Bilder nur über FTP und nicht über das Uploadscript hochladen.

Code: Alles auswählen

Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10021 is not allowed to access url/httpdocs/cms/upload/bilder owned by uid 33 in /var/url/httpdocs/contenido/includes/include.upl_files_overview.php on line 298


((Die eigenliche url habe ich hier durch "url" ersetzt.))

Hat jemand eine Idee, dieses Script lauffähig für safemode on zu machen?

Vielen Dank schonmal und viele Grüße!

Re: upload und safemode = on

Verfasst: Fr 5. Feb 2010, 13:36
von Oldperl
Hallo stetson79,

erst einmal willkommen im Contenido Forum. :-)

Das ist nur über eine Anpassung der Servereinstellungen oder einen FTP-Hack der Uploadfunktionen von Contenido möglich.
Der FTP-Hack ist nicht ungefährlich, da dabei der Username und das Passwort für den FTP-Zugang irgendwo hinterlegt werden muss. Das empfehle ich nur, wenn man einen extra FTP-User mit reinem Zugang zum Upload anlegen kann.

Eine Möglichkeit das im Script anders zu lösen kenne ich nicht, wäre aber auch unlogisch, da sie ja dem Konzept des safe_mode wiedersprechen würde, wenn jeder sein PHP-Script so schreiben könnte, das der safe_mode umgangen wird.

Du müsstest halt die Verzeichnisse auch gleich per Script anlegen, dann sollte der Dateimanager keine Probleme mehr haben.

Gruß aus Franken

Ortwin

Re: upload und safemode = on

Verfasst: Mo 1. Mär 2010, 13:55
von stetson79
Vielen Dank für die Antwort!

Leider besteht das Problem weiterhin und kommt jetzt richtig zum tragen:

Bei der Ausgabe einer Kategorie durch ArticleListAdvance 1.4 auf einem 4.8.12 Contenido.
Das Bild des Artikels wird in der Artikelliste nicht ausgeben, anstatt dessen kommt eine Fehlermeldung:

Code: Alles auswählen

Warning: getimagesize() [function.getimagesize]: Unable to access /var/www/vhosts/****/subdomains/****/httpdocs/cms/upload/bilder/referenzbeispiel.jpg in /var/www/vhosts/****.de/subdomains/****/httpdocs/cms/front_content.php(983) : eval()'d code on line 675

Warning: getimagesize(/var/www/vhosts/****.de/subdomains/****/httpdocs/cms/upload/bilder/referenzbeispiel.jpg) [function.getimagesize]: failed to open stream: No such file or directory in /var/www/vhosts/****.de/subdomains/****/httpdocs/cms/front_content.php(983) : eval()'d code on line 675
(URLs sind durch **** anonymisiert)

Ich habe bereits den ModulCode so angepasst wie von Herrn B. http://forum.contenido.org/viewtopic.ph ... ced#p85594 im Forum beschrieben.

Ich vermute aber stark, dass durch den FTP-Upload einige Variablen flöten gehen und es trozdem nicht klappt!

Es wäre natürlich genialst, falls einer hier im Forum doch noch ne Idee hätte ....

Beste Grüße

Stetson

Re: upload und safemode = on

Verfasst: So 8. Jan 2012, 17:58
von derernst
Ich muss gestehen, ich finde das unverständlich... Auch das völlige Freigeben der Ordner schafft hier keine Abhilfe. Ich habe Zeile 441 der Datei functions.upl.php entsprechend geändert:

Code: Alles auswählen

@mkdir($cfgClient[$client]['upl']['path'].$path.$name,0777);
So legt Contenido die Verzeichnisse mit CHMOD 777 an. Trotzdem kann ich danach über die Dateiverwaltung nichts in dem Ordner machen, weder Dateien hochladen noch weitere Unterordner anlegen.

Wenn ich dagegen den Unterordner über FTP anlege und mit 777 chmode, kann ich nachher über die Dateiverwaltung Bilder reinladen.

Was ich nicht verstehe: Wenn ich ein Verzeichnis über die Dateiverwaltung anlege, macht dies ja vom Server aus gesehen der gleiche User, der danach auch die Datei hochlädt. Es macht überhaupt keinen Sinn, wenn Safe-Mode das verhindert. :|

Ich nehme an, der Grund dafür ist, dass das Upload-Verzeichnis selbst per FTP hochgeladen wurde, so dass Unterverzeichnisse dem FTP-User zugeschrieben werden, auch wenn sie mit PHP erstellt wurden. Wieso dann auch CHMOD 777 nichts hilft, versteht vielleicht jemand, der mit Servern besser vertraut ist als ich.

Falls dieses Dilemma nicht lösbar ist, fände ich es angebracht, die Option "Erstelle Verzeichnis in..." gar nicht anzubieten, falls Safe-Mode an ist, und statt dessen evtl. einen Hinweis anzubringen, dass Unterverzeichnisse leider nur per FTP erstellt werden können. Denn wir alle, die auf Shared-Hosting angewiesen sind, können ja an der Server-Konfiguration nichts schrauben.

Re: upload und safemode = on

Verfasst: So 8. Jan 2012, 18:54
von Oldperl
derernst hat geschrieben:Falls dieses Dilemma nicht lösbar ist, fände ich es angebracht, die Option "Erstelle Verzeichnis in..." gar nicht anzubieten, falls Safe-Mode an ist, und statt dessen evtl. einen Hinweis anzubringen, dass Unterverzeichnisse leider nur per FTP erstellt werden können. Denn wir alle, die auf Shared-Hosting angewiesen sind, können ja an der Server-Konfiguration nichts schrauben.
Da das entsprechende Verhalten weder bei allen Shared-Hosting-Angeboten zutrifft noch überall Safe-Mode, welcher ab PHP > 5.3 sowieso als deprecated gekennzeichnet ist, eingeschaltet ist, kann ich deinen Ausführungen nicht zustimmen. Es liegt hier offensichtlich an User/Groups bzw. deren Zuordnung auf dem Server, und sind diese richtig konfiguriert funktioniert auch alles korrekt.
Leider wird man bei vielen (kostengünstigen) Shared-Hosting-Angeboten auch auf Nachfragen damit allein gelassen, was definitiv nicht ok ist, es gibt aber sehr wohl entsprechende Angebote bei denen Alles funktionierend konfiguriert ist. Man sollte daher über einen Wechsel nachdenken falls der Provider, auch auf Nachfragen, nicht entsprechend reagiert.

Gruß aus Franken

Ortwin