Kurulum tamamlanır, panel açılır, ana sayfa güzel görünür. Sonra ilk gerçek sipariş gelir ve bir şey tutmaz: ödeme sağlayıcısına bağlanılamaz, fatura PDF'i boş iner ya da Türkçe karakterli ürün adı sipariş özetinde bozulur. İşletme sahibi haklı olarak yazılımı sorgular. Oysa neredeyse her seferinde aynı sebep vardır: sunucuda bir PHP eklentisi kurulu değildir. Kod çağrıyı yapar, PHP “bu fonksiyonu tanımıyorum” der ve akış orada kesilir.
Çoğu kişi “hosting paketinde PHP var, yeter” sanır. PHP bir çekirdektir; ödeme şifrelemesi, görsel üretimi, para biçimlendirme, ZIP paketleme ve HTTP istekleri hep ayrı eklentilerin işidir. Bu yazıda bir e-pin satış scripti için hangi eklentinin tam olarak neyi çalıştırdığını, eksik olduğunda ortaya çıkan belirtiyi ve hepsini tek seferde nasıl doğrulayacağını anlatıyorum. Sonunda kurulum öncesi satıcıya gösterebileceğin net bir listen olacak.
Ödeme Entegrasyonu Neden İlk Günden Çalışmıyor? Cevap Genellikle İki Eklentide Saklı
Ödeme sağlayıcılarıyla konuşmak iki şey ister: dışarıya güvenli HTTP isteği açmak ve imza üretmek. Birincisi curl, ikincisi openssl eklentisinin işidir. curl kapalıysa sağlayıcıya hiç ulaşılamaz; belirtisi “bağlantı zaman aşımı” ya da bomboş bir dönüş sayfasıdır. openssl kapalıysa daha sinsi bir tablo çıkar: istek gider ama imza doğrulaması başarısız olur, sağlayıcı işlemi reddeder ve sen sebepsiz “geçersiz istek” hatası görürsün. Bir dijital ürün satış yazılımı için üçüncü kritik parça json'dur; modern sağlayıcıların tamamı JSON konuşur ve bu eklenti PHP 8'de çekirdeğe dâhil olsa da özel derlemelerde devre dışı bırakılabiliyor. Bu üçlü olmadan hiçbir otomatik ödeme akışı kurulamaz. Satıcıya sorarken şu cümleyi kullan: “curl, openssl ve json etkin mi, ayrıca giden bağlantılarda 443 portu açık mı?” İkinci kısım önemlidir; bazı paketlerde eklenti kurulu olur ama dış bağlantı güvenlik duvarında kapalıdır.
Veritabanı Bağlantısı için Hangi Sürücü? mysqli ile pdo_mysql Aynı Şey Değil
Modern kurulumlar pdo_mysql ister; çünkü hazır ifadeler (prepared statements) ve işlem yönetimi bu katmanda temiz çalışır. Bir e-pin satışında stok düşme, bakiye güncelleme ve sipariş oluşturma tek işlem içinde olmak zorundadır; bu da beginTransaction ve commit çağrılarının güvenilir çalışmasını gerektirir. Eski nesil kodlar mysqli kullanır. İkisi bir arada bulunabilir ve çoğu barındırma paketinde bulunur, ama “MySQL desteği var” ifadesi hangisinin açık olduğunu söylemez. pdo_mysql yoksa kurulum sihirbazı ilk adımda “veritabanı sürücüsü bulunamadı” der ve ileri gitmez. Bu, aslında iyi haberdir: kurulum sırasında patlayan bir eksik, aylar sonra ödeme akışında patlayan bir eksikten çok daha ucuzdur. Sessizce bozulan eklentiler tehlikelidir; yüksek sesle bozulanlar dosttur.
| Eklenti | Ne işe yarar | Eksikse belirti | Zorunluluk |
|---|---|---|---|
| pdo_mysql | Veritabanı ve işlem yönetimi | Kurulum başlamaz | Zorunlu |
| openssl | Şifreleme ve imza | Ödeme reddedilir | Zorunlu |
| curl | Dış API istekleri | Sağlayıcıya ulaşılmaz | Zorunlu |
| mbstring | Türkçe karakter işlemleri | Bozuk metin, kırpma | Zorunlu |
| json | Veri alışverişi biçimi | API yanıtı okunamaz | Zorunlu |
| gd veya imagick | Görsel boyutlandırma | Ürün görselleri üretilmez | Zorunlu |
| intl | Para ve tarih biçimi | Yanlış tutar gösterimi | Güçlü öneri |
| zip | Yedek ve toplu içe aktarma | Dosya işlemleri başarısız | Güçlü öneri |
| bcmath | Hassas tutar hesabı | Kuruş yuvarlama farkı | Güçlü öneri |
| opcache | Kod önbelleği | Belirgin yavaşlık | Performans |
Türkçe Karakterler Neden Bozuluyor? mbstring Olmadan Hiçbir Metin Güvende Değil
Türkçe satış yapan bir sistemde mbstring lüks değil, temel ihtiyaçtır. Bu eklenti olmadan PHP metinleri bayt bayt sayar; “ğ” ve “ş” gibi karakterler iki bayt tuttuğu için karakter sınırı uygulayan her yer bozulur. Sonuç: kısaltılmış ürün adında yarım karakter, küçük-büyük harf dönüşümünde “İ” yerine anlamsız işaret, arama kutusunda bulunamayan ürünler. En can sıkıcı hâli teslimat mesajı şablonunda görülür; müşteriye giden metin ortadan kesilir ve sen bunu ancak şikâyet gelince fark edersin. intl eklentisi de benzer bir görünmez işi yapar: para birimi ve tarih biçimlendirmesi. Yokluğunda tutarlar ondalık ayırıcı hatasıyla yazılır ve müşteri 1.250 TL ile 1,250 TL arasında tereddüt eder. Güven, bu küçük detaylarda kaybedilir.
Eksik eklenti kaynaklı destek taleplerinin dağılımı
- curl ve openssl (ödeme) 38%
- mbstring ve intl (metin, para) 28%
- gd ve imagick (görsel) 20%
- zip, bcmath ve diğerleri 14%
Görsel ve Fatura Üretimi için Hangisini Seçmeli: gd mi imagick mi?
Ürün kartı görselleri, küçük boy önizlemeler ve fatura üstüne yerleştirilen logo işlemleri bir görüntü kütüphanesi ister. gd hemen her paketle gelir, hafiftir ve WebP dâhil güncel biçimleri destekler; tipik bir e-pin yazılımı için fazlasıyla yeterlidir. imagick daha güçlüdür, renk profillerini ve PDF dönüşümlerini daha iyi yönetir, ama bellek tüketimi yüksektir ve paylaşımlı paketlerde çoğu zaman kurulu değildir. Kararı şöyle ver: yalnızca ürün görselini yeniden boyutlandırıp WebP üretiyorsan gd yeter. Fatura PDF'ini görüntüye çeviriyor, damgalı sertifika üretiyor ya da yüksek hacimde toplu görsel işliyorsan imagick'e yatırım yap. İkisinin birlikte kurulu olması sorun değildir; uygulama hangisini bulursa onu kullanır. Detaylı gereksinimleri özellikler bölümünde tek listede görebilirsin.
Eklenti Listesini Nasıl Beş Dakikada Doğrularsın?
Tahmin etmeyi bırak, ölç. En hızlı yol küçük bir kontrol dosyası yüklemek: içine yazıp tarayıcıdan açmak ve gelen tabloda eklenti başlıklarını aramak. İşin bittiğinde bu dosyayı mutlaka sil; sunucu bilgilerini herkese açık bırakmak ciddi bir güvenlik açığıdır. İkinci yol, barındırma panelindeki PHP eklenti yöneticisidir; çoğu panelde eklentiler onay kutusuyla açılıp kapanır ve çoğu zaman eksik olan şey bir tıkla gelir. Üçüncü yol, SSH erişimin varsa tek komutla tüm listeyi almaktır. Aşağıdaki tablo, kurulum öncesi elinde tutmanı önerdiğim doğrulama listesidir; her satırı işaretledikten sonra kuruluma başla.
| Kontrol | Nasıl bakılır | Beklenen | Durum |
|---|---|---|---|
| Zorunlu 5 eklenti | phpinfo çıktısı | Hepsi etkin | Kurulumdan önce |
| Dış bağlantı izni | curl ile test isteği | 443 açık | Kurulumdan önce |
| memory_limit | phpinfo | 256M ve üzeri | Kurulumdan önce |
| max_execution_time | phpinfo | 60 sn ve üzeri | Kurulumdan önce |
| upload_max_filesize | phpinfo | 32M ve üzeri | Toplu içe aktarma için |
| opcache durumu | phpinfo | Etkin | Yayına almadan önce |
| Kontrol dosyası silindi mi | Dosya yöneticisi | Silinmiş | Kurulumdan sonra |
Eklenti kurulu olsa bile barındırma firması disable_functions ile bazı çağrıları kapatabilir. Satıcıya “curl ve proc fonksiyonları kısıtlı mı?” diye sor; kurulu olmak ile çağrılabilir olmak aynı şey değildir.
Gereksinimleri baştan bilen bir kurulum
Pinova, kurulum sihirbazında eklenti ve yetki kontrolünü ilk adımda yapar; eksik varsa kuruluma başlamadan söyler. Lisans planlarını ve teknik listeyi incele.
Hangi PHP eklentileri gerçekten zorunlu?
pdo_mysql, openssl, curl, mbstring ve json olmadan sistem çalışmaz. gd veya imagick görsel üretimi için, intl ve bcmath ise doğru tutar ve biçim gösterimi için güçlü şekilde önerilir.
Paylaşımlı hostingde eksik eklentiyi kendim açabilir miyim?
Çoğu panelde PHP eklenti yöneticisi vardır ve onay kutusuyla açabilirsin. Panelde yoksa destek talebi açman gerekir; genellikle aynı gün içinde etkinleştirilir.
gd yeterli mi, imagick şart mı?
Sadece ürün görseli boyutlandırıp WebP üretiyorsan gd yeterlidir. PDF dönüşümü, damgalı sertifika üretimi veya yüksek hacimli toplu görsel işleme yapıyorsan imagick tercih edilir.
Eklentiler kurulu ama ödeme hâlâ çalışmıyor, neden?
En olası neden dış bağlantı kısıtlamasıdır: 443 portunun kapalı olması ya da disable_functions ile ilgili çağrıların engellenmesi. Eklentinin kurulu olması tek başına yeterli değildir.
Eklenti listesi sıkıcı bir teknik detay gibi görünür, ama dijital ürün satışında ödeme, teslimat ve güven tam olarak bu detayların üzerinde durur. Kurulum öncesinde beş dakika ayırıp listeyi doğrulamak, ilk haftada yaşanacak kesintilerin neredeyse tamamını ortadan kaldırır. Gereksinimleri karşılayan bir kurulumun nasıl akıcı çalıştığını görmek istersen canlı demo üzerinden ödeme ve teslimat akışını kendin dene, sonra lisans seçeneklerini değerlendir.

