Teknoloji

PHP Versiyon ve Eklenti Seçimi Rehberi: WordPress, OpenCart, Magento ve Kurumsal Uygulamalar İçin Uyum Matrisi

PHP tarafında yanlış sürüm veya eksik eklenti seçimi, bir projeyi baştan sona kilitleyebiliyor. Özellikle WordPress, OpenCart, Magento ve kurumsal PHP uygulamalarını aynı altyapıda çalıştırıyorsanız; "Hangi site hangi PHP versiyonunda? Hangi eklenti zorunlu, hangisi opsiyonel?" soruları bir süre sonra ciddi bir mimari karara dönüşüyor. DCHost olarak günlük operasyonlarımızda en çok gördüğümüz sorunlardan biri, uygulama gereksinimleriyle sunucudaki PHP sürümü ve eklenti setinin birbiriyle çakışması.

Bu rehberde; hem paylaşımlı hosting hem de VPS/dedicated sunucu tarafında PHP versiyon ve eklenti seçimini adım adım netleştireceğiz. WordPress, OpenCart, Magento ve tipik kurumsal uygulamalar (Laravel, Symfony, özel yazılımlar) için pratik bir uyum matrisi çıkaracağız. Böylece yeni bir proje yayına alırken ya da mevcut bir siteyi PHP 8.x'e yükseltirken, "Deneyelim, bozulursa geri döneriz" yerine kontrollü ve öngörülebilir bir yol izleyebilirsiniz.

Yazı boyunca DCHost altyapısında çoklu PHP sürümü, OPcache, Redis/Memcached, ionCube gibi yaygın bileşenleri nasıl konumlandırabileceğinizden, sahada gerçekten iş gören kombinasyonlardan ve sık düşülen tuzaklardan bahsedeceğim. Ayrıca PHP yükseltme sürecini daha derin anlamak isterseniz PHP 8 geçiş rehberimizi de mutlaka okumanızı öneririm.

PHP Versiyon Seçiminin Temeli: Güvenlik, Performans, Uyum

PHP sürümü seçerken aslında üç parametreyi aynı anda yönetmeye çalışıyoruz:

  • Güvenlik: EOL (end-of-life) olmuş, yani artık güvenlik güncellemesi almayan sürümler büyük risk taşır.
  • Performans: PHP 7 → 8 sıçramasında, özellikle PHP 8.1/8.2 ile ciddi performans artışları var.
  • Uyumluluk: Özellikle eski tema/eklenti kullanan WordPress veya güncellenmemiş OpenCart/Magento kurulumları, yeni PHP sürümleriyle çakışabilir.

Kabaca tablo şöyle:

  • PHP 7.4: Artık EOL; sadece mecbur kalınan, güncellenemeyen eski projeler için geçici çözüm olarak düşünülmeli.
  • PHP 8.0: Geçiş için ara basamak olarak hala kullanılabiliyor, ancak yeni projelerde en az 8.1+ hedeflemek mantıklı.
  • PHP 8.1: WordPress, Laravel, modern OpenCart/Magento sürümleri için stabil ve önerilen taban.
  • PHP 8.2/8.3: Yeni projeler için performans ve dil özellikleri açısından tercih sebebi; uyumluluk testini geçebilen projeleri buraya taşımak orta-uzun vadede avantaj.

Bu dengeyi kurarken uygulama dokümantasyonunda belirtilen minimum sürümü dikkate almalı, ancak "minimum" değerleri son sınır olarak değil, başlangıç noktası olarak görmelisiniz. Örneğin birçok tema/eklenti geliştiricisi "PHP 7.4+" yazıyor; bu, 7.4'te de çalışır demek, 8.1'de çalışmayacağı anlamına gelmez. Yine de üretim geçişinden önce staging ortamında test etmek staging ortamı kurulum rehberimizde anlattığımız gibi kritik.

Genel Strateji: Aynı Altyapıda Birden Fazla PHP Sürümü Yönetmek

DCHost olarak hem paylaşımlı hosting paketlerimizde hem de yönetilen VPS/dedicated çözümlerimizde çoklu PHP sürümü desteği sunuyoruz. Bu sayede:

  • Yeni projeleri PHP 8.1/8.2 üzerinde başlatırken,
  • Güncellenmeyi bekleyen eski siteleri geçici olarak PHP 7.4/8.0 üzerinde tutabiliyorsunuz.

cPanel/DirectAdmin gibi paneller kullanıyorsanız, her alan adı için ayrı PHP sürümü seçimi mümkündür. Bu konuda detaylı teknik adımlar için çoklu PHP sürümü yönetimi rehberimize göz atabilirsiniz.

Pratik strateji şöyle olabilir:

  1. Yeni kurulumlar: WordPress, Laravel, modern OpenCart/Magento gibi projeleri doğrudan PHP 8.1 veya 8.2 ile başlatın.
  2. Mevcut projeler: Önce staging ortamında PHP 8.1 testi, hata yoksa canlıya alın; beklenmeyen hata varsa geçici olarak PHP 8.0'a inin, kod/eklenti güncellemesi sonrası tekrar yükseltin.
  3. Eski ve güncellenemeyen uygulamalar: Kısa vadede 7.4/8.0 üzerinde çalıştırın, orta vadede refactor veya yeniden geliştirme planına alın.

WordPress İçin PHP Versiyon ve Eklenti Matrisi

Önerilen PHP Sürümleri

  • Blog ve kurumsal WordPress: PHP 8.1 (tercihen) veya 8.2
  • WooCommerce mağazaları: PHP 8.1 stabil bir tercih; WooCommerce eklenti ekosistemi 8.2'ye büyük oranda hazır, ama yayına almadan mutlaka test edin.

WooCommerce tarafında performans ve kaynak planlama için WooCommerce kapasite planlama rehberimizi de incelemenizi tavsiye ederim.

Zorunlu ve Önerilen PHP Eklentileri (WordPress)

  • Zorunlu / çok yaygın ihtiyaç duyulanlar
    • mysqli veya pdo_mysql (MySQL bağlantısı)
    • curl (API entegrasyonları, güncelleme kontrolleri)
    • json (çekirdek fonksiyonlar ve REST API)
    • mbstring (UTF-8, çok baytlı karakter desteği)
    • zip (eklenti/tema yükleme ve bazı yedekleme eklentileri)
  • Güçlü şekilde önerilenler
    • gd ve/veya imagick (görsel işleme, yeniden boyutlandırma)
    • intl (çok dilli siteler, tarih/sayı formatlama)
    • exif (fotoğraf sitelerinde EXIF verisi, bazı güvenlik kontrolleri)
    • opcache (PHP kod önbellekleme, ciddi hız artışı)
  • Performans ve ölçekleme için isteğe bağlılar
    • redis veya memcached (object cache için, özellikle WooCommerce'te)
    • bcmath (fiyat/kur hesaplamalarında köşeli senaryolar)

OPcache ve Redis/Memcached tarafında daha derin bir optimizasyon yapmak istiyorsanız, PHP OPcache ayarları rehberimizi ve WordPress ve Laravel için php.ini ayarları yazımızı referans alabilirsiniz.

WordPress İçin Pratik Kombinasyon Örneği

DCHost üzerindeki tipik bir WooCommerce kurulumu için önerdiğimiz set:

  • PHP sürümü: 8.1
  • Zorunlu eklentiler: mysqli, curl, json, mbstring, zip
  • Görsel eklentiler: gd, imagick
  • Yerelleştirme: intl
  • Performans: opcache + redis (veya memcached)

Bu yapı, hem çekirdek WordPress gereksinimlerini hem de yaygın eklentilerin ihtiyaçlarını karşılar. Bazı güvenlik eklentileri ve yedekleme çözümleri ek olarak simplexml, dom gibi eklentiler isteyebilir; bunlar genellikle varsayılan kurulumda aktiftir.

OpenCart İçin PHP Versiyon ve Eklenti Seçimi

OpenCart Sürümüne Göre PHP Tercihi

OpenCart tarafında en kritik konu, mağazanızın sürümüdür. Kabaca:

  • OpenCart 3.x: Genellikle PHP 7.4 – 8.1 arası destek; çoğu kurulum PHP 8.0/8.1 ile iyi çalışıyor, ancak eski tema/modüller sorun çıkarabilir.
  • OpenCart 2.3.x ve daha eski: Çoğunlukla PHP 5.6/7.0/7.2 dönemine göre yazılmıştır; bu sürümleri PHP 8.x üzerine zorlamak ciddi hata üretir. Mümkünse projeyi OpenCart 3.x+'e yükseltmek en sağlıklı çözüm.

Yeni bir OpenCart mağazası kuruyorsanız, hem uygulama hem de tema/modül üreticisinin PHP 8.1 desteği sunduğundan emin olup PHP 8.1 odaklı tasarım yapmak en mantıklısıdır.

OpenCart İçin Zorunlu Eklentiler

  • mysqli / pdo_mysql (veritabanı bağlantısı)
  • curl (ödeme kısayolları, kargo entegrasyonları)
  • json (API ve bazı modüller)
  • mbstring (Türkçe karakter desteği, çok dilli altyapı)
  • zip (eklentilerin arşivden kurulumu)
  • gd ve tercihen imagick (ürün görselleri)
  • soap (bazı ERP/entegrasyon modülleri için gerekebilir)
  • bcmath (para birimi dönüşümleri ve kampanya hesapları için faydalı)

Türkiye pazarında çok kullanılan bazı sanal POS ve kargo modülleri, ionCube ile şifrelenmiş olabiliyor. Böyle bir modül kullanıyorsanız sunucuda mutlaka ilgili PHP sürümüne uygun ionCube Loader eklentisinin etkin olduğundan emin olun.

Magento İçin PHP Versiyon ve Eklenti Matrisi

Magento'da Versiyon Disiplini Neden Daha Kritik?

Magento, yapısı gereği daha ağır ve kaynak tüketimi yüksek bir platform. Bu yüzden hem PHP versiyonu hem de eklentiler konusunda daha disiplinli olmak gerekiyor. Detaylı kaynak ve PHP/MySQL ayarları için Magento için hosting rehberimizi mutlaka inceleyin.

Genel PHP Versiyon Rehberi (Magento 2.x)

Magento 2 sürümleri, genellikle belirli PHP min/maks sürümleriyle test edilerek yayımlanır. Genel yaklaşım:

  • Dokümantasyonda belirtilen minimum PHP sürümünden bir tık yukarıyı hedefleyin (örneğin min 7.4 yazıyorsa 8.1 için uyumluluk notlarına bakın).
  • Tema/eklenti sağlayıcılarınızın PHP 8.1/8.2 uyumluluk açıklamalarını kontrol edin.
  • Yüklü modüllerin bir kısmı ionCube ya da benzeri çözümlerle şifrelenmiş olabilir; bu durumda hem Magento sürümü hem de modul tarafı PHP yükseltmesine hazır olmalı.

Magento İçin Temel Eklenti Seti

  • mysqli / pdo_mysql (MySQL bağlantısı)
  • curl (uzak API, ödeme sistemleri, lisans kontrolleri)
  • json
  • mbstring
  • gd ve imagick (görsel işleme yoğun)
  • intl (fiyat, tarih, dil formatları)
  • bcmath (karmaşık fiyat ve vergi hesapları için neredeyse şart)
  • soap (B2B entegrasyonlar için sık kullanılır)
  • opcache (yüksek trafikte olmazsa olmaz)

Orta ve büyük kataloglu mağazalarda nesne önbelleği için redis neredeyse standart haline geldi. DCHost üzerinde Magento barındırırken, Redis servislerini ayrı bir VPS veya aynı sunucuda izole bir servis olarak konumlandırmak, veritabanı ve PHP-FPM yükünü ciddi oranda hafifletir.

Kurumsal PHP Uygulamaları (Laravel, Symfony, Özel Yazılımlar)

Versiyon Stratejisi

Modern framework tabanlı kurumsal uygulamalarda mümkün olduğunca güncel LTS PHP sürümlerine yakın kalmak en doğrusudur:

  • Laravel 9/10+ projeleri için doğrudan PHP 8.1/8.2 hedefleyin.
  • Symfony ve benzeri framework'lerde framework dokümantasyonundaki "recommended" sürümü baz alın.
  • Framework versiyonunu güncellemeden PHP majör sürümü (7.x → 8.x) yükseltmeyin; önce framework'ü, sonra PHP'yi yükseltmek genelde daha sorunsuzdur.

Kurumsal uygulamalarda çoğunlukla arka plan kuyruk işleri, raporlama komutları ve API entegrasyonları devreye girer. Bu senaryolarda PHP ayarlarınızı da dikkatli planlamanız gerekir. Ayrıntılı php.ini ayarlarına örnekler için PHP ayarlarını doğru yapmak rehberimize göz atabilirsiniz.

Kurumsal Uygulamalar İçin Tipik Eklentiler

  • pdo_mysql (ya da tercihen PostgreSQL kullanıyorsanız pdo_pgsql)
  • curl (üçüncü parti API entegrasyonları)
  • mbstring, intl (çok dilli arayüzler, PDF/fatura çıktıları)
  • soap (legacy sistemlerle entegrasyon)
  • bcmath ve gmp (karmaşık hesaplamalar, finans ve kriptografi fonksiyonları)
  • redis veya memcached (session ve cache depolaması)
  • opcache (özellikle yüksek concurrency altında kritik)

Bu tür uygulamalarda genellikle PHP-FPM havuz ayarları ve OPcache konfigurasyonu, doğru eklenti seti kadar önemli hale gelir. PHP 8.x ile ilgili detaylı yükseltme adımlarını ve FPM/OPcache kombinasyonlarını merak ediyorsanız, PHP 8.x yükseltme kontrol listemizi inceleyebilirsiniz.

Uyum Matrisi: WordPress, OpenCart, Magento ve Kurumsal Uygulamalar İçin Özet Tablo

Aşağıdaki tablo, sahada en çok kullanılan kombinasyonları özetler. Bu tabloyu "sert bir kural" değil, "başlangıç noktası" olarak düşünün; her projede tema/eklenti ve entegrasyonlara göre küçük oynamalar gerekebilir.

Uygulama Türü Önerilen PHP Sürümü Zorunlu / Temel Eklentiler Güçlü Önerilen / Opsiyonel Eklentiler Notlar
WordPress (Blog/Kurumsal) 8.1 / 8.2 mysqli veya pdo_mysql, curl, json, mbstring, zip gd, imagick, intl, exif, opcache Basit sitelerde Redis/Memcached şart değil, ama OPcache mutlaka açık olmalı.
WooCommerce 8.1 (test sonrası 8.2) mysqli veya pdo_mysql, curl, json, mbstring, zip, gd imagick, intl, exif, opcache, redis veya memcached, bcmath Yüksek trafikte Redis object cache ciddi fayda sağlar.
OpenCart 3.x 7.4 – 8.1 (uyumluluk testine göre) mysqli veya pdo_mysql, curl, json, mbstring, zip, gd imagick, intl, soap, bcmath, opcache, ionCube (gerekirse) Özellikle eski tema/modüllerde PHP 8.x uyumluluğu mutlaka test edilmeli.
Magento 2.x Dokümantasyonda önerilen 7.4 / 8.1 / 8.2 hattı pdo_mysql, curl, json, mbstring, gd, intl, bcmath imagick, soap, opcache, redis, ionCube (gerekirse) Büyük kataloglarda Redis + iyi ayarlanmış OPcache neredeyse zorunludur.
Kurumsal Laravel/Symfony 8.1 / 8.2 pdo_mysql veya pdo_pgsql, curl, json, mbstring intl, bcmath, gmp, soap, redis veya memcached, opcache Queue işçileri ve API yükü için ayrı FPM havuzları düşünülebilir.

DCHost Altyapısında PHP Versiyon ve Eklenti Yönetimi Nasıl Kolaylaştırılır?

DCHost olarak hem paylaşımlı hosting hem de VPS/dedicated sunucu hizmetlerimizi, çoklu PHP sürümü ve esnek eklenti yönetimi gözeterek tasarlıyoruz. Pratikte şu senaryolarla çok karşılaşıyoruz:

  • Ajansın aynı sunucuda 20+ WordPress sitesi var; yeni kurduğu siteleri PHP 8.2, eski projeleri 7.4/8.0 üzerinde tutmak istiyor.
  • E-ticaret firması yeni Magento 2 mağazasını PHP 8.1 üzerinde açarken, aynı VPS'te çalışan eski OpenCart mağazasını henüz yükseltemiyor.
  • Kurumsal bir şirket hem WordPress kurumsal siteyi hem de Laravel tabanlı portalını tek dedicated sunucuda barındırıyor.

Bu tip durumlarda DCHost ortamında genellikle şu yolu izliyoruz:

  1. Her alan adı / proje için ayrı PHP sürümü atıyoruz (panel üzerinden veya doğrudan PHP-FPM havuzlarıyla).
  2. Sitelerin gerektirdiği ortak eklentileri (curl, mbstring, json, gd, intl, opcache vb.) varsayılan olarak aktif tutuyoruz.
  3. Redis/Memcached, ionCube gibi ek bileşenleri sadece ihtiyaç duyan projeler için devreye alıyoruz.
  4. PHP yükseltmelerinde önce staging ortamında test yapıp, sonra canlıya "adım adım" geçiyoruz.

Eğer manuel VPS yönetimi yapıyorsanız, PHP-FPM havuzlarını ve php.ini dosyalarını doğru ayarlamak kritik hale geliyor. Bu noktada php.ini ayarları rehberi ve OPcache optimizasyon yazımız sizi bir hayli ileri taşıyacaktır.

PHP Versiyon ve Eklenti Değiştirirken İzlenecek Adımlar

İster DCHost paylaşımlı hosting ister VPS/dedicated kullanın, PHP sürüm/eklenti değişikliğine gitmeden önce standart bir kontrol listesi oluşturmak en sağlıklısıdır:

  1. Mevcut durumu envanterleyin
    • Hangi alan adı hangi PHP sürümünde?
    • Hangi sitelerde özel eklenti/ionCube vb. kullanılıyor?
  2. Staging ortamı oluşturun
  3. PHP sürümünü staging'de yükseltin
    • Hata loglarını aktif edin (display_errors = Off, log_errors = On, özel error_log dosyası).
    • Kritik iş akışlarını (sepet → ödeme, giriş, kayıt, form gönderimi) tek tek test edin.
  4. Eklenti setini gözden geçirin
    • Eksik eklentiler için panelde ilgili modülü işaretleyin veya VPS'te paket olarak kurun.
    • Kullanılmayan, ama açık duran eklentileri kapatarak yüzey alanını daraltın.
  5. Canlıya kontrollü geçiş
    • Trafiğin görece düşük olduğu bir zaman dilimini seçin.
    • Öncesinde tam yedek alın; yedekleme stratejileri için 3-2-1 yedekleme rehberimizi inceleyin.

Sonuç: Uyum Matrisi Elinizde, Sırada Disiplinli Uygulama Var

PHP versiyon ve eklenti seçimi, "bozulursa geri çeviririz" bakışıyla ele alındığında genellikle en lazım anda patlayan sorunlara dönüşüyor. Elinizde artık WordPress, OpenCart, Magento ve kurumsal PHP uygulamalar için pratik bir uyum matrisi ve temel strateji var:

  • Yeni projeleri mümkün olduğunca PHP 8.1/8.2 üzerinde planlayın.
  • Eski projeleri geçici olarak eski sürümlerde tutmak yerine, güncelleme takvimine alın.
  • Her uygulama türü için zorunlu ve önerilen PHP eklentilerini netleştirin.
  • Staging ortamı, log takibi ve yedekleme disiplinini ihmal etmeyin.

DCHost olarak, ister paylaşımlı hosting ister yönetilen VPS/dedicated veya colocation ortamında olun, PHP tarafındaki bu geçişleri mümkün olduğunca sorunsuz yaşamanız için altyapımızı çoklu PHP, OPcache, Redis/Memcached ve gelişmiş yedekleme sistemleriyle destekliyoruz. Mevcut projelerinizi inceleyip hangi sitenin hangi PHP sürümü ve eklenti setiyle çalışmasının daha mantıklı olacağını netleştirmek isterseniz, altyapınızı birlikte gözden geçirebiliriz.

Bir sonraki adım olarak; PHP yükseltmesi düşünüyorsanız PHP 8 geçiş rehberini, detaylı php.ini optimizasyonu yapmak istiyorsanız da php.ini ayarları rehberimizi okuyarak bu matrisi kendi projelerinize uygulamaya başlayabilirsiniz.

Sıkça Sorulan Sorular

Güncel bir WordPress sitesi için genel olarak PHP 8.1 veya 8.2 en doğru seçimdir. Daha yeni sürümler hem performans hem de güvenlik açısından ciddi avantaj sağlar. Çekirdek ve çoğu eklentiyle uyum için mysqli veya pdo_mysql, curl, json, mbstring ve zip neredeyse zorunludur. Görsel işleme için gd ve tercihen imagick, çok dilli yapılar ve doğru tarih/sayı formatları için intl önerilir. Mutlaka aktif olmasını istediğimiz bir diğer eklenti de OPcache; PHP kodunu önbelleğe alarak TTFB ve genel yanıt süresini ciddi oranda düşürür. WooCommerce gibi ağır mağazalarda ek olarak Redis veya Memcached ile nesne önbelleği kullanmak, özellikle yüksek trafikte belirgin bir hızlanma sağlar.

Önce panik yapmadan mevcut sürümünüzü ve kullanılan tema/eklenti listesini netleştirin. Çok eski OpenCart 2.x veya ilk nesil Magento kurulumları, genellikle PHP 5.x–7.2 dönemine göre yazıldığı için PHP 8’e doğrudan taşındığında hatalar verebilir. Kısa vadede, DCHost altyapısında o proje için PHP 7.4 veya gerekiyorsa 7.3 gibi uyumlu bir alt sürüm tanımlayıp sistemi stabil halde tutabilirsiniz. Orta vadede ise iki adımlı bir plan mantıklı: Önce mağazayı OpenCart 3.x veya güncel Magento 2.x sürümüne yükseltmek, ardından tema ve modülleri PHP 8.1/8.2 uyumlu versiyonlarına geçirmek. Bu geçişleri staging ortamında test edip, detaylı yedek alarak canlıya aktarmak kritik önem taşır.

Evet, hem paylaşımlı hosting hem de VPS/dedicated sunucularda aynı anda birden çok PHP sürümünü güvenle kullanabilirsiniz. DCHost altyapısında her alan adı için ayrı PHP versiyonu atayabiliyor, gerektiğinde PHP-FPM havuzlarını da uygulama bazlı ayırabiliyoruz. Örneğin yeni bir Laravel veya WooCommerce projesini PHP 8.2 üzerinde çalıştırırken, henüz güncellenmemiş eski bir WordPress sitesini geçici olarak PHP 7.4 veya 8.0 üzerinde tutmak mümkün. Burada önemli olan, hangi sitenin hangi sürümde çalıştığını düzenli olarak envanterlemek, EOL olmuş sürümleri sadece geçici çözüm olarak kullanmak ve tüm yükseltmeleri staging ortamında test edip sağlam yedekler sonrasında canlıya almaktır.

Özellikle WordPress, WooCommerce, Magento ve Laravel gibi framework tabanlı uygulamalarda bu eklentiler ciddi fark yaratır. OPcache, PHP kodunu derlenmiş halde bellekten sunarak her istekte yeniden derleme maliyetini ortadan kaldırır; bu da hem CPU yükünü hem de yanıt süresini gözle görülür biçimde düşürür. Redis veya Memcached ise oturum (session) ve uygulama önbelleğini disk yerine RAM’de tutarak veritabanı yükünü hafifletir. Özellikle WooCommerce ve Magento gibi sorgu yoğun sistemlerde, doğru yapılandırılmış OPcache + Redis/Memcached kombinasyonu olmadan ölçeklemek çok daha zor ve maliyetli hale gelir. Küçük sitelerde fark daha sınırlı olsa da, büyüme planlayan projeler için bu eklentileri en baştan mimariye dahil etmek uzun vadede büyük avantaj sağlar.