LautundKlar Webdesign Blog

LautundKlar Webdesign Agentur Passau - Webdesign Weblog

Victor Hugo:
Ein Traum ist unerlässlich, wenn man die Zukunft gestalten will.

LautundKlar Webdesign Blog

Weblog zum Thema Webdesign, auf dem wir in unregelmäßigen Abständen zu interessanten Artikeln verweisen und Tipps zu bestimmten Problemen (Webdesign, CSS, PHP, JavaScript, Typo3 etc.) geben wollen.


Typo3: Bilder werden nicht angezeigt

Freitag, 29. Juni 2007

Bug: Typo3 hat Probleme mit suPHP

Typo3

Ich hatte gerade das Problem, dass die im Typo3 Backend, hochgeladenen Bilder zwar auf den Server übertragen, aber nicht angezeigt werden.

Grund dafür war, dass die generierten Kopien der Bilder die Berechtigung “0600″ hatten, d.h. sie konnten nach dem Generieren nicht mehr gelesen werden. Da ich suPHP laufen habe und die Skripte mit den jeweiligen Benutzern ausgeführt werden, war der Besitzer der Datei der User und der www-user konnte diese dann nicht lesen.

Das Problem kann aber mit ein paar extra Zeilen Code schnell behoben werden:

Die Skripte die Dateien generieren findet man im “typo3/sysext/cms/tslib/” Ordner. Meines Wissens sind das:

  1. class.tslib_menu.php
  2. class.tslib_gifbuilder.php
  3. class.tx_install.php

Jedesmal wenn eine Datei geschrieben wurde, fügt man danach einfach diese Zeile ein:

t3lib_div::fixPermissions($file);

Dann sollte es wieder funktionieren. In Typo3 wurde dieser Bug bis zur gerade aktuellen Version 4.1.1 scheinbar noch nicht behoben.

Popularity: 61% [?]

2 Kommentare »

Danke für den Tip

Für den GifBuilder :

[329] : t3lib_div::fixPermissions($gifFileName);

dann gehts wieder

Kommentar von Daschmi

19. Juli 2007 @ 14:41

Habe eine bessere Lösung (IMHO) gefunden:

Anstelle Typo3 zu patchen besser die suphp.conf des Servers ändern bzw. vom Provider ändern lassen.

Darin steht nämlich meist:

;Umask to set, specify in octal notation
umask=0077

Dies bewirkt, daß Dateien mit 0600 und Verzeichnisse mit 0700 unter der UserID des Benutzers (und damit des PHP-Scripts) angelegt werden, was den Webserver hindert, mit PHP angelegte Dateien an den Browser auszuliefern, da er selbst nicht dran darf (er läuft i.d.R. mit einer anderen UserID).

Besser ist diese Einstellung:

;Umask to set, specify in octal notation
umask=0022

Mit dieser Einstellung werden Dateien mit 0644 und Verzeichnisse mit 0755 angelegt, somit kann der Inhaber der Datei oder des Verzeichnisses (UserID, mit der auch PHP-Skripte ausgeführt werden) zugreifen und zusätzlich der Webserver (oft UserID “www”, “wwwrun” oder “apache”) lesend zugreifen (nur lesend!).

Und prompt funktioniert es mit allen (neu angelegten) Bildern! Ggf. alte Bilder auf typo3temp löschen, damit sie neu generiert werden.

Gruß

Mark

Kommentar von Mark

2. April 2008 @ 18:49

RSS-Feed für Kommentare zu diesem Beitrag. TrackBack-URI

Einen Kommentar hinterlassen

XHTML: Sie können diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Kommentarlinks könnten nofollow frei sein.



blogCloud bloggerei.de supported by www.rankingcloud.de Gelistet im Blog Verzeichnis

PantherMedia -  Fotocommunity und Bildagentur für lizenzfreie Fotos
 Bildsuche: lizenzfreie Fotos