Po migracji sklepu na nowy serwer zdjęcia produktów nie wyświetlały się – zamiast nich szare zastępniki. W bazie danych były ścieżki do plików, ale pliki nie istniały na dysku. Czas naprawy: 5 godzin.
Objawy
- Szare zastępniki zamiast zdjęć produktów
- URL zdjęć zwracają 404
- W bazie danych w tabeli
catalog_product_entity_media_gallerysą poprawne ścieżki - Katalog
pub/media/catalog/productjest pusty lub niekompletny
Przyczyna
Migracja serwera pominęła katalog pub/media lub rsync zakończył się z błędem w połowie transferu. Plik .htaccess lub konfiguracja nginx do obsługi placeholder images była niepoprawna.
Rozwiązanie
# Sprawdź liczbę plików
find pub/media/catalog/product -name "*.jpg" -o -name "*.png" | wc -l
# Porównaj ze starym serwerem
ssh stary-serwer "find /var/www/html/pub/media/catalog/product -type f | wc -l"
# Zsynchronizuj media ze starego serwera
rsync -avz --progress stary-serwer:/var/www/html/pub/media/ /var/www/html/pub/media/ --exclude="cache/"
# Wyczyść cache miniatur po synchronizacji
rm -rf pub/media/catalog/product/cache/
bin/magento catalog:images:resize
# Sprawdź uprawnienia
chown -R www-data:www-data pub/media/
find pub/media -type d -exec chmod 755 {} \;
find pub/media -type f -exec chmod 644 {} \;
Wnioski
Katalog pub/media może mieć gigabajty danych. Zawsze weryfikuj liczbę plików po migracji przez porównanie find ... | wc -l na obu serwerach. Przechowuj media na osobnym storage (S3, NFS) – migracja serwera nie dotyka wtedy plików.
