Dateiverwaltung kommt mit Bilddimensionen nicht klar

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

in der datei functions.general.php findest du auf zeile 1379 folgende code-zeile:

Code: Alles auswählen

@exec("convert", $output, $retval);
diese müsste, wenn imagemagick vorhanden ist, für output einen array zurückgeben, der in der ersten position einen string mit folgenden inhalt aufweist (irgendow im string):

Code: Alles auswählen

ImageMagick
du hast ja angegeben, bei dir würde imagemagick nur auf einem bestimmten pfad liegen. ich würde mal versuchen, nur folgenden code in einem separaten script auszuführen und das resultat hier zu posten:

Code: Alles auswählen

<?php
exec("convert", $output, $retval);
echo '<pre>';
var_dump($output);
echo '</pre>';
?>
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

Hallo andreas,

also ich habe mal gerade auf einen anderen Contenido-Webseite den Upload versucht und da hat das auf einmal funktioniert!

Nun habe ich mal schnell ein vergleich gezogen:

Beides CMS 4.6.15 MR
Im System allerdings laufen die beide unter verschiedenen Umgebungen!

hier klappts:
MySQL Serverversion 4.1.19-standard-log
Installierte PHP-Version 4.4.4
safe_mode Deaktiviert
magic_quotes_gpc Deaktiviert
magic_quotes_runtime Deaktiviert
gpc_order GPC
memory_limit 65M
max_execution_time 30
Deaktivierte Funktionen exec,system,passthru,shell_exec,popen,escapeshellcmd,proc_open,proc_nice

hier klappts nicht:
MySQL Serverversion 4.1.7-Max-log
Installierte PHP-Version 5.1.4
safe_mode Deaktiviert
magic_quotes_gpc Deaktiviert
magic_quotes_runtime Deaktiviert
gpc_order
memory_limit 40M
max_execution_time 30
Deaktivierte Funktionen exec,system,passthru,shell_exec,popen,escapeshellcmd,proc_open,proc_nice,ini_restore

Auffällig ist natürlich die PHP-Version und die ini_restore!

So nun weiß ich aber auch gar nicht mehr welche Änderungen ich an den ganzen image-datein, upload-datein, etc. vorgenommen habe. Heißt, ich werde jetzt mal die Datein des funktionierenden CMS auf das andere Überspielen, wenn sich dann nichts ändert weiß ich zumindest, dass ich an den Dateien nichts kaputt gemacht habe. Dann bleibt halt noch die Frage liegt es an der PHP-Version, ander ini_restore, an der gpc_order Angabe (die bei dem einen ja fehlt) oder an das erhöht memory_limit!

Wir kommen der Sache auf die Spur :-)
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

So,

habe jetzt mal den kompletten Inhalt der contenido/includes, bis auf die config.php ersetzt. Keine Änderung!

Also wird es an der Serverumgebung liegen! Was soll ich denn jetzt machen? Mein Provider anrufen und ein Wechsel beantragen? Aber dann werden wir ja nie die wirkliche Ursache finden! Oder soll ich zu Testzwecken noch auf dieser serverumgebung bleiben?!

Ich kann da allerdings programmiertechnisch nicht helfen, sondern nur testen!

Steffen
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

eines ist ja schon einigermassen seltsam. mit deinen einstellungen lässt sich imagemagick nicht verwenden, da weder exec noch system aktiviert sind.

Code: Alles auswählen

Deaktivierte Funktionen exec,system,passthru,shell_exec,popen,escapeshellcmd,proc_open,proc_nice
damit wirst du imagemagick nicht verwenden können.

bei unterschiedlichen servern ist es naheliegend, dass es bei einem funktioniert und beim anderen nicht. das hängt letztlich immer auch davon ab, wieviel speicher jedem prozess maximal zugeteilt wird.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

Was - das ist a eine Schweinerei! Sagen mir ich habe ImageMagick und in Wirklichkeit fehlen mir dazu die nötigen Befehle!

Was denkst du denn? Soll ich das ersteinmal so lassen, mit der Hoffnung das sich hier mit andere Forumnutzer an unserer Diskussion (welche mehr eine Frage -Antwort - Runde ist) beteiligen und wir, bzw. ihr der Sache auf den Grund gehen könnt, oder soll ich den Typen des CMS glücklich machen und mit dem Server umziehen!

Steffen
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

ob du gerade umziehen sollst, überlasse ich mal dir.

wenn sich imagemagick verwenden lassen soll ohne exec oder system, müsstest du entweder...

die Imagick Image Library
oder die MagickWand

verfügen. eines von beiden müsste sich in der phpinfo finden lassen. wenn nicht, dann lässt sich imagemagick aus meiner sicht gar nicht verwenden.

allerdings geht contenido über die konsole. dafür brauchst du auf jeden fall die funktion exec().
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

Also bei beiden Webauftritten kommt nichts davon vor Andreas!

Die Frage ist ja auch eher - warum klappt es bei dem einen Auftritt - und dann kommt die Frage was muss man machen damit es bei der anderen Serverumgebung auch klappt, jetzt unabhängig von ImageMagick!

Aber ich danke Dir janz dolle schon mal.

Steffen
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

das ist einerseits eine frage des speichermanagements. da kann es unterschiede zwischen verschiedenen php-versionen geben. neuer = besser. mindestens gilt das in der regel.

dann wird vom server jedem prozess eine maximalspeicherallokation zugeteilt. diese ist auch nicht notwendigerweise bei beiden gleich. je grösser desto besser. die gd-lib ist relativ schnell; allerdings auch sehr speicherintensiv. typsicherweise wird einem prozess maximal 32 MB zugeteilt. aber das ist providerabhängig. und 32 MB reichen auch bei einer datei mit scheinbar nur 2.5 MB grösse nicht notwendigerweise. nach dem auflösen der graphik in das interne format kann die grösse durchaus auf diesen wert anwachsen.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

Also denkst du nicht das es etwas mit der ini_restore zu tun hat? Was ist denn eigentlich gpc_order?

Komisch ist ja auch nur das die ältere PHP-Version dort ist wo der Upload funktioniert!

Also wird mir wohl nicht übrig bleiben, den Serverumzug vorzunehmen. :-( Schade eigentlich. Sollte es wirklich nur an PHP5 liegen, müßten ja mehrere dies Probleme bekommen.
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

also auf php4 würde ich nicht umziehen. weil die werden demnächst auch auf php5 umsteigen müssen.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

Also gpc_order hat was mit der ini-restore zu tun.

Du meinst hierzu
ich würde mal versuchen, nur folgenden code in einem separaten script auszuführen und das resultat hier zu posten:
einfach eine PHP-Datei auf meiner Webseite hochladen und aufrufen oder soll ich das als Moduloutput irgendwo anlegen?
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

das wäre nur gewesen, um herauszufinden, ob imagemagick funktioniert oder nicht. aber das ist geklärt, wenn exec() deaktiviert ist.

gpc_order legt fest, in welcher reihenfolge die request-parameter abgearbeitet werden g für GET, p für POST und c für Cookies (=gpc). das hat aber gar nichts mit deinem problem zu tun.

auch mit der ini-restore hat das meiner meinung nach nichts zu tun. du hast einfach nicht ausreichend speicher, um die bildverkleinerung durchzuführen. ist zwar nur eine vermutung, aber eine sehr naheliegende. daran kannst du selber nichts ändern. entweder dein provider teilt dir mehr zu oder es wird nicht funktionieren. aber du wirst so das problem ohnehin nicht endgültig lösen können, da das problem spätestens dann wieder auftritt, wenn die bilder noch grösser werden. wenn du die bilder roh hochlädst, werden sie in zukunft durchaus noch grösser werden (ich denke da z.b. an die neusten kameras, die bereits 14 mpx leisten).

ohne imagemagick (und das ist glaube ich inzwischen gesetzt), wirst du die bildverkleinerung von sehr grossen bildern nicht hinkriegen.

wenn du das problem effektiv lösen willst, dann passt du die bildverkleinerung dahingehend an, dass vor dem versuch es zu verkleinern die bildmasse herausgefunden werden. falls diese zu gross sein sollten, gibtst du ein alternativ-bild aus.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

Hallo Andreas,
wenn du das problem effektiv lösen willst, dann passt du die bildverkleinerung dahingehend an, dass vor dem versuch es zu verkleinern die bildmasse herausgefunden werden. falls diese zu gross sein sollten, gibtst du ein alternativ-bild aus.
das Problem besteht dann aber immer noch in der Bildergalerie oder in generell verkleinerten Bildern.

So ein Ding!

Ich habe gerade mal ein 8.3 MB großes Bild in der CMS-Seite hochgeladen wi es funktioniert und da hat es tatsächlich funktioniert!

Na gut, wie es ausschaut komme ich da wirklich nicht weiter!

Eigenartig ist allerdings auch das ich im Internet was gefunden habe von meinem Provider All Inkl + Image Magick bei Typo3, hier sagen die auch das man den Pfad zu den Bildern anpassen soll! Aber in der config.php finde ich solch eine Pfad nicht :-(
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

beschreiben die auch, wie man imagemagick verwenden soll? wenn exec() und system() deaktiviert sind, müsste man eine api zur verfügung haben.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen »

nein, das beschreiben die leider nicht!
Beim “Tüpho3 Install Tool” musst du noch den Pfad zu ImageMagick angeben (...)Dafür begibst du dich im Menüpunkt “All Configuration” zu “[im_path]” und ersetzt den bestehenden Pfad durch: /usr/bin/convert
Sie arbeiten aber dann auch mit: "AddHandler php-fastcgi .php .php4"

Naja! Aber ich bin der Sache jetzt anders etwas näher gekommen:

Mit "AddHandler php-cgi .php .php4 .php5" in der htaccess klappt es!

Ist echt ein Ding!

Folgendes Szenario: htaccess mit AddHandler -> Bilder klappen und werden verkleinert.
1. AddHandler rausgenommen -> Kann Bilder in dem Ordner wo sich bereits die verkleinerten Bilder dank AddHandler befinden neue hochladen -> diese werden auch verkleinert.

2. AddHandler rausgenommen -> Lade ich ein Bild in einen Ordner hoch indem keine, dank AddHandler, Bilder sich befinden, welcher aber schon während der Zeit des AddHandlers bestanden hat -> kann ich Bilder hochladen, diese werden aber nicht verkleinert -> weiße Seite

3. AddHandler rausgenommen -> Lade ich ein Bild in einen neuen, gerade erstellten Ordner hoch -> kann ich Bilder hochladen, diese werden aber nicht verkleinert -> weiße Seite

Ist das denn eventuell eine Datenbanksache?

Zusammenfassung: In einem Ordner indem sich ein verkleinertes Bild befindet, welches mit AddHandler php-cgi .php .php4 .php5 erstellt wurde, kann ich mit rausgenommenen AddHandler wunderbar 8MB große Bilder hochladen!
Gesperrt