PrestaShop mağazası 500 hatası veya boş sayfa veriyor
PrestaShop'ta boş bir sayfa veya 500 hatası tek başına bir şey söylemez: bu bir belirtidir, teşhis değil. Sorunun bir eklentiden, bir override'dan, veritabanından mı yoksa sunucudan mı kaynaklandığını anlamak için gerçek hata mesajlarını okumak gerekir.
Ele aldığım durumlar
- Sitenin ön yüzü veya yönetim paneli yüklenirken tamamen boş ekran
- Bir eklenti veya PrestaShop güncellemesinin hemen ardından ortaya çıkan 500 hatası
- Yalnızca belirli sayfalarda görülen 500 hatası (ürün sayfası, sepet, sipariş)
- Barındırma sağlayıcısı değişiminden sonra "The file config/settings.inc.php is missing" mesajı
- Bir override dosyasında yapılan manuel değişiklik sonrası tetiklenen 500 hatası
- Yerelde çalışan ama üretim sunucusuna aktarılınca hata veren site
Nasıl ilerliyorum
-
Debug modunun etkinleştirilmesi
Genel boş sayfa yerine PHP veya Smarty'nin gerçek hata mesajını görebilmek için config/defines.inc.php içinde _PS_MODE_DEV_ değerini true yapıyorum.
-
Logların incelenmesi
Sunucunun PHP loglarını (genellikle error_log veya Apache/Nginx logları içinde) ve PrestaShop 1.7/8'de Symfony hatalarını içeren var/logs/ klasörünü inceliyorum.
-
Sorunlu bileşenin izole edilmesi
Eklentileri ps_module tablosu veya FTP üzerinden tek tek devre dışı bırakıyor, core ile çakışan bir dosyayı tespit etmek için override/ klasörünün içeriğini kontrol ediyorum.
-
Sunucu kontrolü
PHP sürümünü, etkin uzantıları, memory_limit değerini ve var/cache, var/logs ile config üzerindeki yazma izinlerini kontrol ediyorum; bunlar barındırma değişikliği sonrasında sık görülen nedenlerdir.
-
Düzeltme ve önbelleğin temizlenmesi
Neden belirlendikten sonra ilgili dosyayı düzeltiyor veya sunucuyu yeniden yapılandırıyorum, ardından debug modunu tekrar false yapmadan önce var/cache/prod'u (1.6'da cache/smarty) temizliyorum.
PrestaShop’ta boş sayfa: nerede göründüğü, nereden geldiğini söyler
Günlükleri okumadan önce bile boş sayfanın ya da 500 hatasının nerede oluştuğunu not edin. Bu, arama alanını yarıya indirir.
- Hem mağaza hem yönetim paneli boş: arıza, PrestaShop ikisini ayırt etmeden önce oluşuyor. Yapılandırmaya bakın: barındırma firmasının değiştirdiği PHP sürümü, eksik bir
app/config/parameters.php(1.7, 8, 9) ya daconfig/settings.inc.php(1.6), geçersiz bir.htaccess, eksik yazma izinleri. - Yalnızca yönetim paneli: çoğu zaman
var/cache/içinde önceki bir sürümden kalan önbellek ya da yönetim paneline bağlanan bir modül. - Yalnızca mağaza tarafı ya da tek bir sayfa: bir görüntüleme hook’una bağlı modül, bir tema dosyası ya da o sayfaya özgü bir veri.
- Yalnızca sipariş adımında: yalnızca bu aşamada çağrılan ödeme ya da kargo modülü.
_PS_MODE_DEV_ açıkken sayfa hâlâ boşsa, hata PrestaShop yüklenmeden önce oluşuyor demektir: okunması gereken var/logs değil, sunucunun PHP hata günlüğüdür.
En sık görülen hata mesajları ve işaret ettikleri
Cannot declare class …ya daCannot redeclare class …: iki kez tanımlanmış ya da bir modül kaldırıldıktan sonra yerinde kalmış bir override. Sınıf dizinini silmek — 1.7 ve sonrasındavar/cache/prod/class_index.php, 1.6’dacache/class_index.php— PrestaShop’u onu yeniden oluşturmaya zorlar.Allowed memory size of … bytes exhausted: PHP bellek sınırına ulaşıldı; genellikle bir içe aktarma, küçük resimlerin yeniden oluşturulması ya da bir dizinleme sırasında.Call to undefined function each()ya dacreate_function(): eski bir PHP sürümü için yazılmış bir modül. Bu fonksiyonlar PHP 8’de kaldırıldı; bkz. PrestaShop’u PHP 8’e geçirmek.SQLSTATE[42S02]: Base table or view not found: bir geçişten, yarıda kalan bir SQL içe aktarmasından ya da düzgün kaldırılmamış bir modülden sonra eksik bir tablo.Link to database cannot be established: yapılandırma dosyasında hatalı veritabanı bilgileri ya da erişilemeyen bir MySQL sunucusu. Bkz. veritabanı bağlantı hatası.var/cacheya davar/logsüzerindePermission denied: kaybolan yazma izinleri; FTP aktarımından ya da barındırma değişikliğinden sonra sık görülür.
En sık görülen nedenler
PrestaShop'ta 500 hatası nadiren rastlantısaldır. En sık karşılaştığım durumlar:
- Sınıfın yeniden tanımlanmasına yol açan, hatalı yazılmış veya
override/ile bir eklenti arasında yinelenmiş bir override dosyası. - Barındırma sağlayıcısında yapılan bir PHP sürüm yükseltmesi sonrası ortaya çıkan uyumsuzluk (örneğin PHP 8'de kaldırılmış bir fonksiyonu kullanan bir eklenti).
- FTP ile dosya aktarımından sonra
var/cache,var/logsveyaconfigüzerinde eksik yazma izinleri. - PrestaShop çalışmaya başlamadan önce yönlendirmeyi bozan, bozulmuş bir
.htaccessdosyası veya geçersiz bir yeniden yazma kuralı. - Bir geçiş veya yarıda kalan SQL içe aktarma sonrası veritabanında eksik veya bozulmuş bir tablo.
1.6 sürümünde, boş sayfa genellikle bir tema güncellemesinden sonra temizlenmemiş derleme önbelleğindeki (cache/smarty/compile) bir Smarty hatasını gizler.
define('_PS_MODE_DEV_', true);
İlgili sayfalar
-
PrestaShop hata ayıklama modunu açmak
Sürüme göre izlenecek adımlar ve ardından nasıl kapatılacağı.
-
PrestaShop hata günlüklerini okumak
Günlüklerin nerede olduğu ve önemli satırın nasıl bulunacağı.
-
Ürün sayfası kaydedilemiyor
Hata yalnızca yönetim panelinde bir ürün kaydedilirken çıkıyorsa.
-
Kurulmayı reddeden modül
Kurulum hatası, kaybolan modül: dosya ve veritabanı tarafındaki nedenler.
-
Güncellemeden sonra kaybolan ödeme yöntemi
Arıza yalnızca sipariş sürecinde görülüyorsa.
-
Tekrar eden hatalar: onarmak mı, yeniden yapmak mı?
Eski bir sürümde her düzeltme yenisini doğuruyorsa.
İhtiyacınızı bir dakikada anlatın
Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.