{"id":8,"date":"2026-10-21T10:59:44","date_gmt":"2026-10-21T10:59:44","guid":{"rendered":"https:\/\/adnancanturk.com\/blog\/php-nodejs-2026-guvenlik-surumleri-sunucu-kontrol-listesi\/"},"modified":"2026-10-23T09:50:28","modified_gmt":"2026-10-23T09:50:28","slug":"php-nodejs-2026-guvenlik-surumleri-sunucu-kontrol-listesi","status":"publish","type":"post","link":"https:\/\/adnancanturk.com\/blog\/php-nodejs-2026-guvenlik-surumleri-sunucu-kontrol-listesi\/","title":{"rendered":"2026&#8217;da PHP ve Node.js: g\u00fcvenlik s\u00fcr\u00fcmleri ve sunucular\u0131n\u0131zda yapman\u0131z gerekenler"},"content":{"rendered":"<p class=\"lead\">\u00c7o\u011fu \u00fcretim ortam\u0131nda PHP ve Node.js yan yana \u00e7al\u0131\u015f\u0131r: PHP i\u00e7erik y\u00f6netimi, faturalama ya da panel taraf\u0131nda, Node.js ise API, derleme hatt\u0131 ya da ger\u00e7ek zamanl\u0131 servislerde. \u0130ki \u00e7al\u0131\u015fma ortam\u0131 da 2026&#8217;da y\u00fcksek \u00f6nem dereceli g\u00fcvenlik s\u00fcr\u00fcmleri yay\u0131mlad\u0131 ve onlar\u0131 bar\u0131nd\u0131ran sunucular\u0131n ayn\u0131 anda iki cephede ilgi g\u00f6rmesi gerekiyor.<\/p>\n<div class=\"tldr\">\n<p class=\"tldr-label\">TL;DR<\/p>\n<ul>\n<li>PHP 24 Eyl\u00fcl 2026&#8217;da yakla\u015f\u0131k bir d\u00fczine CVE&#8217;yi kapatt\u0131 (8.2.34, 8.3.35, 8.4.26, 8.5.11); Node.js haziran ve temmuzda g\u00fcvenlik s\u00fcr\u00fcmleri \u00e7\u0131kard\u0131.<\/li>\n<li>PHP 8.1 ve Node.js 20&#8217;nin \u00f6mr\u00fc doldu ve bu d\u00fczeltmelerin hi\u00e7birini almad\u0131lar; PHP 8.2 de 31 Aral\u0131k 2026&#8217;da ayn\u0131 noktaya geliyor.<\/li>\n<li>cPanel&#8217;de <code>php -v<\/code> bir sitenin ne \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131n kan\u0131t\u0131 de\u011fildir: MultiPHP&#8217;yi, i\u015fleyiciyi ve CloudLinux PHP Selector&#8217;\u0131 kontrol edin, ard\u0131ndan sitenin i\u00e7inden do\u011frulay\u0131n.<\/li>\n<li>Node.js tek bir sunucuda konteynerler ve CI imajlar\u0131 dahil birka\u00e7 yerde birden \u00e7al\u0131\u015fabilir ve her kopyan\u0131n ayr\u0131 g\u00fcncellenmesi gerekir.<\/li>\n<li>Her d\u00fczeltme ancak FPM havuzlar\u0131, mod_php kullanan Apache ve Node.js s\u00fcre\u00e7leri yeniden ba\u015flat\u0131ld\u0131ktan sonra devreye girer.<\/li>\n<\/ul>\n<\/div>\n<p>Bu yaz\u0131 her projenin haziran ile eyl\u00fcl aras\u0131nda neleri d\u00fczeltti\u011fini, kulland\u0131\u011f\u0131n\u0131z s\u00fcr\u00fcm hatt\u0131n\u0131n neden tek bir yamadan daha \u00f6nemli oldu\u011funu, bir cPanel sunucusunda bir sitenin ger\u00e7ekte hangi PHP&#8217;yi \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131 nas\u0131l \u00f6\u011frenece\u011finizi ve sekiz ad\u0131ml\u0131k bir kontrol listesini ele al\u0131yor. 21 Ekim&#8217;deki acil PHP2Shell s\u00fcr\u00fcm\u00fcn\u00fcn kendine ait bir <a href=\"\/blog\/php2shell-yama-gunu-php-nodejs-cloudlinux-cpanel-rehberi\/\">yama g\u00fcn\u00fc rehberi<\/a> var.<\/p>\n<h2>PHP eyl\u00fcl 2026&#8217;da neleri d\u00fczeltti?<\/h2>\n<p>PHP projesi 24 Eyl\u00fcl 2026&#8217;da 8.2.34, 8.3.35, 8.4.26 ve 8.5.11 s\u00fcr\u00fcmlerini yakla\u015f\u0131k bir d\u00fczine CVE&#8217;yi kapsayan ortak bir g\u00fcvenlik g\u00fcncellemesi olarak yay\u0131mlad\u0131. Herkese a\u00e7\u0131k bir web sunucusuna en kolay ula\u015fabilecek a\u00e7\u0131k CVE-2026-91765: SOAP eklentisindeki s\u0131n\u0131rs\u0131z \u00f6zyineleme, kimlik do\u011frulamas\u0131 olmayan bir iste\u011fin d\u0131\u015fa a\u00e7\u0131k bir SoapServer u\u00e7 noktas\u0131n\u0131 \u00e7\u00f6kertmesine izin veriyor. CVE-2026-91766 ise uzak API \u00e7a\u011f\u0131ran her uygulamay\u0131 ilgilendiriyor: HTTP stream wrapper ba\u015fka bir sunucuya y\u00f6nlendirmeyi izledi\u011finde, ilk sunucu i\u00e7in verilen kimlik bilgileri de onunla birlikte gidebiliyordu.<\/p>\n<p>\u0130ki TLS d\u00fczeltmesi, CVE-2026-91769 ve CVE-2026-91767, SAN uyu\u015fmazl\u0131\u011f\u0131ndan sonra ana bilgisayar ad\u0131 do\u011frulamas\u0131n\u0131n sertifikadaki CN alan\u0131na geri d\u00fc\u015fmesini engelliyor ve \u00f6zel haz\u0131rlanm\u0131\u015f joker karakterli adlardaki bir heap ta\u015fmas\u0131n\u0131 kapat\u0131yor. Sunucu taraf\u0131nda, PHP-FPM&#8217;i bir IPv6 TCP soketinde \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z \u00f6nce CVE-2026-91768&#8217;e bak\u0131n, \u00e7\u00fcnk\u00fc <code>listen.allowed_clients<\/code> adresin yaln\u0131zca bir k\u0131sm\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131yordu ve atlat\u0131labiliyordu. Phar ar\u015fivleri de TAR ba\u015fl\u0131\u011f\u0131 ayr\u0131\u015ft\u0131rmas\u0131ndaki bir tamsay\u0131 ta\u015fmas\u0131 olan ve ar\u015five sahte girdi eklenmesine izin veren CVE-2026-6103 i\u00e7in d\u00fczeltme ald\u0131.<\/p>\n<h2>Node.js haziran ve temmuz 2026&#8217;da neleri d\u00fczeltti?<\/h2>\n<p>Node.js k\u0131sa aral\u0131kla iki g\u00fcvenlik s\u00fcr\u00fcm\u00fc \u00e7\u0131kard\u0131. Haziran s\u00fcr\u00fcm\u00fc (v22.23.0, v24.17.0, v26.3.1) on iki sorunu kapatt\u0131; aralar\u0131nda, Unicode nokta karakterlerinin tutars\u0131z i\u015flenmesinden kaynaklanan ve joker sertifika derinli\u011fi kontrol\u00fcn\u00fc atlatan bir kimlik do\u011frulama a\u00e7\u0131\u011f\u0131 olan CVE-2026-48618 de var. Temmuz s\u00fcr\u00fcm\u00fc (v22.23.2, v24.18.1, v26.5.1) on bir d\u00fczeltme daha getirdi ve bunlar\u0131n \u00fc\u00e7\u00fc y\u00fcksek \u00f6nem dereceli.<\/p>\n<p>Temmuzdaki y\u00fcksek \u00f6nem dereceli hatalardan ikisi HTTP\/2 katman\u0131nda: CVE-2026-56846, bekletilen ba\u015fl\u0131k bloklar\u0131n\u0131n <code>maxSessionMemory<\/code> s\u0131n\u0131r\u0131n\u0131 a\u015fmas\u0131na ve uzaktaki bir istemcinin sunucu belle\u011fini t\u00fcketmesine izin veriyor; CVE-2026-56848 ise nghttp2&#8217;de bir heap use-after-free hatas\u0131. \u00dc\u00e7\u00fcnc\u00fcs\u00fc CVE-2026-58043, Permission Model&#8217;de verilen bir dosya sistemi izninin izin listesi d\u0131\u015f\u0131ndaki yollara uzanmas\u0131na yol a\u00e7\u0131yor. 22, 24 ve 26 s\u00fcr\u00fcm hatlar\u0131 i\u00e7in y\u00fcksek \u00f6nem dereceli d\u00fczeltmeler i\u00e7eren bir s\u00fcr\u00fcm daha 21 Ekim 2026&#8217;da geldi.<\/p>\n<h2>S\u00fcr\u00fcm hatt\u0131 neden tek bir yamadan daha b\u00fcy\u00fck bir risk?<\/h2>\n<p>Bir yama ancak s\u00fcr\u00fcm hatt\u0131n\u0131z onu h\u00e2l\u00e2 al\u0131yorsa i\u015fe yarar. PHP 8.1&#8217;in g\u00fcvenlik deste\u011fi 2025 sonunda bitti, Node.js 20 de 30 Nisan 2026&#8217;da \u00f6mr\u00fcn\u00fc tamamlad\u0131; ikisinden birini h\u00e2l\u00e2 \u00e7al\u0131\u015ft\u0131ran sunucular yukar\u0131daki d\u00fczeltmelerin hi\u00e7birini almad\u0131. PHP 8.2 de 31 Aral\u0131k 2026&#8217;da ayn\u0131 noktaya geliyor, bu y\u00fczden bug\u00fcn planlanan bir y\u00fckseltme i\u00e7in k\u00f6t\u00fc bir hedef.<\/p>\n<figure class=\"wp-block-image size-full gitm-figure\"><svg role=\"img\" aria-label=\"PHP 8.1-8.5 ve Node.js 20-26 i\u00e7in g\u00fcvenlik deste\u011fi s\u00fcreleri, 2025-2029\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1600 820\">\n  <rect width=\"1600\" height=\"820\" fill=\"#ffffff\"\/>\n  <g font-family=\"Arial, Helvetica, sans-serif\" fill=\"#171717\">\n    <text x=\"80\" y=\"80\" font-size=\"40\" font-weight=\"700\" letter-spacing=\"-1.5\">Hangi s\u00fcr\u00fcm hatlar\u0131 h\u00e2l\u00e2 g\u00fcvenlik d\u00fczeltmesi al\u0131yor<\/text>\n    <text x=\"80\" y=\"122\" font-family=\"Menlo, monospace\" font-size=\"18\" letter-spacing=\"2\" fill=\"#858585\">G\u00dcVENL\u0130K DESTE\u011e\u0130 S\u00dcRES\u0130, 2025-2029<\/text>\n  <\/g>\n  <g font-family=\"Menlo, monospace\" font-size=\"17\" fill=\"#858585\">\n    <line x1=\"260\" y1=\"170\" x2=\"260\" y2=\"720\" stroke=\"#e8e5df\"\/><text x=\"242\" y=\"752\">2025<\/text>\n    <line x1=\"508\" y1=\"170\" x2=\"508\" y2=\"720\" stroke=\"#e8e5df\"\/><text x=\"490\" y=\"752\">2026<\/text>\n    <line x1=\"756\" y1=\"170\" x2=\"756\" y2=\"720\" stroke=\"#e8e5df\"\/><text x=\"738\" y=\"752\">2027<\/text>\n    <line x1=\"1004\" y1=\"170\" x2=\"1004\" y2=\"720\" stroke=\"#e8e5df\"\/><text x=\"986\" y=\"752\">2028<\/text>\n    <line x1=\"1252\" y1=\"170\" x2=\"1252\" y2=\"720\" stroke=\"#e8e5df\"\/><text x=\"1234\" y=\"752\">2029<\/text>\n    <line x1=\"1500\" y1=\"170\" x2=\"1500\" y2=\"720\" stroke=\"#e8e5df\"\/><text x=\"1482\" y=\"752\">2030<\/text>\n  <\/g>\n  <g font-family=\"Menlo, monospace\" font-size=\"19\" font-weight=\"600\" fill=\"#171717\">\n    <text x=\"80\" y=\"205\" fill=\"#858585\" font-size=\"15\" letter-spacing=\"2\">PHP<\/text>\n    <text x=\"80\" y=\"232\">8.1<\/text><rect x=\"260\" y=\"214\" width=\"248\" height=\"24\" fill=\"#d9d5ce\"\/>\n    <text x=\"80\" y=\"284\">8.2<\/text><rect x=\"260\" y=\"266\" width=\"496\" height=\"24\" fill=\"#f05a28\"\/>\n    <text x=\"80\" y=\"336\">8.3<\/text><rect x=\"260\" y=\"318\" width=\"744\" height=\"24\" fill=\"#f05a28\"\/>\n    <text x=\"80\" y=\"388\">8.4<\/text><rect x=\"260\" y=\"370\" width=\"992\" height=\"24\" fill=\"#f05a28\"\/>\n    <text x=\"80\" y=\"440\">8.5<\/text><rect x=\"478\" y=\"422\" width=\"1022\" height=\"24\" fill=\"#f05a28\"\/>\n    <text x=\"80\" y=\"500\" fill=\"#858585\" font-size=\"15\" letter-spacing=\"2\">NODE.JS<\/text>\n    <text x=\"80\" y=\"527\">20<\/text><rect x=\"260\" y=\"509\" width=\"330\" height=\"24\" fill=\"#d9d5ce\"\/>\n    <text x=\"80\" y=\"579\">22<\/text><rect x=\"260\" y=\"561\" width=\"578\" height=\"24\" fill=\"#171717\"\/>\n    <text x=\"80\" y=\"631\">24<\/text><rect x=\"260\" y=\"613\" width=\"826\" height=\"24\" fill=\"#171717\"\/>\n    <text x=\"80\" y=\"683\">26<\/text><rect x=\"582\" y=\"665\" width=\"752\" height=\"24\" fill=\"#171717\"\/>\n  <\/g>\n  <line x1=\"706\" y1=\"160\" x2=\"706\" y2=\"722\" stroke=\"#f05a28\" stroke-width=\"3\" stroke-dasharray=\"8 6\"\/>\n  <text x=\"716\" y=\"168\" font-family=\"Menlo, monospace\" font-size=\"16\" font-weight=\"600\" fill=\"#f05a28\">BUG\u00dcN<\/text>\n  <g font-family=\"Menlo, monospace\" font-size=\"15\" fill=\"#858585\">\n    <rect x=\"80\" y=\"782\" width=\"18\" height=\"12\" fill=\"#d9d5ce\"\/><text x=\"108\" y=\"793\">\u00d6MR\u00dc DOLDU<\/text>\n    <rect x=\"270\" y=\"782\" width=\"18\" height=\"12\" fill=\"#f05a28\"\/><text x=\"298\" y=\"793\">PHP DESTEKLEN\u0130YOR<\/text>\n    <rect x=\"532\" y=\"782\" width=\"18\" height=\"12\" fill=\"#171717\"\/><text x=\"560\" y=\"793\">NODE.JS DESTEKLEN\u0130YOR<\/text>\n    <text x=\"1100\" y=\"793\">KAYNAK: PHP.NET, NODEJS.ORG<\/text>\n  <\/g>\n<\/svg><figcaption>PHP 8.1-8.5 ve Node.js 20-26 i\u00e7in g\u00fcvenlik deste\u011fi s\u00fcreleri, 2025-2029<\/figcaption><\/figure>\n<p>\u0130ki proje destek sonuna farkl\u0131 yollardan ula\u015f\u0131yor ve bu da planlamay\u0131 de\u011fi\u015ftiriyor. A\u015fa\u011f\u0131daki tablo k\u0131sa \u00f6zetidir.<\/p>\n<div class=\"table-wrap\">\n<table>\n<thead>\n<tr>\n<th>Soru<\/th>\n<th>PHP<\/th>\n<th>Node.js<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Bir dal ne kadar s\u00fcre g\u00fcvenlik d\u00fczeltmesi al\u0131r<\/td>\n<td>\u0130lk s\u00fcr\u00fcm\u00fcnden itibaren yakla\u015f\u0131k d\u00f6rt y\u0131l (8.2: Aral\u0131k 2022&#8217;den Aral\u0131k 2026&#8217;ya)<\/td>\n<td>\u00c7ift numaral\u0131 ana s\u00fcr\u00fcmler LTS olur ve ard\u0131ndan yakla\u015f\u0131k 30 ay d\u00fczeltme al\u0131r (22: Ekim 2024&#8217;ten Nisan 2027&#8217;ye)<\/td>\n<\/tr>\n<tr>\n<td>Ekim 2026&#8217;da desteklenen dallar<\/td>\n<td>8.2, 8.3, 8.4, 8.5<\/td>\n<td>22, 24, 26<\/td>\n<\/tr>\n<tr>\n<td>S\u0131radaki destek sonu<\/td>\n<td>8.2, 31 Aral\u0131k 2026<\/td>\n<td>22, 30 Nisan 2027<\/td>\n<\/tr>\n<tr>\n<td>Bir d\u00fczeltme hosting sunucusuna genelde nas\u0131l gelir<\/td>\n<td>Panel ya da da\u011f\u0131t\u0131m paketleriyle, \u00e7o\u011fu zaman geriye ta\u015f\u0131nm\u0131\u015f d\u00fczeltmeler ve de\u011fi\u015fmeyen bir s\u00fcr\u00fcm numaras\u0131yla<\/td>\n<td>Yeni bir upstream derlemesi, bir panel paketi ya da bir konteyner imaj\u0131yla<\/td>\n<\/tr>\n<tr>\n<td>Sonras\u0131nda neyin yeniden ba\u015flat\u0131lmas\u0131 gerekir<\/td>\n<td>PHP-FPM havuzlar\u0131, mod_php kullanan Apache, uzun s\u00fcre \u00e7al\u0131\u015fan PHP i\u015f\u00e7ileri<\/td>\n<td>PM2 gibi s\u00fcre\u00e7 y\u00f6neticileri dahil her Node.js s\u00fcreci<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Kendi hatlar\u0131n\u0131z\u0131 burada kontrol edin:<\/p>\n<div class=\"gitm-widget\" data-widget=\"support\"><\/div>\n<h2>cPanel&#8217;de bir sitenin ger\u00e7ekte hangi PHP&#8217;yi \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131 nas\u0131l bulursunuz?<\/h2>\n<p>Kabu\u011fa g\u00fcvenmeyin. Bir cPanel sunucusunda <code>php -v<\/code> varsay\u0131lan komut sat\u0131r\u0131 derlemesini bildirir; oysa her alan ad\u0131 MultiPHP Manager&#8217;da se\u00e7ilen farkl\u0131 bir daldan, kendi <code>.htaccess<\/code> dosyas\u0131ndaki bir i\u015fleyici sat\u0131r\u0131ndan ya da ikisini de ge\u00e7ersiz k\u0131labilen CloudLinux PHP Selector&#8217;dan sunulabilir. Kendi sunucular\u0131m\u0131zdan birinde web sunucusuna 7.2&#8217;den 8.5&#8217;e kadar dokuz PHP dal\u0131 kay\u0131tl\u0131 ve varsay\u0131lan, sitelerin \u00e7o\u011funun kulland\u0131\u011f\u0131 s\u00fcr\u00fcm de\u011fil.<\/p>\n<p>Ger\u00e7ek cevab\u0131 \u00fc\u00e7 kontrol verir. <code>whmapi1 php_get_vhost_versions<\/code>, WHM&#8217;in her alan ad\u0131 i\u00e7in kullan\u0131ld\u0131\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fc s\u00fcr\u00fcm\u00fc ve i\u015fleyiciyi listeler. CloudLinux \u00fczerindeki hesaplar i\u00e7in <code>selectorctl --user-current --user=&lt;account&gt;<\/code>, Selector&#8217;\u0131n bunu ge\u00e7ersiz k\u0131l\u0131p k\u0131lmad\u0131\u011f\u0131n\u0131 g\u00f6sterir. Son kan\u0131t ise sitenin i\u00e7ine konan ve <code>PHP_VERSION<\/code> ile <code>php_sapi_name()<\/code> de\u011ferlerini yazd\u0131ran, okunduktan hemen sonra silinen ge\u00e7ici bir betiktir. Bu blogu bir CGI i\u015fleyicisinden PHP-FPM&#8217;e ta\u015f\u0131d\u0131\u011f\u0131m\u0131zda, ge\u00e7i\u015fin i\u015fe yarad\u0131\u011f\u0131n\u0131 g\u00f6steren tek kontrol bu \u00fc\u00e7\u00fcnc\u00fcs\u00fcyd\u00fc.<\/p>\n<h2>Node.js bir hosting sunucusunda nerede saklan\u0131r?<\/h2>\n<p>Node.js kolayca g\u00f6zden ka\u00e7ar, \u00e7\u00fcnk\u00fc nadiren tek bir sistem servisi olarak \u00e7al\u0131\u015f\u0131r. cPanel&#8217;in Application Manager i\u00e7in kendi paketlerinden, bir da\u011f\u0131t\u0131m paketinden, bir kullan\u0131c\u0131n\u0131n ev dizinindeki bir s\u00fcr\u00fcm y\u00f6neticisinden, bir uygulaman\u0131n i\u00e7indeki sat\u0131c\u0131 paketinden ya da bir konteyner imaj\u0131ndan gelebilir. Bu y\u00fczden bir sunucu ayn\u0131 anda \u00fc\u00e7 Node.js s\u00fcr\u00fcm\u00fc \u00e7al\u0131\u015ft\u0131rabilir ve sistem paketini g\u00fcncellemek bunlardan yaln\u0131zca birini d\u00fczeltir.<\/p>\n<p>Pratik envanter, <code>ps -eo pid,user,args | grep -i node<\/code> ile t\u00fcm s\u00fcre\u00e7leri listelemek ve ard\u0131ndan her ikili dosyaya s\u00fcr\u00fcm\u00fcn\u00fc sormakt\u0131r. PM2 ya da systemd taraf\u0131ndan y\u00f6netilen her \u015fey yeniden ba\u015flat\u0131lana kadar eski \u00e7al\u0131\u015fma ortam\u0131n\u0131 korur; yeniden ba\u015flatma yap\u0131lmayan bir g\u00fcncelleme a\u00e7\u0131kl\u0131 kodu bellekte b\u0131rak\u0131r.<\/p>\n<p>Konteynerler bir katman daha ekler. Bir konteynerin i\u00e7indeki Node.js servisi, ana makinede ne kurulu olursa olsun imaj\u0131n\u0131n derlendi\u011fi \u00e7al\u0131\u015fma ortam\u0131n\u0131 kullan\u0131r; bu y\u00fczden d\u00fczeltme ancak imaj yamal\u0131 bir tabandan yeniden derlenip konteyner yeniden olu\u015fturuldu\u011funda gelir. Ayn\u0131s\u0131 CI \u00e7al\u0131\u015ft\u0131r\u0131c\u0131lar\u0131 i\u00e7in de ge\u00e7erlidir ve bunlar sunucu envanterinde neredeyse hi\u00e7 g\u00f6r\u00fcnmedikleri i\u00e7in kolayca unutulur. Derleme hatt\u0131n\u0131z eski bir imajda \u00e7al\u0131\u015f\u0131yorsa, \u00fcretti\u011fi her \u00e7\u0131kt\u0131 o eski \u00e7al\u0131\u015fma ortam\u0131n\u0131 da beraberinde ta\u015f\u0131r.<\/p>\n<h2>Uygulamal\u0131 bir \u00f6rnek: bir siteyi PHP 8.1&#8217;den 8.4&#8217;e ta\u015f\u0131mak<\/h2>\n<p>Bu blog da ba\u015flang\u0131\u00e7ta hesap varsay\u0131lan\u0131 oldu\u011fu i\u00e7in bir CGI i\u015fleyicisi \u00fczerinden sunulan PHP 8.1 ile \u00e7al\u0131\u015f\u0131yordu. Ta\u015f\u0131ma i\u015flemi, s\u00fcr\u00fcm de\u011fi\u015fikli\u011finin ayn\u0131 zamanda bir i\u015fleyici de\u011fi\u015fikli\u011fi oldu\u011funu iyi hat\u0131rlatt\u0131. Alan ad\u0131n\u0131 <code>whmapi1 php_set_vhost_versions<\/code> ile PHP-FPM alt\u0131nda PHP 8.4&#8217;e ge\u00e7irdik; bu komut sitenin <code>.htaccess<\/code> dosyas\u0131ndaki i\u015fleyici sat\u0131r\u0131n\u0131 da yeniden yazd\u0131.<\/p>\n<p>S\u00fcr\u00fcm\u00fcn yan\u0131nda iki \u015fey daha de\u011fi\u015fti. CGI i\u015fleyicisi alt\u0131nda PHP web sunucusunun kendi kullan\u0131c\u0131s\u0131yla \u00e7al\u0131\u015f\u0131yordu, bu y\u00fczden yap\u0131land\u0131rma dosyas\u0131n\u0131n o kullan\u0131c\u0131 taraf\u0131ndan okunabilir olmas\u0131 gerekiyordu; FPM alt\u0131nda ise hesap sahibi olarak \u00e7al\u0131\u015f\u0131yor, bu da <code>wp-config.php<\/code> dosyas\u0131n\u0131 yeniden 600 moduna s\u0131k\u0131la\u015ft\u0131rmam\u0131za ve WordPress&#8217;in kendi y\u00fcklemelerini ve g\u00fcncellemelerini yazabilmesine olanak verdi. Ge\u00e7i\u015ften sonraki ilk kontrol, yani <code>php_sapi_name()<\/code> de\u011ferini ve s\u00fcre\u00e7 kullan\u0131c\u0131s\u0131n\u0131 yazd\u0131ran ge\u00e7ici bir betik, yeni i\u015fleyicinin ger\u00e7ekten kullan\u0131ld\u0131\u011f\u0131n\u0131n tek kan\u0131t\u0131yd\u0131. Ta\u015f\u0131d\u0131\u011f\u0131n\u0131z her sitede ikisini de hesaba kat\u0131n ve ge\u00e7i\u015fi di\u011ferlerine ge\u00e7meden \u00f6nce tek bir sitede deneyin.<\/p>\n<h2>Sunucular\u0131n\u0131zda ne yapmal\u0131s\u0131n\u0131z?<\/h2>\n<ol class=\"checklist\">\n<li><strong>Yaln\u0131zca varsay\u0131lan\u0131 de\u011fil, her \u00e7al\u0131\u015fma ortam\u0131n\u0131 listeleyin.<\/strong> Kurulu her PHP derlemesi i\u00e7in <code>php -v<\/code> \u00e7al\u0131\u015ft\u0131r\u0131n ve her sitenin ya da FPM havuzunun ger\u00e7ekte hangi s\u00fcr\u00fcm\u00fc kulland\u0131\u011f\u0131n\u0131 kontrol edin. Node.js i\u00e7in her servisi, konteyner imaj\u0131n\u0131 ve CI \u00e7al\u0131\u015ft\u0131r\u0131c\u0131s\u0131n\u0131 <code>node --version<\/code> ile kontrol edin.<\/li>\n<li><strong>\u00d6nce \u00f6mr\u00fc dolmu\u015f hatlardan \u00e7\u0131k\u0131n.<\/strong> PHP 8.1 ve \u00f6ncesini 8.4 ya da 8.5&#8217;e, Node.js 20&#8217;yi 24 LTS&#8217;e y\u00fckseltin. Bu ad\u0131m tek bir yamadan daha fazla riski kapat\u0131r.<\/li>\n<li><strong>Desteklenen hatlar\u0131 g\u00fcncel s\u00fcr\u00fcme yamalay\u0131n.<\/strong> En az eyl\u00fcl PHP derlemeleri ve Node.js 22.23.2, 24.18.1 ya da 26.5.1, ard\u0131ndan ekim s\u00fcr\u00fcmleri.<\/li>\n<li><strong>Eski ikili dosyay\u0131 y\u00fcklemi\u015f olan\u0131 yeniden ba\u015flat\u0131n.<\/strong> PHP-FPM havuzlar\u0131, uzun s\u00fcre \u00e7al\u0131\u015fan PHP i\u015f\u00e7ileri ve her Node.js s\u00fcreci, yeniden ba\u015flat\u0131lana kadar a\u00e7\u0131kl\u0131 kodu bellekte tutar.<\/li>\n<li><strong>FPM soketlerini g\u00f6zden ge\u00e7irin.<\/strong> Unix soketlerini tercih edin; bir havuz TCP \u00fczerinden dinliyorsa onu loopback adresine ba\u011flay\u0131n ve yaln\u0131zca <code>listen.allowed_clients<\/code> ayar\u0131na g\u00fcvenmeyin.<\/li>\n<li><strong>Kullanmad\u0131\u011f\u0131n\u0131z\u0131 kapat\u0131n.<\/strong> Hi\u00e7bir site SOAP ya da Phar kullanm\u0131yorsa bu eklentileri derlemeden ya da havuzdan \u00e7\u0131kar\u0131n.<\/li>\n<li><strong>HTTP\/2&#8217;nin \u00f6n\u00fcne bir s\u0131n\u0131r koyun.<\/strong> \u0130stek boyutu ve ba\u011flant\u0131 s\u0131n\u0131rlar\u0131 olan bir ters vekil sunucu, bellek t\u00fcketme giri\u015fimlerini Node.js s\u00fcrecine ula\u015fmadan kar\u015f\u0131lar.<\/li>\n<li><strong>Duyurulara abone olun.<\/strong> php.net s\u00fcr\u00fcm ak\u0131\u015f\u0131 ve nodejs-sec e-posta listesi, planlanan s\u00fcr\u00fcmlerden size \u00f6nceden haber verir.<\/li>\n<\/ol>\n<p>\u0130ki \u00e7al\u0131\u015fma ortam\u0131n\u0131n alt\u0131ndaki \u00e7ekirdek de ayn\u0131 disiplini ister; payla\u015f\u0131ml\u0131 sunucularda korudu\u011fumuz ayarlar <a href=\"\/blog\/paylasimli-linux-sunucu-cekirdek-sikilastirma-bes-ayar\/\">payla\u015f\u0131ml\u0131 bir Linux sunucu i\u00e7in be\u015f \u00e7ekirdek ayar\u0131<\/a> yaz\u0131s\u0131nda.<\/p>\n<h2 id=\"faq-php-nodejs-2026-guvenlik-surumleri\">SSS: 2026&#8217;da PHP ve Node.js g\u00fcvenlik s\u00fcr\u00fcmleri<\/h2>\n<h3 id=\"faq-php-81-2026-hala-guvenli-mi\">PHP 8.1&#8217;i 2026&#8217;da bir \u00fcretim sunucusunda \u00e7al\u0131\u015ft\u0131rmak h\u00e2l\u00e2 g\u00fcvenli mi?<\/h3>\n<p>Hay\u0131r. PHP 8.1, PHP projesinden 2025 sonunda g\u00fcvenlik d\u00fczeltmesi almay\u0131 b\u0131rakt\u0131, bu y\u00fczden 2026 d\u00fczeltmelerinin hi\u00e7biri upstream taraf\u0131nda onun i\u00e7in yay\u0131mlanmad\u0131. Baz\u0131 sat\u0131c\u0131lar se\u00e7ilmi\u015f d\u00fczeltmeleri geriye ta\u015f\u0131yor ve bu i\u015fe yar\u0131yor, ancak desteklenen yol 8.4 ya da 8.5.<\/p>\n<h3 id=\"faq-node-20-omur-sonu-2026\">Node.js 20&#8217;nin \u00f6mr\u00fc ne zaman doldu ve bu 2026&#8217;da ne anlama geliyor?<\/h3>\n<p>Node.js 20&#8217;nin \u00f6mr\u00fc 30 Nisan 2026&#8217;da doldu. O tarihten beri g\u00fcvenlik s\u00fcr\u00fcm\u00fc alm\u0131yor, dolay\u0131s\u0131yla 2026&#8217;da daha sonra yay\u0131mlanan her Node.js d\u00fczeltmesi onda eksik. 24 LTS&#8217;e ya da daha fazla zamana ihtiyac\u0131n\u0131z varsa 22&#8217;ye y\u00fckseltin, \u00e7\u00fcnk\u00fc 22 Nisan 2027&#8217;ye kadar destekleniyor.<\/p>\n<h3 id=\"faq-php-82-mi-84-mu-yukseltme-hedefi\">PHP 8.2 mi PHP 8.4 m\u00fc: bug\u00fcn hangisi daha iyi bir y\u00fckseltme hedefi?<\/h3>\n<p>PHP 8.4. 8.2 dal\u0131n\u0131n \u00f6mr\u00fc 31 Aral\u0131k 2026&#8217;da doluyor ve geriye yaln\u0131zca birka\u00e7 haftal\u0131k g\u00fcvenlik d\u00fczeltmesi kal\u0131yor; 8.4 ise 2028 sonuna kadar destekleniyor. Birka\u00e7 ay i\u00e7inde iki kez y\u00fckseltme yapmak, do\u011frudan 8.4&#8217;e ge\u00e7mekten daha fazla test maliyeti getirir.<\/p>\n<h3 id=\"faq-node-22-mi-24-mu-lts\">Node.js 22 mi Node.js 24 m\u00fc: bir sunucu hangi LTS hatt\u0131n\u0131 kullanmal\u0131?<\/h3>\n<p>Yeni kurulumlar i\u00e7in Node.js 24. \u0130kisi de desteklenen LTS hatlar\u0131, ancak 24 Nisan 2028&#8217;e kadar, 22 ise yaln\u0131zca Nisan 2027&#8217;ye kadar destekleniyor. Bir ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n hen\u00fcz haz\u0131r olmad\u0131\u011f\u0131 yerlerde 22&#8217;yi koruyun ve yerine ge\u00e7ecek s\u00fcr\u00fcm\u00fc \u015fimdiden planlay\u0131n.<\/p>\n<h3 id=\"faq-cpanelde-php-v-farkli-surum\">cPanel&#8217;de php -v neden web sitemin kulland\u0131\u011f\u0131ndan farkl\u0131 bir s\u00fcr\u00fcm g\u00f6steriyor?<\/h3>\n<p>\u00c7\u00fcnk\u00fc komut sat\u0131r\u0131 ve web sunucusu ayr\u0131 ayr\u0131 yap\u0131land\u0131r\u0131l\u0131r. Bir alan ad\u0131 MultiPHP Manager, bir <code>.htaccess<\/code> i\u015fleyicisi ya da CloudLinux PHP Selector arac\u0131l\u0131\u011f\u0131yla ba\u015fka bir daldan sunulabilir. <code>PHP_VERSION<\/code> ve <code>php_sapi_name()<\/code> de\u011ferlerini yazd\u0131ran ge\u00e7ici bir betik, sitenin ger\u00e7ekte ne \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h3 id=\"faq-php-guncelleme-sonrasi-yeniden-baslatma\">PHP paketlerini g\u00fcncellersem d\u00fczeltmenin ge\u00e7erli olmas\u0131 i\u00e7in bir \u015feyi yeniden ba\u015flatmam gerekir mi?<\/h3>\n<p>Evet. PHP-FPM havuzlar\u0131 ve uzun s\u00fcre \u00e7al\u0131\u015fan PHP i\u015f\u00e7ileri yeniden ba\u015flat\u0131lana kadar eski kodu bellekte tutar; mod_php kullanan Apache ise zarif bir yeniden y\u00fckleme yerine tam bir yeniden ba\u015flatma ister. Paketi yeniden ba\u015flatma yapmadan g\u00fcncellemek, a\u00e7\u0131kl\u0131 kodu \u00e7al\u0131\u015f\u0131r halde b\u0131rak\u0131r.<\/p>\n<h3 id=\"faq-fpm-ipv6-tcp-soket-riski\">CVE-2026-91768 sonras\u0131nda IPv6 TCP soketinde dinleyen bir PHP-FPM havuzu risk ta\u015f\u0131r m\u0131?<\/h3>\n<p>Eyl\u00fcl derlemelerine kadar ta\u015f\u0131yordu. \u0130zin verilen istemciler kontrol\u00fc bir IPv6 adresinin yaln\u0131zca bir k\u0131sm\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131yordu, bu y\u00fczden liste atlat\u0131labiliyordu. G\u00fcncelleyin ve havuzun a\u011fdan hi\u00e7 eri\u015filemez olmas\u0131 i\u00e7in bir Unix soketini ya da yaln\u0131zca loopback \u00fczerinde dinleyen bir TCP dinleyicisini tercih edin.<\/p>\n<h3 id=\"faq-paylasimli-hostingde-soap-phar-kapatma\">Payla\u015f\u0131ml\u0131 hosting sunucular\u0131 2026&#8217;da SOAP ve Phar eklentilerini kapatmal\u0131 m\u0131?<\/h3>\n<p>Hi\u00e7bir sitenin kullanmad\u0131\u011f\u0131 yerlerde, evet. \u0130kisi de 2026 d\u00fczeltmelerinin konusu oldu ve y\u00fcklenmemi\u015f bir eklentiye sald\u0131r\u0131lamaz. \u00d6nce kontrol edin, \u00e7\u00fcnk\u00fc baz\u0131 faturalama sistemleri ve entegrasyonlar h\u00e2l\u00e2 SOAP&#8217;a dayan\u0131yor.<\/p>\n<h3 id=\"faq-node-http2-bellek-tuketme-korumasi\">Bir Node.js HTTP\/2 servisi bellek t\u00fcketme sald\u0131r\u0131lar\u0131na kar\u015f\u0131 nas\u0131l korunur?<\/h3>\n<p>\u00d6nce yamal\u0131 bir s\u00fcr\u00fcme g\u00fcncelleyin, \u00e7\u00fcnk\u00fc CVE-2026-56846 oturum bellek s\u0131n\u0131r\u0131n\u0131 atlat\u0131yordu. Ard\u0131ndan \u00f6n\u00fcne istek boyutu, ba\u015fl\u0131k ve ba\u011flant\u0131 s\u0131n\u0131rlar\u0131 olan bir ters vekil sunucu koyun; b\u00f6ylece k\u00f6t\u00fcye kullanan istemciler Node.js s\u00fcrecine ula\u015fmadan kesilir.<\/p>\n<h3 id=\"faq-guvenlik-surumleri-onceden-haber-alma\">Bir sunucu ekibi PHP ve Node.js g\u00fcvenlik s\u00fcr\u00fcmlerinden nas\u0131l \u00f6nceden haberdar olur?<\/h3>\n<p>php.net s\u00fcr\u00fcm duyurular\u0131n\u0131 takip edin ve nodejs-sec e-posta listesine abone olun. Node.js her g\u00fcvenlik s\u00fcr\u00fcm\u00fcnden g\u00fcnler \u00f6nce bir \u00f6n duyuru yay\u0131mlar; bu da bak\u0131m pencerelerini ve yeniden ba\u015flatmalar\u0131 planlamak i\u00e7in zaman b\u0131rak\u0131r.<\/p>\n<h2>Kaynaklar<\/h2>\n<ul class=\"sources\">\n<li><a href=\"https:\/\/www.php.net\/ChangeLog-8.php\" rel=\"noopener\" target=\"_blank\">PHP 8 ChangeLog<\/a>, php.net<\/li>\n<li><a href=\"https:\/\/www.php.net\/supported-versions.php\" rel=\"noopener\" target=\"_blank\">Desteklenen s\u00fcr\u00fcmler<\/a>, php.net<\/li>\n<li><a href=\"https:\/\/nodejs.org\/en\/blog\/vulnerability\/june-2026-security-releases\" rel=\"noopener\" target=\"_blank\">Haziran 2026 g\u00fcvenlik s\u00fcr\u00fcmleri<\/a>, nodejs.org<\/li>\n<li><a href=\"https:\/\/nodejs.org\/en\/blog\/vulnerability\/july-2026-security-releases\" rel=\"noopener\" target=\"_blank\">Temmuz 2026 g\u00fcvenlik s\u00fcr\u00fcmleri<\/a>, nodejs.org<\/li>\n<li><a href=\"https:\/\/github.com\/nodejs\/release#release-schedule\" rel=\"noopener\" target=\"_blank\">Node.js s\u00fcr\u00fcm takvimi<\/a>, GitHub<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>PHP ve Node.js 2026&#8217;da y\u00fcksek \u00f6nem dereceli g\u00fcvenlik d\u00fczeltmeleri yay\u0131mlad\u0131. Nelerin de\u011fi\u015fti\u011fi, hangi s\u00fcr\u00fcmlerin h\u00e2l\u00e2 desteklendi\u011fi ve bu iki \u00e7al\u0131\u015fma ortam\u0131n\u0131 bar\u0131nd\u0131ran sunucular i\u00e7in bir kontrol listesi.<\/p>\n","protected":false},"author":0,"featured_media":37,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[6,28,27,3,2,5,29,30],"class_list":["post-8","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-security","tag-cpanel","tag-destek-sonu","tag-guvenlik-guncellemeleri","tag-node-js","tag-php","tag-php-fpm","tag-sunucu-sikilastirma","tag-yama-yonetimi"],"_links":{"self":[{"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":2,"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/posts\/8\/revisions"}],"predecessor-version":[{"id":45,"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/posts\/8\/revisions\/45"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/media\/37"}],"wp:attachment":[{"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/media?parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/categories?post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adnancanturk.com\/blog\/wp-json\/wp\/v2\/tags?post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}