magic.mime zaubert nich mehr...

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

magic.mime zaubert nich mehr...

Postby ollo » 28. January 2005 02:59

Hallöchen Leute,

ich hab folgendes Problem:
Mit der neuen Version von XAMPP (4.1.10) wird ja PHP5 installiert, was ansich kein Problem ist, mein Projekt läuft in PHP5 wie in PHP4.
...bis auf die magic_mime extension. :x

Die brauche ich stellenweise um den Typ von Dateien zu bestimmen, welche nach dem Upload als {ID}.dat in einem Verzeichnis gespeichert werden. So, nun hat die XAMPP-Distribution ja scheinbar keine magic.mime-Datei mitgeliefert, die von der Extension benötigt wird. (Wenn doch, wo???)

Ohne die wird einfach gar kein Mime-Typ zurückgeliefert (leerer String nehme ich an). Mit den magic.mimes aus der enthaltenen PHP4-Distribution sowie denen aus 5.0.2 und 5.0.3 werden fast alle Dateien fälschlicherweise als text/plain eingestuft.

Weiß jemand, woran das liegen könnte bzw. hatte schonmal das gleiche Problem und es gelöst? :?:
ollo
 
Posts: 85
Joined: 11. November 2004 12:29

Postby Wiedmann » 28. January 2005 10:38

Mit der neuen Version von XAMPP (4.1.10)

Aktuell ist XAMPP für Windows 1.4.11

mein Projekt läuft in PHP5 wie in PHP4. ...bis auf die magic_mime extension.

Diese Extension muss erst in der "php.ini" ("\xampp\apache\bin") aktiviert werden:
Code: Select all
extension=php_mime_magic.dll


So, nun hat die XAMPP-Distribution ja scheinbar keine magic.mime-Datei mitgeliefert, die von der Extension benötigt wird. (Wenn doch, wo???)

Die Datei "magic.mime" ist in "\xampp\php\extras". Tatsächlich fehlt aber noch ein dazugehöriger Eintrag in der "php.ini" ("\xampp\apache\bin"):
Code: Select all
mime_magic.magicfile = "\xampp\php\extras\magic.mime"


Mit den magic.mimes aus der enthaltenen PHP4-Distribution sowie denen aus 5.0.2 und 5.0.3

Keine Ahnung was du da meinst... Die Datei "magic.mime" hat sich in PHP jedenfalls schon länger nicht mehr geändert, sofern sie denn natürlich überhaupt aktiviert wird.

(PS: demletzt gabs da schonmal was dazu im Forum. Musst mal schauen. Ansonsten hättest ja auf die anderen Antworten selbst kommen können, oder nicht?)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby ollo » 28. January 2005 14:26

Wiedmann wrote:
Mit der neuen Version von XAMPP (4.1.10)

Aktuell ist XAMPP für Windows 1.4.11


Ich weiß. Ich glaube nur nicht dass sich da was ändert, denn es scheint mir ja ein php-internes Problem zu sein.
Bleiben die Config-Dateien eigentlich bei einem Update erhalten?

mein Projekt läuft in PHP5 wie in PHP4. ...bis auf die magic_mime extension.

Diese Extension muss erst in der "php.ini" ("\xampp\apache\bin") aktiviert werden:
Code: Select all
extension=php_mime_magic.dll



Ich bin kein Anfänger. Natürlich ist die aktiviert, ansonsten würde er mir ja auch Fehler um die Ohren hauen weil er mime_content_type() nicht kennt.
Der Pfad auf die magic.mime ist laut phpinfo auch richtig gesetzt, denn ansonsten würde mein Satz auch keinen Sinn ergeben, in dem ich darlege dass ich es sowohl ohne als auch mit diversen magic.mimes versucht habe.

Da hättest Du wiederum drauf kommen können... :wink:

BTW, ich habe auch alle anderen von mir benötigten extensions aktiviert:
mbstring und gd2, vielleicht hängt es auch irgendwie damit zusammen, obwohl das eigentlich nicht sein dürfte, da die Funktion zum Ermitteln des Mime-Typs ja built-in ist und somit unabhängig sein müsste.

So, nun hat die XAMPP-Distribution ja scheinbar keine magic.mime-Datei mitgeliefert, die von der Extension benötigt wird. (Wenn doch, wo???)

Die Datei "magic.mime" ist in "\xampp\php\extras". Tatsächlich fehlt aber noch ein dazugehöriger Eintrag in der "php.ini" ("\xampp\apache\bin"):
Code: Select all
mime_magic.magicfile = "\xampp\php\extras\magic.mime"


Ah, wüsste nur zu gerne warum ich die beim letzten mal nicht gefunden habe... Ich glaube mich zu erinnern, mit der Windows-Suche das komplette XAMPP-Verzeichnis durchsucht zu haben... :oops: :shock:

Mit den magic.mimes aus der enthaltenen PHP4-Distribution sowie denen aus 5.0.2 und 5.0.3

Keine Ahnung was du da meinst... Die Datei "magic.mime" hat sich in PHP jedenfalls schon länger nicht mehr geändert, sofern sie denn natürlich überhaupt aktiviert wird.


Stimmt, da hast Du recht! Ich habe angenommen, dass von PHP4 zu PHP5 irgendwas mit dem Format der Datei geändert wurde, das ist aber wohl nicht der Fall. Es ist ja schon merkwürdig, dass er alle Dateien als text/plain klassifiziert, bis auf eine .log Datei, die er für message/news hält, was aber auch vorher schon der Fall war. Ich seh gerade, dass er auch HTML als solches erkennt, das wars dann aber auch schon. Weder bei GIFs, JPGs noch PDFs liefert er den korrekten Mime-Typ zurück.

Scheint so, als müsste ich doch wieder PHP gesondert installieren und schauen, ob's dann wieder funktioniert.

(PS: demletzt gabs da schonmal was dazu im Forum. Musst mal schauen. Ansonsten hättest ja auf die anderen Antworten selbst kommen können, oder nicht?)


Gesucht habe ich natürlich (ich warte ungern länger als nötig auf Problemlösungen), aber ich habe leider nichts Verwertbares gefunden. Größtenteils findet er Threads, in denen irgendwer seine komplette php.ini gepostet hat... :roll:
ollo
 
Posts: 85
Joined: 11. November 2004 12:29

Postby Wiedmann » 28. January 2005 15:40

Hast recht, es tut nicht.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby ollo » 28. January 2005 16:29

Wiedmann wrote:Hast recht, es tut nicht.


Also auch bei der neueren XAMPP-Version nicht? Und ohne mbstring? Hmm. Irgend 'ne Ahnung woran's liegen könnte?

Ich schätze ja mal nicht dass es an PHP an sich liegt (zumindest hatte es mit manuellem PHP-Install bisher immer funktioniert), denn das hätte in der offiziellen Distribution bestimmt schon jemand gemerkt und gefixt. Aber vielleicht sollte ich bei denen doch auch mal nachfragen.

An einer defekten magic.mime kann's auch nicht liegen, da alle, die ich probiert habe, das gleiche Verhalten aufweisen.
ollo
 
Posts: 85
Joined: 11. November 2004 12:29

Postby Wiedmann » 28. January 2005 16:37

Das Problem liegt bei PHP und nicht bei XAMPP (PHP5 vom XAMPP ist die offiziellen Distribution).

Laut Bug-Report gab/gibt es öfters Probleme damit, die aber selten wirklich ernst genommen werden. (Dazu kommt noch, das eigentlich eine *NIX-spezifische Funktion dafür benutzt wird)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby ollo » 28. January 2005 17:09

Wiedmann wrote:Das Problem liegt bei PHP und nicht bei XAMPP (PHP5 vom XAMPP ist die offiziellen Distribution).


Hasse raecht... 8)
Ich hab vermutet dass vielleicht eine defekte php_mime_magic.dll ins Projekt gerutscht wäre oder sonst was fieses.

Laut Bug-Report gab/gibt es öfters Probleme damit, die aber selten wirklich ernst genommen werden. (Dazu kommt noch, das eigentlich eine *NIX-spezifische Funktion dafür benutzt wird)


Gottseidank gibt es dort auch die Lösung dafür:
in der php.ini folgendes eintragen:

mime_magic.debug = 1

So'n Mist. Wahrscheinlich hatte ich den vor der Neuinstallation auch drinne, nur hab ich diesmal gedacht: Wozu debuggen? Das ist sicher 'ne Einstellung für die Developer. Ich konnte ja nicht ahnen dass der auch die Funktionsweise umkrempelt. :x

Also mein Wunsch für die nächste XAMPP-Distribution (und natürlich auch die nächste PHP Distribution!) wäre: die beiden mime_magic Einträge auskommentiert mit in die php.ini aufnehmen (wie beim Zend Optimizer), nach Möglichkeit mit einem Kommentar der das Problem erklärt.
Das würde wohl vielen einiges an Ärger sparen, ich wusste ja immerhin dass mein Code korrekt ist, da er ja schon funktioniert hat. Aber ein Anfänger könnte daran leicht verzweifeln und den Fehler tagelang bei sich suchen...

Achja, danke für die Hilfe!
ollo
 
Posts: 85
Joined: 11. November 2004 12:29

Postby Wiedmann » 28. January 2005 17:27

Gottseidank gibt es dort auch die Lösung dafür:
mime_magic.debug = 1

Das tut bei dir?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby ollo » 28. January 2005 18:14

Wiedmann wrote:
Gottseidank gibt es dort auch die Lösung dafür:
mime_magic.debug = 1

Das tut bei dir?


Hmmmpf, hättest Du nur nix gesagt... :evil:

Teilweise tut es. Auf den ersten Blick war alles korrekt (wobei ich mir nicht sicher bin, ob er früher auch .dll und .exe beide als application/x-ms-dos-executable bezeichnet hat).
Allerdings werden PDFs nicht erkannt, da schreibt er dann gar nix, nicht mal text/plain. Alle sonstigen Dateitypen, die ich momentan drin habe (u.A. GIF, PNG, JPG) funktionieren. Interessanterweise stimmen die Bytes des PDF aber mit den in der magic.mime angegebenen überein.

So, ich hab jetzt auch mal die dll und die magic.mime von PHP5.0.3 mit meinem 5.0.2 benutzt - keine Änderung.

Aber: wenn ich den Eintrag für PDFs aus der magic.mime rausnehme, und ganz oben als '0 string %PDF- application/pdf' wieder einsetze (also mit dem korrekten MIME-Typ statt 'PDF Document') funktionierts wieder. :?: :?: :?:

Also die momentan bei mir vorhandenen Dateitypen werden jetzt wieder alle erkannt, aber ganz geheuer ist mir das nicht. Und als zuverlässig würde ich das auch auf keinen Fall bezeichnen... Ist nur ein Quick'n'Dirty-Hack.

Meine Vermutung wäre, dass er nicht mit Typangaben zurechtkommt, die Spaces enthalten, mom ich teste da mal gerade...
Jupp, sobald ich ein Space einfüge, ist's wieder weg. Und diverse Sonderzeichen scheinen auch nicht zu funktionieren, vielleicht prüft er direkt die Konformität gegen 'foo/bar' per internem RegEx oder so.
Höchst mysteriös/ärgerlich!
ollo
 
Posts: 85
Joined: 11. November 2004 12:29


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 13 guests