1. yüzyılın ortalarında modern tıbbın dönüm noktalarından biri yaşandı. İngiliz cerrah Joseph Lister, mikropların varlığını ve yaralardaki cerahatin havadan ve kirli aletlerden bulaştığını kanıtlayarak antiseptik cerrahiyi başlattı. Aletlerin fenol çözeltisiyle yıkanmasını, ellerin cerrahi öncesi sterilize edilmesini ve temiz önlükler giyilmesini önerdi.

Peki dönemin kıdemli cerrahları ne yaptı? Lister'ı alkışladılar mı? Hayır, tam tersine onunla alay ettiler! Ameliyata kan ve irin lekeleriyle kurumuş cerrahi önlüklerle girmeyi bir "tecrübe ve hekimlik şerefi" sayıyorlardı. "Biz kırk yıldır bu ellerle ameliyat yapıyoruz, ne mikrobuymuş! Bu yeni moda sterilizasyon hastanın mizacını bozar" dediler. Hastalar lohusa hummasından, sepsisten ve kangrenden kırılırken, o muhafazakâr hekimler çağ dışı alışkanlıklarına sarılmaya devam etti.

Yazılım ve web altyapısı dünyasında da 2026 yılına gelmiş olmamıza rağmen hâlâ sunucularda PHP 5.6 cesedine sarılıp gözyaşı döken devasa bir kitle vardır. Onlar, bilişim dünyasının "yıkanmamış cerrahi önlük" savunucularıdır.

Bir Aşk Masalı: 2012 Model Spagetti Script

Senaryo neredeyse her hosting firmasında ezberlenmiştir. Müşteri, 2012 yılında üniversite öğrencisi bir akrabasına veya Kadıköy'deki bir pasajda "web tasarımcısı" olduğunu iddia eden bir şahsa 300 liraya e-ticaret veya kurumsal tanıtım sitesi yaptırmıştır.

Yazılımın kaynak koduna girdiğinizde bir mühendislik faciası değil, tam bir arkeolojik kazı alanı görürsünüz:

<?php
// baglanti.php - 2012
$conn = mysql_connect("localhost", "root", "123456");
mysql_select_db("eticaret_db", $conn);
mysql_query("SET NAMES 'latin5'");
 
$id = $_GET['id'];
$sorgu = mysql_query("SELECT * FROM urunler WHERE id = " . $id);
$urun = mysql_fetch_array($sorgu);
?>

mysql_* fonksiyonları (2013'te PHP 5.5 ile kınandı/deprecated oldu, 2015'te PHP 7.0 ile tamamen dilden sökülüp atıldı). SQL Injection açıklarına davetiye çıkaran ham string birleştirmeleri, register globals kalıntıları, magic_quotes_gpc bağımlılıkları...

Fakat bu ucube yazılım, PHP 5.6'nın o geniş ve affedici toleransı altında yıllarca çalışmış, müşteriye para kazandırmıştır. Ve müşteri için "çalışan şeye dokunulmaz" kuralı, evrenin en yüce fizik kanunudur.

EOL (End of Life) ve Siber Güvenlik Karadeliği

PHP 5.6'nın resmi desteği (güvenlik yamaları dahil) 31 Aralık 2018 tarihinde, yani neredeyse on yıl önce tamamen sona erdi. Bu tarihten sonra PHP 5.6 için tek bir güvenlik yaması bile çıkmadı. İnternet korsanları için PHP 5.6 çalıştıran bir sunucu, anahtarı üzerinde bırakılmış, kapısı ardına kadar açık bir zırhlı araç gibidir.

Veri merkezindeki sistem yöneticileri, sunucu güvenliğini ve PCI-DSS standartlarını korumak için kaçınılmaz adımı atar:

  • Eski cPanel/CloudLinux sunucularından PHP 5.6 derlemesi kaldırılır.
  • Sunucu varsayılanı modern, güvenli ve 4 kat daha hızlı olan PHP 8.2 veya 8.3'e çekilir.

Ve ertesi sabah saat 09:00'da kıyamet kopar.

"Fatal Error: Uncaught Error: Call to undefined function mysql_connect()"

Müşteri sabah sitesine girmek istediğinde beyaz bir sayfa ve üzerinde tek bir satır hata görür:

Fatal error: Uncaught Error: Call to undefined function mysql_connect() 
in /home/firma/public_html/baglanti.php:3

Müşterinin feryadı anında destek biletine yansır:

"Siz benim ticaretime kasıtlı olarak balta vuruyorsunuz! Sitem on yıldır tıkır tıkır çalışıyordu. Gece ne halt yediniz de sitemi bozdunuz? 'Fatal error' diye bir şey çıkıyor! Derhal eski sürüme geri alın sunucuyu, avukatıma talimat verdim, kaybettiğim her dakikanın cirosunu sizden tazminatla alacağım!"

Destek mühendisi açıklamaya çalışır: "Ahmet Bey, PHP 5.6 sürümü 2018 yılında öldü. Sitenizin kullandığı kodlar 15 yıllık. Güvenlik açıkları nedeniyle sunucuda bu sürümü barındıramayız. Yazılımcınızla görüşüp sitenizi PDO veya MySQLi standartlarına, PHP 8.x uyumluluğuna güncellemeniz gerekiyor."

Müşterinin cevabı klasiktir:

"Yazılımcı kim bilir nerede, askere gitti evlendi çocuk sahibi oldu! Ben yazılımcı tanımam. Ben size hosting parası ödüyorum. Benim kodum bozuk değil, siz bozdunuz! Dünyanın hiçbir yerinde böyle saçmalık yok, açın benim 5.6'mı!"

Hardened PHP ve İllüzyonun Bedeli

Hosting sektörü bu inatçı kitleyi yönetebilmek için ara çözümler icat etmek zorunda kalmıştır. CloudLinux'un geliştirdiği Hardened PHP teknolojisi, PHP 5.6 gibi fosilleşmiş sürümleri Linux çekirdeğinde özel yamalarla izole ederek çalıştırmaya devam eder. Ancak bu hizmet ek lisans maliyetleri gerektirir.

Hosting firması müşteriye "Pekala, sitenizi özel bir izole kapsüle alıp PHP 5.6'da çalıştırabiliriz ancak bu eski sürümün güvenlik bakım maliyeti aylık 15 dolardır" dediğinde, müşteri bu kez "Soyguncu bunlar!" diye bağırmaya başlar. Yıllık 100 liralık pakete 15 dolar sürüm desteği vermek istemez ama o kodu modern bir yazılımcıya 5.000 liraya refactor ettirmeye de yanaşmaz.

Muhafazakârlığın Mühendislik Maliyeti

Teknolojide nostalji ve sadakat olmaz. Yazılım yaşayan, nefes alan bir organizmadır. Eğer bir yazılımı on yıl boyunca hiç güncellemeden, tek bir satır refactoring yapmadan yayında tutabileceğinizi sanıyorsanız, siz mühendislik değil hayalperestlik yapıyorsunuzdur.

PHP 5.6 ısrarının sisteme ödettiği bedeller şunlardır:

  1. Performans Kaybı: PHP 8.x, JIT (Just-In-Time) derleyicisi ve opcache optimizasyonları sayesinde PHP 5.6'ya kıyasla aynı donanımda 3 ila 4 kat daha fazla istek (RPS) karşılar ve yarı yarıya daha az bellek tüketir. 5.6'da kalmak, sunucu elektriğini ve işlemciyi havaya savurmaktır.
  2. Kriptografik Çöküş: PHP 5.6'daki OpenSSL kütüphaneleri modern TLS 1.3 protokolünü, modern şifreleme algoritmalarını (AES-GCM, ChaCha20) desteklemez. Banka sanal POS'ları ve modern API'ler bu sunucularla el sıkışmayı reddeder.
  3. Ransomware ve Botnet Riski: Eski PHP sürümlerindeki bilinen bellek taşması (buffer overflow) ve uzaktan kod çalıştırma (RCE) açıkları, sitenin anında bir kripto madenci veya spam zombisine dönüşmesine neden olur.

Ameliyata kirli elleriyle girmekte direnen 19. yüzyıl cerrahları tıp tarihinin tozlu sayfalarında birer ibret vesikası olarak kaldı. PHP 5.6'ya tapınan, mysql_connect() kaldırıldı diye dünyayı ayağa kaldıran zihniyet de eninde sonunda aynı kaderi paylaşacaktır. Kodunuzu ya zamanında sterilize edip güncellersiniz, ya da o kangren olmuş yazılımınızla birlikte dijital mezarlığa gömülürsünüz.