Zum Inhalt springen

Probleme mit ImageMagick

Erstellt am 5. Juli 2007 · 11 Antworten · letzte Antwort am 6. Juli 2007

Tags: Frage

tiggalot ·

Habe auf meinem Slackware Server ImageMagick 6.3.2 installiert und die einzelnen Programme convert, composite und identify sind unter /usr/bin direkt aufrufbar und funktionieren. Im Install Tool von Typo bekomme ich unter Basic Configuration allerdings folgende Meldung

No ImageMagick installation available
It seems that there is no adequate ImageMagick installation available at the checked locations (/usr/X11R6/bin/, /usr/bin/, /usr/local/bin/)
An 'adequate' installation for requires 'convert', 'combine'/'composite' and 'identify' to be available

Habe erst erfolglos versucht im Install Tool /usr/bin/ als entsprechenden Pfad anzugeben und danach die localconf.php bearbeitet.

$TYPO3_CONF_VARS['GFX']['im'] = '1';
$TYPO3_CONF_VARS['GFX']['im_path'] = '/usr/bin/';
$TYPO3_CONF_VARS['GFX']['im_combine_filename'] = 'composite';
$TYPO3_CONF_VARS['GFX']['im_version_5'] = 'im6';
$TYPO3_CONF_VARS['GFX']["im_path_lzw"] = '';
$TYPO3_CONF_VARS['GFX']['gif_compress'] = '0';

Unter Punkt 4 im Install Tool bekomme ich bei den Tests 1-4 immer die Meldung das der Test übersürungen wurde, unter Punkt 5, in Kombination mit GD wird zumindest der convert Befehl scheinbar fehlerfrei ausgeführt.

Hat irgendwer noch ´ne Idee dazu?

contentXXS ·

Hallo,

wenn PHP Kenntnisse vorhanden sind, würde ich die
/typo3/sysext/install/mod/class.tx_install.php all.php
mal debuggen.

Die Meldung kommt aus der Zeile 1830 (bei TYPO3 4.1.1).

Die Meldung kommt dann wenn die Bedingung aus Zeile 1816 *nicht* gilt:

if (count($index[$v])>=3 || $index[$v]['gm']) { $this->config_array['im']=1; }

Dahinter vielleicht so etwas:
echo "count(index[v])=" . count($index[$v]) ."<br>";
echo "index[v]['gm']= " . $index[$v]['gm'] . "<br>";

Das sollte dann bei installiertem IM und nicht installiertem GM liefern:
count(index[v])=3
index[v]['gm']=

Grüße,

Ralph

tiggalot ·
contentXXS schrieb

wenn PHP Kenntnisse vorhanden sind

Sind leider nicht :o
Wie und wo muß ich das denn einbauen? in die if Schleife oder einfach dahinter setzen?

contentXXS ·
tiggalot schrieb

Wie und wo muß ich das denn einbauen? in die if Schleife oder einfach dahinter setzen?

Hinter die Zeile.

So war es:

if (count($index[$v])>=3 || $index[$v]['gm']) { $this->config_array['im']=1; }

So soll es sein:

if (count($index[$v])>=3 || $index[$v]['gm']) { $this->config_array['im']=1; }
echo "count(index[v])=" . count($index[$v]) ."<br>";
echo "index[v]['gm']= " . $index[$v]['gm'] . "<br>";

Und die Datei davor aber sichern!

Grüße,

Ralph

tiggalot ·

Ok, hab ich gemacht, hilft aber leider nicht.
Bekomme nun im Install Tool auf den konfigurationsseiten jeweils folgendes ganz oben links angezeigt

count(index[v])=0
index[v]['gm']=
count(index[v])=1
index[v]['gm']=
count(index[v])=1
index[v]['gm']=
count(index[v])=2
index[v]['gm']=

contentXXS ·

Hallo,

ja helfen tut das nichts, aber es gibt den Grund aus warum das TYPO3 Installtool mit IM nicht arbeiten mag. Es werden keine der IM Komponenten gefunden.

Wenn du schreibst, dass die Dateien unter /usr/bin/ liegen, also vorhanden sind, dann kann es nur an den Rechten liegen.

Sind die IM Komponenten denn für den Webserver lesbar? Vielleicht hat das Verzeichnis oder haben die Dateien keine Rechte für den Webserver?

Zur weiteren Eingrenzung kannst du noch das ändern:

Alt:
$version = $this->_checkImageMagick_getVersion($filename,$v);

Neu:
$version = $this->_checkImageMagick_getVersion($filename,$v);
echo "Version [$filename]=$version<br>";

Das müsste so etwas liefern:
Version [convert]=6.2.4
Version [composite]=6.2.4
Version [identify]=6.2.4

Grüße,

Ralph

tiggalot ·

Ok, bekomme nun die Versionen angezeigt. Sieht soweit ja gut aus.

Version [identify]=6.3.2
Version [convert]=6.3.2
Version [composite]=6.3.2

Nachdem ich mittels chown und chgrp herumexperimentiert habe und aktuell den Ordner /usr/bin/ rekursiv dem www user zugesprochen habe, hat sich an der Gesamtsituation nichts geändert 🙁

contentXXS ·

Hallo,

das sieht eigentlich gut aus. Es werden deine drei IM Binaries gefunden.
Da für die Ermittlung der Versionen IM aufgerufen wird, sind diese nun auch ausführbar. Sonst würde die Version leer bleiben.

Kommt jetzt immer noch der Fehler 'No ImageMagick installation available'?

Das sollte ja nun nicht mehr passieren!

Dies beiden Zeilen (die zweite ist abgewandelt):

echo "count(index[v])=" . count($index[$v]) ."<br>";
echo "this->config_array['im']=" . $this->config_array['im']=1 . "<br>";

Sollten dann liefern:

count(index[v])=3
this->config_array['im']=1

Und dann sollte es auch mit der IM Konfiguration weiter gehen.

Grüße,

Ralph

tiggalot ·

Ok, in der Konfiguration wird nun alles als richtig anerkannt.

Available ImageMagick/GraphicsMagick installations:
/usr/bin/ identify 6.3.2
/usr/local/bin/ convert 6.3.2
composite 6.3.2

Das es plötzlich convert und composite in /usr/local/bin findet überrascht mich allerdings irgendwie, ist allerdings schnell in der Koniguration angepasst und nun läuft alles soweit.
Vielen dank 😃

MfG
Thomas

contentXXS ·

Hi Thomas,

tiggalot schrieb

und nun läuft alles soweit.
Vielen dank 😃

Na, das ist doch schön und das Wochenende gerettet.

Handelt es sich dabei um einen Testserver oder etwas produktives?

Für /usr/bin den Besitzer rekursiv auf den Apache zu setzen ist zumindest gefährlich.

Ralph

tiggalot ·

Im Moment ist es ein Testrechner, soll aber evtl. irgendwann mal ins Netz gestellt werden.

Es reicht allerdings auch aus den IM Programmen den www-user zuzuweisen.

contentXXS ·
tiggalot schrieb

Es reicht allerdings auch aus den IM Programmen den www-user zuzuweisen.

Das würde ich doch auch meinen.

Viel Spaß damit,

Ralph