Brauche Hilfe zu ImageMagick mit Safe_mod on

andreas_63

Registered User
Hallo,
Als erstes mein System:
1und1 Root Server
Suse 10.1
PHP 5.2.1
MySql 5
Plesk 8.2.1
Image Magick 4.2.9
um letzteres geht es.
Habe mir diese Version heruntergeladen, da diese besser mit Typo3 umgehen kann, bzw. umgekehrt.
Problem:

Betreibe das jeweilige Hosting mit safe_mod on
Damit ImageMagick von Typo3 gefunden werden kann, habe ich folgendes gemacht:
Unter
/srv/www/vhosts/domain-web.com/conf
eine vhost.conf mit folgendem Inhalt angelegt:

<Directory "srv/www/vhosts/domain-web.com/httpdocs">
php_admin_value open_basedir "srv/www/vhosts/domain-web.com/httpdocs:/tmp:/srv/www/vhosts/typo3"
php_admin_value safe_mode_exec_dir "srv/www/vhosts/typo3/im/bin/
</Directory>

in diesem Verzeichnis
srv/www/vhosts/typo3
habe ich ImageMagick 4.2.9 installiert
typo3/im/ und hier liegen die verzeichnisse /bin und /share
Die Rechte am typo3 Verzeichnis hier:
Besitzer wwwrun, Gruppe psacln
Rechte 755

In Typo3 gebe ich diesen Pfad an:
/srv/www/vhosts/typo3/im/bin/
Achtung: in diesem Verzeichnis liegt nur ImageMagick, keine Typo3 Intallation, habe es einfach nur so bezeichnet, kann man ja benennen wie man will

Vorher noch dieses:
/usr/local/psa/admin/sbin/websrvmng -a -v
und apache neustart

Das ganze funzt mit einer Typo3 Installation bzw. Homepage

Jetzt wollte ich meine zweite Homepage mit der gleichen Methode ImageMagick mit eingeschaltetem safe_mode zum laufen bekommen, nur klappt das nicht.
Warum?
Passe jeweils die vhosts an, nur ImageMagick wird einfach nicht gefunden, mit safe_mode aus ja, mit eingeschaltetem nicht.

Meine Frage an euch ist, warum das hier nur mit einer Homepage klappt.

Vielen Dank
 
Keiner, der mir helfen kann?
Bekomme es einfach nicht hin, egal welchen Pfad etc. ich angebe.
Aber es muss doch funktionieren, nur wie?

Entschuldigt bitte, wenn ich mit diesem Thema bisle nerve, aber es ist mir wichtig, das meine Server so sicher sind als möglich.

Danke
 
Hallo!
Alles was das schiefgehen könnte bzw. schiefgeht sollte im Apache Error Log zu finden sein. Schon mal einen Blick hinein geworfen?

mfG
Thorsten
 
ja, habe ich.
Da steht aber nur:
no such file or directory
was klar ist, er findet es ja auch nicht, aber warum, wenn es doch auf einer Homepgae klappt, sprich gefunden wird, bei den anderen nicht?
Ich steh vor einem Rätsel.

Danke für Deine Hilfe
 
Hallo!
Hat der Benutzer, der den Apache der 2ten Domain ausführt, Rechte um das ImageMagick Verzeichnis zu lesen, bzw. die Dateien darin auszuführen? Stimmen die Pfadangaben?
Was sagt ls -al /srv/www/vhosts/typo3/im/bin/? Wie heißt der Benutzer und zu welcher Gruppe gehört er? Hast du die PHP Einstellungen für die 2te Domain überprüft (phpinfo();)?

mfG
Thorsten
 
ls -al /srv/www/vhosts/typo3/im/bin/

gibt folgendes aus:

total 4520
drwxr-xr-x 2 wwwrun psacln 121 May 17 2004 .
drwxr-xr-x 4 wwwrun psacln 28 Oct 20 13:55 ..
lrwxrwxrwx 1 wwwrun psacln 10 Oct 20 13:55 combine -> wrapper.sh
-rwxr-xr-x 1 wwwrun psacln 1537068 Jan 23 2004 combine.bin
lrwxrwxrwx 1 wwwrun psacln 10 Oct 20 13:55 convert -> wrapper.sh
-rwxr-xr-x 1 wwwrun psacln 1550572 Jan 23 2004 convert.bin
lrwxrwxrwx 1 wwwrun psacln 10 Oct 20 13:55 identify -> wrapper.sh
-rwxr-xr-x 1 wwwrun psacln 1528300 Jan 23 2004 identify.bin
-rwxr-xr-x 1 wwwrun psacln 531 May 17 2004 wrapper.sh
Hat der Benutzer, der den Apache der 2ten Domain ausführt, Rechte um das ImageMagick Verzeichnis zu lesen, bzw. die Dateien darin auszuführen
ja, hat er, wwwrun ist Besitzer, Gruppe ist psacln
Verzeichnisse haben 755 und Dateien 644

PHP schaut so aus:
(gilt für jede Domain auf diesem Server)

disable_function:system, shell_exec, show_source, diskfreespace, disk_free_space, proc_open, set_time_limit, link, pfsockopen, popen, proc_open, proc_nice,

open_basedir: angepasst an jede Domain
/srv/www/vhosts/domain-domain.eu/httpdocs:/tmp:/srv/www/vhosts/typo3

safe_mode_exec_dir:
/srv/www/vhosts/typo3/im/bin/

Vielleicht liegt es aich an Typo3?

Danke

Gruß
Andreas
 
php_admin_value safe_mode_exec_dir "srv/www/vhosts/typo3/im/bin/
Da fehlt ein / und ein ".
Copy&Paste-Fehler oder realer Fehler?

Vielleicht liegt es aich an Typo3?
Vergleiche die localconfig.php zwischen den beiden Webspaces.

Aber wichtiger:
Vergleiche die PHPinfo's. Achte vor allem auf die Spalte für "local".

huschi.
 
Da fehlt ein / und ein ".
Copy&Paste-Fehler oder realer Fehler?

ist ein Copy&Paste-Fehler, Entschuldigung

Die vhost.conf für Homepage 1 sieht so aus:
(hier funktioniert alles wunderbar)
Code:
<Directory "/srv/www/vhosts/domain.com/httpdocs">
php_admin_value open_basedir "/srv/www/vhosts/domain.com/httpdocs:/tmp:/srv/www/vhosts/domain.com/httpdocs/temp"
php_admin_value safe_mode_exec_dir "/srv/www/vhosts/typo3/im/bin/"
php_admin_value session.save_path /srv/www/vhosts/domain.com/httpdocs/session
</Directory>

Die vhost.conf für Homepage 2
Code:
<Directory "/srv/www/vhosts/domain-domain.eu/httpdocs">
php_admin_value open_basedir "/srv/www/vhosts/domain-domain.eu/httpdocs:/tmp:/srv/www/vhosts/domain-domain.eu/httpdocs/temp"
php_admin_value safe_mode_exec_dir "/srv/www/vhosts/typo3/im/bin/"
php_admin_value session.save_path /srv/www/vhosts/domain-domain.eu/httpdocs/session
</Directory>

Pfad zu Homepage 1 lt. info.php

open_basedir
Code:
/srv/www/vhosts/domain.com/httpdocs:/tmp:/srv/www/vhosts/domain.com/httpdocs/temp

safe_mode_exec_dir
Code:
/srv/www/vhosts/typo3/im/bin/

Pfad zu Homepage 2 lt. info.php

safe_mode_exec_dir
Code:
/srv/www/vhosts/typo3/im/bin/

Der open_basedir Pfad zu Homepage 2
Code:
/srv/www/vhosts/domain-domain.eu/httpdocs:/tmp:/srv/www/vhosts/domain-domain.eu/httpdocs/temp

Die localconf.php der Homepage 1
Code:
$TYPO3_CONF_VARS['BE']['disable_exec_function'] = '1';	//  Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS['GFX']["im"] = '1';	// Modified or inserted by TYPO3 Install Tool. 
$TYPO3_CONF_VARS['GFX']["im_path_lzw"] = '/usr/local/php/bin/

Die der Homepage 2
Code:
$TYPO3_CONF_VARS['BE']['disable_exec_function'] = '1';	// Modified or inserted by TYPO3 Install Tool. 
$TYPO3_CONF_VARS['GFX']["im"] = '0';	// Modified or inserted by TYPO3 Install Tool. 
$TYPO3_CONF_VARS['GFX']["im_path_lzw"] = '';	//  Modified or inserted by TYPO3 Install Tool.

Selbst wenn ich manuell den Pfad in die localconf schreibe, ändert sich nix, nach einem Update steht da dann auch nichts mehr drin.

Ich werd noch verrückt mit dem ganzen.

Danke für eure HIlfe, ich weiß da jetzt wirklich nicht mehr weiter
Die Verzeichnisse session und temp habe ich angelegt und existieren somit in beiden httpdocs Verzeichnissen
 
Last edited by a moderator:
Kleiner Tip: $TYPO3_CONF_VARS['GFX']["im"]
Das ist mir auch aufgefallen, nur leider lässt sich das nicht ändern.
Im Typo3 Backend ist es eingetragen, und auch wenn ich es per Hand in der localconf ändere, also eine 1 eintrage, steht nach einem update wieder die null drinne.
Im Backend steht auch dieses hier:
[GFX][im_path]=
current value is /usr/local/php/bin/

[GFX][im_path_lzw]=
current value is /usr/local/php/bin/
 
D.h. daß der Installer den Pfad nicht gebrauchen kann. Ergo kommt er an die Dateien nicht ran.
Hast den vollständigen Pfad /srv/www/vhosts/typo3/im/bin/ durchgeprüft, ob alle Rechte stimmen?
Hast Du bereits mal versucht mit einem kleinen PHP-Script im selben Verzeichnis an convert oder den Wrapper zu kommen?

huschi.
 
Hm, die Rechte sollten stimmen, Besitzer ist wwrun, Lesen, Schreiben, Ausführen 755.

Und ja, es kann zugegriffen und ausgeführt werden.
Was mich ja so stutzig macht, das es mit einer Homepage klappt, mit den anderen dreien eben nicht, obwohl die Installationen identisch sind.
Habe auch schon alles per Hand in die localconf geschrieben, hilft nur nicht.
Ich werde jetzt nochmal eine nagelneue Typo3 Installation zum testen durchführen um zu sehen, ob es nicht doch meinerseites einen Fehler gibt.

Danke für Deine Hilfe

P.S. kann es sein, das es gar nicht sinnvoll ist, alle Typo3 Installationen bzw. Homepages die ImageMagick nutzen, auf dieses Verzeichnis zugreifen zu lassen?
/srv/www/vhosts/typo3/im/bin/
 
Last edited by a moderator:
P.S. kann es sein, das es gar nicht sinnvoll ist, alle Typo3 Installationen bzw. Homepages die ImageMagick nutzen, auf dieses Verzeichnis zugreifen zu lassen?

Wenn ImageMagick von Typo3, MediaWiki oder anderen Tools einer Homepage genutzt werden soll, muss das per
- OPEN_BASEDIR
- SAFE_MODE
gerade für "convert" und andere wichtige Funktionen freigeschaltet sein.

Ich persönlich benutze Typo3 nicht (ich installiere es nur :-), aber die Tests für ImageMagick sind IMHO sehr gut. Wenn ImageMagick ohne OPEN_BASERDIR und SAFE_MODE Beschränkungen funktioniert und die Tests auch ordentlich angezeigt werden, muss es ein Rechteproblem sein. Sprich die UID des Apache-Users muss Verzeichnis und "convert" lesen und ausführen dürfen.

Im Anhang ist ein Screenshot, wie es mit der aktuellen Version 4.1.x aussehen sollte.

Gruß
Claus
 

Attachments

  • 22_ImageMagick_alle_formate_ok_jpg_gif_png.gif
    22_ImageMagick_alle_formate_ok_jpg_gif_png.gif
    154.2 KB · Views: 152
Danke erstmal.
Den test kenne ich ja, nur wird er ja nicht ausgeführt, da das Verzeichnis mit ImageMagick nicht gefunden wird.

P.S. kann es sein, das es gar nicht sinnvoll ist, alle Typo3 Installationen bzw. Homepages die ImageMagick nutzen, auf dieses Verzeichnis zugreifen zu lassen?
Hiermit meinte ich, ob es nicht besser/sicherer ist, für jede Installation ein eigenes Verzeichnis zu erstellen. Denn wenn für alle das OPEN_BASEDIR Verzeichnis das gleiche ist, dann wäre doch safe_mode on für den Eimer, denn dann kann man ja in diesem Verzeichnis sich gegenseitig hacken, versteh ich das richtig?

Nichtsdesto trotz, egal was für ein Verzeichnis ich anlege, es wird einfach nicht gefunden bzw. das darin befindliche ImageMagick.
In der localconf.php steht mittlerweile alles korrekt drinne.
Die Dateirechte liegen bei wwwrun als besitzer und psacln ist die Gruppe (da Plesk läuft)
Die Verzeichnisrechte liegen bei 755 und die Dateirechte 644, ebenso das verzeichnis für ImageMagick. Und der Apache User ist wwwrun.

Gruß
andreas
 
So, habe jetzt mit ausgeschaltetem safe_mode das ganze getestet:
Wenn safe_mode auf off gesetzt wird, wird ImageMagick mit 2 Pfaden/Verzeichnissen gefunden:

einmal so:
(die Standardinstallation)

/usr/bin/
convert 6.2.5
composite 6.2.5
identify 6.2.5

und einmal so
(das von mir angelegte Verzeichnis)
/srv/www/vhosts/typo3/im/bin/
convert 4.2.9
combine 4.2.9
identify 4.2.9

mit beiden funktionieren die tests mit den Grafiken
Nur mit safe_mode klappt es leider noch nicht.

Wie sollte ich denn die Rechte noch ändern?

Vielen Dank
 
Hi!

Ich habe das gleiche Setup und bei mir geht es wie folgt:

Typo3 im Verzeichnis /srv/www/vhosts/typo3_src-4.1.3, dort im Unterverzeichnis "im" symbolische Links auf die ImageMagick-Tools

Code:
lrwxrwxrwx 1 wwwrun www 18 2007-11-14 19:42 composite -> /usr/bin/composite
lrwxrwxrwx 1 wwwrun www 16 2007-11-14 19:42 convert -> /usr/bin/convert
lrwxrwxrwx 1 wwwrun www 17 2007-11-14 19:42 identify -> /usr/bin/identify

Achte bitte auf den Owner und die Group (wwwrun:www).

Für die Domain, die typo3 nutzt, sehen die Einstellungen wie folgt aus:

Code:
<Directory /srv/www/vhosts/[domainname]/httpdocs>
  php_admin_value open_basedir "/srv/www/vhosts/[domainname]/httpdocs:/tmp:/usr/share/php:/srv/www/vhosts/typo3_src-"
  php_admin_value include_path ".:/usr/share/php:/srv/www/vhosts/[domainname]/httpdocs:/srv/www/vhosts/typo3_src-"
  php_admin_value safe_mode_gid on
  php_admin_value safe_mode_exec_dir "/srv/www/vhosts/typo3_src-4.1.3/im"
  php_admin_value memory_limit 160M
  php_admin_value upload_max_filesize 10M
</Directory>

Dabei scheint es auf das Statement "php_admin_value safe_mode_exec_dir" anzukommen, wenn das falsch ist, geht es auch nicht.

Mir zeigt typo3-Setup dann folgendes an:

/srv/www/vhosts/typo3_src-4.1.3/im/
convert [version]
composite [version]
identify [version]

/usr/local/php/bin/
convert [version]
composite [version]
identify [version]
 
Vielen, Vielen Dank an alle, die mir geholfen haben.

<Directory "/srv/www/vhosts/domain.com/httpdocs">
php_admin_value open_basedir "/srv/www/vhosts/domain.com/httpdocs:/tmp:/srv/www/vhosts/domain.com/httpdocs/temp"
php_admin_value safe_mode_exec_dir "/srv/www/vhosts/typo3/im/bin/"
php_admin_value session.save_path /srv/www/vhosts/domain.com/httpdocs/session
php_admin_value upload_tmp_dir /srv/www/htdocs/www.firma.de/tmp
</Directory>

So funktioniert es jetzt auf allen meinen Kundenservern, nur die 2 Homepages auf meinen privatem Server, da klappt es nicht, warum das so ist, konnte ich immer noch nicht finden.

@akxak
ja, Danke, so funzt es auch, mit Ausnahme siehe oben


Danke

Gruß

andreas
 
Back
Top