I migrated a Magento instance from one host to another, and in the process earnt myself some free beer; everything went well, apart from some of the thumbnail images not appearing. The image URLs would look like :
/media/catalog/product/cache/1/image/5e06319eda06f020e43594a9c230972d/images/catalog/product/placeholder/image.jpg
Things tried which didn’t help :
- rebuilding various Magento image caches and so on (login as admin -> System -> Cache management).
- Check PHP’s memory limit… (512mb… shouldn’t be a problem!)
- Check permissions on the media directory (chown -R www-data media .. didn’t fix it)
- Check PHP has gd installed/enabled – yes.
- Disable suhosin (no change)
- Check PHP logs (nothing relevant)
- Check Apache logs (nothing relevant)
- Changing the product to use a different thumbnail etc image (didn’t help)
I already knew the original host didn’t have a case sensitive file system, and this was partially fixed this using mod_speling in Apache, but this obviously doesn’t help when e.g. PHP decides to read and resize an image file.
I then tried comparing the contents in media/catalog/product with what’s in the catalog_product_entity_varchar table. So, in my case :
select value from catalog_product_entity_varchar where value like '/F%' limit 1;
returned something like :
/f/i/file_4_1.jpg
And looking in the above mentioned directory, only showed a directory called F. Simple fix… :
mv F f
(Obviously check the table doesn’t make reference to images with /F in them…. in my case it didn’t.)
<<reload web browser; images all appear and everything works.>>
What sort of idiot created case insensitive filesystems… grr.
Still, at least people can now browse online for Kitchens …. and see the appropriate thumbnails.
tar is your friend.
tar -czvf tarball.tgz directorytobackup
on the old system, transfer file and
tar -xzvf tarball.tgz
on the new system eliminates all that fun.
Don’t use ftp unless it’s from one Linux system to another. Supposedly, NTFS understands case, rarely do the ftp programs do so. It’s so sweet when you’ve used something like WS-FTP to attempt to sync stuff and it starts asking to overwrite things as well.
Sean – I couldn’t – in this case I only had FTP access to the original / old host.
Thanks a million, just read you post and wish I had seen it a week ago. Thanks, if your ever in Birmingham let me know, I will gladly buy you a pint or three.
I do happen to live in Bromsgrove, so Birmingham is quite close by 🙂
it did not help me brother. david did you meet with mark 😀
Rony – no…. that’s too much like socialisation for me….
I was having this same problem until now. Here’s the deal…
When specifying the amount of memory in your php configurations, you have to specify the M in uppercase. So, there are a few places you can specify it: index.php, php.ini, or .htaccess.
In all places I was using “512m” and no pictures would load, although the rest of the site was fine. I changed it to “512M” and voila!
Here’s an example for each of these three files:
index.php would be: ini_set(‘memory_limit’, ‘512M’);
php.ini would be: memory_limit = 512M
.htaccess would be: php_value memory_limit 512M
You don’t necessarily have to use 512, but be sure that you are using an uppercase M.
Please let me know if this works for you all.
I contect the server and they hasn’t install “gd library” after this library installation i give the full permission(777) to the media folder and the cache folder which is located in the product folder my problem is solved
Thanks for this my fix turned out to be: apt-get install php5-gd
But also the cache folder permissions:
http://danielfelice.com/images-disppear-after-flushing-image-storage-cache-in-magento
These two links yours and above are probably THE two most useful on the issue.
Thanks again!
David, thanks very much for this. I had very similar symptoms but a very different problem. In my case I had compiled PHP with GD, but somehow JPEG support did not make it into GD. I was lucky to stumble onto a comment on a similar post suggesting to check the GD install.
I tested the theory by checking the phpinfo() page, and sure enough, GD didn’t list any JPEG support. Then I uploaded a .png image for a test, and sure enough, the image displayed without an issue. After a recompile of php (note that the –with-jpeg-dir directive must appear before the –with-gd directive in the ./configure line), a make clean && make && sudo make install (and a stop/start of apache), the images immediately appeared as if there hadn’t been a problem.
It’s quite frustrating that Magento didn’t emit any errors about this… I checked the apache error log, the system error log, and the magento error logs (which there weren’t any, despite correct permissions). I’m hoping this comment can save someone else the same time I spent on it.
I didn’t see any products in the frontend after moving to a fresh Debian install. The html generated page for the categories ended on the image for the first product:
<img src="
The logs didn't show any prbolem.
For me too the fix was to install the php5-gd library on :
aptitude search php5-gd
Thanks, StackLinux and malik naseer.
thanks a lot Patrick Cronin, that was exactly my problem but I am compiling php with LITESPEED webserver.
adding jpeg-dir=/usr/include –with-png-dir=/usr/include to my compilation did the trick 🙂
tks
David Thanks for highlighting this issue with proper solution.
I also faced such issues normally but after using a FME media gallery Magento extension ( http://goo.gl/YHxLEx ), it’s now very easy to organize all the product images & other rich media files.
For the benefit of anyone else who has spent their 4 hours tearing their hair out, load a phpinfo.php file, and check the memory limit. If local is not 512M, then hunt for wherever it might be being overriden from.
Also, check the .htaccess file. Make sure that includes php_value memory_limit 512M
And now, I resist the temptation to go drink a double whiskey.
I thought I had a similar issue with images permissions after we changed host – I was not getting new images i uploaded to show up – it was showing me the placeholder image and no image symbol on the front end –
– turns out I forgot to update the origin ip on my CDN
– so hope this helps someone someday 🙂
How to “Check PHP’s memory limit”?
Vlad,
if you have php.ini. just go to yourdomain/php.ini, it will show you on the browser!!! Cheers!
I forgot to mention I have issue with thumbnail images too. On the homepage, new product, etc… they show fine. But when I click on any category, no thumbnail to be found on every single product…. I’m not sure what to do now… I’ve tried everything known on internet….but nothing works for me….
Anything would help!
My error was: product image can show on list.phtml, but can not show on view.phtml.
in list.phtml, image url is: /media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/images/catalog/product/placeholder/image.jpg