Produktbilder werden nicht angezeigt

Hallo,

ich habe das Problem, dass keine Produktbilder angezeigt werden. Wenn ich ein Bild hochlade erscheint es nicht.
Bei dem URL-Aufruf des Bildes direkt bekomme ich einen 404 not found.

Die URL’s wären diese:
/out/pictures/generated/product/1/185_150_75/nopic.jpg
(Das not found pic (nopic.jpg) wird auch nicht gefunden und ist auch wirklich nicht im Ordner drin)

/out/pictures/generated/product/1/380_340_75/bildeins.jpg
(ist auch nicht im Ordner drin, warum auch immer)

Im Einsatz habe ich aktuell nginx. Auf einem zweiten Server bin ich die Installation von 4.9.7 Community Edition wieder durchgegangen und habe aber Apache2 verwendet und bekomme kein Problem mit den Bildern und alles funktioniert.

Nun vermute ich stark dass es an nginx liegt, deswegen hier meine config für den vhost:

http://pastebin.com/kZ5dhBi2

Auf diese URL’s bin ich auch schon gestoßen:

http://forum.oxid-esales.com/showthread.php?t=5017

Die Berechtigungen habe ich alle angepasst.

Hallo Chefkoch,
sowie du hier beschreibst werden die abgeschnittene Bilder überhaupt nicht abgespeichert. Wie sollen denn die angezeigt werden? Sind die Dateirechte korrekt?

Grüße
Rafig

Hallo,

das ist richtig. Die Bilder werden nicht abgespeichert.
Ich habe nochmal in den Zip Archiven nachgeschaut. Die nopic ist Standardmäßig nicht enthalten.
Liegt es dann eventuell an einem Problem von der Bildgenerierung?

Ich habe erneut die Dateiberechtigungen folgendermaßen gesetzt:
(http://forum.oxid-esales.com/showthread.php?t=5017#post30288)

root@meinhost:/usr/share/nginx/shop# chmod +w -R out/pictures/
root@meinhost:/usr/share/nginx/shop# chmod +w -R out/media/
root@meinhost:/usr/share/nginx/shop# chmod +w -R log/
root@meinhost:/usr/share/nginx/shop# chmod +w -R tmp/
root@meinhost:/usr/share/nginx/shop# chmod 444 .htaccess
root@meinhost:/usr/share/nginx/shop# chmod 444 config.inc.php

PS: /out/basic/src/ Verzeichnis existiert nicht

Danach habe ich wieder den Bildupload getestet und es wurde erneut das Bild “nopic” nicht angezeigt und das eigentliche Produktbild auch nicht.

Ich frage mich warum dies auf meiner Apache2 Maschine einwandfrei funktioniert…

Hallo Chefkoch,
ich muss ehrlich gestehen ich habe mit Nginx Server überhaupt keine Erfahrung. Bei Apache habe ich Standard Kode die vor und nach der Installation ausgeführt wird.


Vor der Installation:

chmod -R 777 export
chmod -R 777 log
chmod -R 777 out/pictures
chmod -R 777 out/downloads
chmod -R 777 out/media
chmod -R 777 out/pictures
chmod -R 777 tmp
chmod 777 .htaccess
chmod 777 config.inc.php

Nach der Installation:

rm -rf setup
chmod 644 .htaccess
chmod 444 config.inc.php

Hast du auf diesem Server vielleicht andere Software wie Wordpress usw. und klappt hier Bilder-Upload?

Grüße
Rafig

Hallo,

ja, ich habe Wordpress auf einem anderen VHost auf dem Nginx Server.
Ich habe dort gerade den Bildupload getestet und es geht einwandfrei.
PS: VHost Config ist genau die selbe bis auf die Erweiterung für Oxid inklusive der fastcgi_params.oxid

(https://blog.mayflower.de/777-Nginx-Rewrite-Regeln-fuer-OXID-eShop-.html)

Ich habe auch gerade deine Berechtigungen verwendet und das Bild wird immer noch nicht angezeigt (eigentliche Produktbild und notfound Thumbnail/Icon)

Gerade habe ich den Inhalt der SQL Datenbank komplett gelöscht und auch OXID heruntergeworfen.
Dann habe ich alles neuinstalliert, damit ich auch sichergehen kann, dass ich eine frische Installation habe. Mit deinen Berechtigungen bin ich das Setup wieder durchgegangen und das Problem besteht weiterhin.
Ich kann mir nur vorstellen, dass es irgendwo an Nginx liegt.

Hallo Chefkoch,
echt schade.

Ich mache hier platz damit die anderen die sich mit Nginx Server auskennen dir weiterhelfen. Ich habe wie bereits erwähnt damit überhaupt keine Erfahrung bisher.

Grüße
Rafig

Mit nginx habe ich auch nur begrenzt Erfahrung. Das geschilderte Problem erinnert mich jedoch an einen Fall, den ich vor einiger Zeit hatte, und wo die Ursache an anderer Stelle lag.

Die Verzeichnisse, in denen Oxid die erstellten Bildversionen speichert, sind ja nach einem bestimmten Schema benannt. “185_150_75” steht für “185 x 150 Pixel groß, 75% Qualität”. Wenn Du aber z. B. 80% Qualität eingestellt hast, versucht der Shop die erzeugten Bilder im Verzeichnis “185_150_80” zu speichern, und das klappt logischerweise nicht.

Die Einstellung für die Bildqualität ist im Backend unter Grundeinstellungen -> System -> Bilder zu finden.

Bis dann,

Henning

[QUOTE=Henning Kockerbeck;177533]Wenn Du aber z. B. 80% Qualität eingestellt hast, versucht der Shop die erzeugten Bilder im Verzeichnis “185_150_80” zu speichern, und das klappt logischerweise nicht.[/QUOTE]

Der Shop erstellt dieser Verzeichnisse automatisch, manuell muss man das nicht machen.

Grüße
Rafig

Danke für den Hinweis.
Ich habe nachgeschaut und es sind 75 eingestellt.
Dort habe ich ja auch nichts verändert. Hab ja eine frische Installation, das ist es ja.
Komischerweise geht Apache aber Nginx nicht.
Hat sonst jemand noch eine Idee was ich testen oder nachschauen kann?

Hallo,

eine vorgefertigte Konfig findest du z.B. bei TimmeHosting -
https://timmehosting.de/oxid-hosting-auf-nginx

Wir hatten das Problem damals auch und ich meine das diese Direktive den Ausschlag gegeben hat.

   
location ~ /out/pictures/.*(\.jpg|\.gif|\.png)$ {
                try_files $uri /core/utils/getimg.php;
       }

Ich glaube ab 4.9 sollte es dann besser so aussehen


  location ~ /out/pictures/.*(\.jpg|\.gif|\.png)$ {
    try_files $uri /getimg.php;
  }