Signifikant für den hier behandelten Fehler ist, er taucht nur dann auf wenn man versucht, das über den WordPress-Upload hochgeladene Originalbild aufzurufen oder einzubinden. Ursache dafür ist, dass PHP nach frischer Installation als temporäre Ablage bei Uploads das C:WindowsTemp
-Verzeichnis verwendet. Davon betroffen ist man (hoffentlich nur) wenn man seinen Windowsrechner als lokalen Testserver einsetzt (bei einem Webhosting-Provider sollte einem das also nicht passieren).
Dateien die in C:WindowsTemp
landen, wird generell nicht vertraut, weil das die Lagerstätte sämtlicher erwünschter und unerwünschter Dateien ist, die einem Browser und E-Mail-Client bescheren. Die Berechtigungen unterscheiden sich daher von jenen des Webverzeichnisses C:inetpub
. Wenn die Datei nach dem Zwischenspeichern ins Upload-Verzeichnis von WordPress übertragen wird, behält sie die restriktiven Berechtigungen aus dem C:WindowsTemp
-Verzeichnis bei und kann deshalb – im Gegensatz zu den Zuschnitten – nicht im Browserfenster angezeigt werden. Auf Seiten und in Artikeln in denen das Bild in Originalgröße eingebunden ist kommt dann einfach kein Bild, wohingegen der direkte Versuch die Datei im Browser darzustellen, mit dem Serverfehler 500 abgewiesen wird.
Die Lösung ist, ein globales tmp-Verzeichnis im Webserverbereich einzurichten (z.B. C:inetpub\tmp
), da hier die geeigneten Berechtigungen für das Betrachten einer Bilddatei bereits vorliegen.
Anschließend die PHP.ini-Datei öffnen und nach upload_tmp_dir suchen.upload_tmp_dir="C:Windows\Temp"
ändern inupload_tmp_dir="C:inetpub\tmp"
Webserver neu starten. Wenn schon Bilder hochgeladen und betroffen sind, die übergeordneten Berechtigungen auf alle Dateien in wp-contentuploads
übertragen.
Schreibe einen Kommentar