Son güncelleme: 24 Ekim 2026
Kısa cevap: Plesk arayüzündeki PHP Ayarları ekranı kurulu PHP işleyicilerinin durumunu gösterir. Tüm alan adlarını tek tıkla yeni sürüme alan bir düğme yoktur. Sunucuda güncel satır 8.5.12 FastCGI ise Linux kimliği çoğunlukla
plesk-php85-fpmya daplesk-php85-fastcgi, Windows kimliğifastcgi-8.5olur. Toplu geçişplesk bin php_handler --replaceile yapılır. Komut, eski işleyiciyi kullanan siteleri ve servis planlarını yeni kimliğe taşır. Önce kimlik listeden okunur, tek alan adında denenir ve mevcut eşleştirme dosyaya yazılır.
Plesk yöneticileri PHP sürümünü alan adı açıp kaydetmek zorunda kalınca aynı işi onlarca kez tekrarlar. Ekranda 8.5.12 hazır dururken sitelerin büyük bölümü 8.2.35 ve 8.4.27 üzerinde kalır. Bu yazıda o ekranın neden toplu geçiş sunmadığını, işleyici kimliğinin sürüm numarasından neden farklı olduğunu ve Linux ile Windows üzerinde alan adlarını 8.5.12 işleyicisine taşımanın kontrollü yolunu anlatıyorum. Komutlar yalnızca kendi yönettiğiniz sunucuda, root ya da Administrator yetkisiyle çalıştırılır.
PHP Ayarları ekranı neden tek tek çalışır?
Plesk'te iki ayrı PHP ekranı vardır ve ikisi farklı iş yapar.
Araçlar ve Ayarlar bölümündeki PHP Ayarları, sunucuya kurulu işleyicilerin listesidir. Sürüm, çalışma biçimi ve kaydın açık ya da kapalı olduğu burada görünür. Bir işleyiciyi kapatmak, onu kullanan siteleri 8.5.12'ye taşımaz. Plesk, kapatılan işleyicinin yerine servis planındaki işleyiciyi bırakır. Anahtar bir geçiş düğmesi değildir.
Alan adına özel sürüm, sitenin Barındırma Ayarları ya da PHP Ayarları sayfasındadır. Orada tek site için tek işleyici seçilir. Onlarca sitede bu sayfayı elle dolaşmak yavaştır ve bir sitenin atlanma riskini artırır.
php_handler eski işleyiciyi yenisiyle değiştirir ve değişikliği sitelerin yanında servis planlarına da yazar. domain aracı tek siteyi günceller. Önce bir sitede deneyin, sonra kalan kayıtları tek komutla taşıyın.
Ekrandaki 8.5.12, 8.2.35 ve 8.4.27 ne söylüyor?
Sürüm satırı üç bilgi taşır. 8.2, 8.4 ve 8.5 ayrı dallardır. 8.2.35, 8.4.27 ve 8.5.12 bu dalların 21 Ekim 2026 güvenlik sürümleridir. FastCGI, FPM ve dedicated FPM ise aynı sürümün farklı işleyicileridir. Aynı php.ini dosyasını paylaşmazlar.
8.2.35 ve 8.4.27, CVE-2026-109618 ve CVE-2026-109619 için yamalıdır. Bu satırda duran bir site, numarası 8.5.12 olmadığı için yamasız sayılmaz. Açığın etkisi PHP güvenlik açığı yazısında, Türkiye'deki tarama ise ayrı yazıda ele alınıyor.
8.5.12'ye geçmenin gerekçesi yama eksiği değil, işletim düzenidir. PHP 8.2, 31 Aralık 2026'da güvenlik desteğinden çıkıyor ve 8.2.35 bu dalın son güvenlik sürümüdür. 8.4 desteklenmeye devam eder. Tek sunucuda birden fazla dal, her dal için ayrı yapılandırma, ayrı eklenti ve ayrı izleme demektir.
Geçiş yama değil dal değişimidir. 8.2'den 8.5'e atlamak, 8.3 ve 8.4 ile gelen davranış değişikliklerini de getirir. Kaldırılan bir yönerge ölümcül hataya dönüşebilir. Yalnızca 8.2 için derlenmiş bir eklenti 8.5 sürecinde yüklenmez. Bu yüzden 8.2.35 FastCGI kullanan 62 alan adının tamamı ilk komutta taşınmaz. Aynı uygulamadan bir örnek önce açılır. 62 bu envantere aittir. Kendi sunucunuzda sayıyı komuttan önce yeniden sayın.
İşleyici kimliği ile ekrandaki ad aynı şey değildir
Arayüz insana okunan bir ad gösterir. Komut satırı kimlik bekler. Kimliği tahmin etmek en sık hatadır ve sonuç sessiz olabilir. Yanlış kalıp hiçbir satır döndürmez, döngü biter ve iş tamam sanılır.
Linux'ta Plesk paketinden gelen PHP 8.5 kimlikleri genellikle plesk-php85-fpm ve plesk-php85-fastcgi olur. Dedicated FPM ayrı bir kimlik taşır. Windows'ta önerilen biçim FastCGI'dir ve kimlik fastcgi-8.5 şeklindedir. Ekranda 8.5.12 FastCGI yazması Linux kimliğini kanıtlamaz. Siteler hangi modelde çalışıyorsa hedef de o modelin kimliği olmalıdır. Yanlış modele geçmek havuz kullanıcısını ve ek yönergeleri de değiştirir.
Ekranda 8.2.35 FastCGI yazan satırın kimliği Linux'ta plesk-php82-fastcgi, Windows'ta fastcgi-8.2 olabilir. 8.2 ifadesini kimlikte aramak Linux kaydını kaçırır. Kimlikte nokta yoktur, php82 vardır. 8.4 için karşılık php84 ve fastcgi-8.4 biçimindedir.
| Ekranda görünen | Sistem | Listede aranacak kimlik |
|---|---|---|
| 8.5.12 FPM | Linux | plesk-php85-fpm |
| 8.5.12 FastCGI | Linux | plesk-php85-fastcgi |
| 8.5.12 FastCGI | Windows | fastcgi-8.5 |
| 8.2.35 FastCGI | Linux | plesk-php82-fastcgi |
| 8.2.35 FastCGI | Windows | fastcgi-8.2 |
| 8.4.27 FastCGI | Linux | plesk-php84-fastcgi |
| 8.4.27 FastCGI | Windows | fastcgi-8.4 |
Özel eklenmiş bir işleyici ya da işletim sisteminin kendi PHP paketi farklı kimlik üretmiş olabilir. Karar, listeden kopyalanan metindir.
plesk bin php_handler --list
İlk sütun kimliktir. Hedef satır etkin olmalıdır. Kapalı bir işleyiciye geçiş, siteyi o sürüme almaz. Yeni kurulan paket listede yoksa kayıt yenilenir.
plesk bin php_handler --reread
Belirli bir kimliği kullanan siteler de aynı araçtan okunur. Örnekteki kimliği kendi listenizdeki metinle değiştirin.
plesk bin php_handler --get-usage -id plesk-php82-fastcgi
plesk bin php_handler --list her iki sistemde çalışır. Windows'ta plesk bulunamazsa %plesk_dir% altına inin. Komut istemi Administrator, Linux oturumu root olmalıdır.
Geçişten önce kaydedilecek üç şey
İşleyici listesini bir dosyaya yazın. Ardından site ve kimlik eşleştirmesini kaydedin. Bu dosya geri dönüş listesidir.
plesk db -sNe "SELECT d.name, h.php_handler_id FROM hosting h JOIN domains d ON d.id = h.dom_id WHERE h.php = 'true' ORDER BY h.php_handler_id, d.name" > php-handlers-before.tsv
Satır sayısı, PHP desteği açık site sayısıyla karşılaştırılır. Sayı düşükse alt alan adları ayrı barındırma kullanıyor olabilir. Onlar plesk bin subdomain --list ile görülür. Dosyanın bir kopyasını sunucu dışında tutun.
Son adım tek site denemesidir. Aşağıdaki kimlik Linux FPM içindir. Kendi listenizdeki kimliği yazın.
plesk bin domain -u ornekalanadi.com -php_handler_id plesk-php85-fpm
Ön yüzü, yönetim panelini ve bir form gönderimini açın. Linux hata günlüğü çoğunlukla /var/www/vhosts/system/ornekalanadi.com/logs/error_log yolundadır. Beyaz sayfa ya da eksik eklenti uyarısı varsa toplu komuta geçmeyin. ionCube, SourceGuardian ve yalnızca 8.2 için derlenmiş eklentiler bu grupta sık görülür. WordPress ile açılan bir deneme, eski bir özel uygulamayı temsil etmez. Her uygulama türünden bir örnek seçin.
Yalnızca siteyi güncelleyip servis planını 8.2'de bırakırsanız, abonelik planla eşitlendiğinde eski işleyici geri gelir. Aşağıdaki --replace planları da günceller. Döngü kullanıyorsanız planı ayrıca değiştirmeniz gerekir.
Tüm siteleri taşıyan komut
Kaynak kimlik belli olduktan sonra Plesk'in toplu işlemi eski kimliği kullanan servis planlarını ve siteleri yeni kimliğe alır.
Linux'ta kaynaklar plesk-php82-fastcgi ile plesk-php84-fastcgi, hedef plesk-php85-fpm ise:
plesk bin php_handler --replace -old-id plesk-php82-fastcgi -new-id plesk-php85-fpm
plesk bin php_handler --replace -old-id plesk-php84-fastcgi -new-id plesk-php85-fpm
Windows komut isteminde kimlikler fastcgi-8.2, fastcgi-8.4 ve fastcgi-8.5 ise:
plesk bin php_handler --replace -old-id fastcgi-8.2 -new-id fastcgi-8.5
plesk bin php_handler --replace -old-id fastcgi-8.4 -new-id fastcgi-8.5
Her eski kimlik için komut bir kez çalışır. Hedefte olan siteler ve PHP kapalı kayıtlar bu komuta girmez. Dedicated FPM ile ayrılmış bir siteyi paylaşılan havuza almak, siteler arası süreç ayrımını kaldırır. Ayrım korunacaksa dedicated 8.5 kimliği ayrıca bulunur ve yalnızca o grup ona taşınır.
Sayımı ve tarayıcı kontrolünü bir dakika sonra yapın. Yedekleme ya da sertifika yenileme sürüyorsa geçişi o iş bitene kadar erteleyin.
Geri dönüş de aynı komutla yapılır. Eski ve yeni kimliğin yeri değiştirilir. 8.5'e özel kaydedilmiş ek yönergelerin 8.2'de geçerli olduğundan emin olun. Ters komut yönerge kutusunu silmez.
Alan adı alan adı güncellemek istediğinizde
--replace bazı ortamlarda fazla geniştir. Belirli siteler 8.4'te kalacaksa liste dolaşılır ve her ad için domain çağrılır.
Linux:
plesk bin site --list | while IFS= read -r domain; do
[ -z "$domain" ] && continue
echo "Güncelleniyor: $domain"
plesk bin domain -u "$domain" -php_handler_id plesk-php85-fpm || echo "Başarısız: $domain"
done
Döngü hata verse de sonraki ada geçer. Yönlendirme kayıtları ve PHP barındırması olmayan adlar hata verebilir. Bu, PHP açık sitelerin geçmediği anlamına gelmez. Sonucu php-handlers-before.tsv ile karşılaştırın.
Windows komut isteminde yüzde işareti etkileşimli pencerede tektir. Aynı satır bir bat dosyasına konursa %%d yazılır.
for /f "tokens=*" %d in ('plesk bin site --list') do plesk bin domain -u %d -php_handler_id fastcgi-8.5
PowerShell boş satırları da ayırır.
plesk bin site --list | ForEach-Object {
$domain = $_.Trim()
if ($domain) {
Write-Output "Güncelleniyor: $domain"
plesk bin domain -u $domain -php_handler_id fastcgi-8.5
}
}
Bu döngüler servis planını değiştirmez. Plan adını plesk bin service_plan --list ile görün ve PHP işleyicisini hedef kimliğe alın. Parametre adını plesk bin service_plan --help çıktısından doğrulayın.
İlk on sitede aynı ölümcül hata varsa döngüyü durdurun. Kesmek, o ana kadar güncellenen siteleri geri almaz.
Yalnızca 8.2 kullanan siteleri taşımak
8.4.27 yerinde bırakılıp yalnız 8.2.35 kullananlar 8.5.12'ye alınabilir. Önce desteği bitecek dalı boşaltmak, hata çıkınca hangi dalın sorumlu olduğunu da görünür kılar.
Kimlik biliniyorsa tek komut yeter.
plesk bin php_handler --replace -old-id plesk-php82-fastcgi -new-id plesk-php85-fpm
Listeyi kendiniz süzecekseniz koşul hem php82 hem 8.2 kalıbını tutmalıdır. Yalnız %8.2% yazmak Linux kayıtlarını boş döndürür. Komut hiçbir siteyi güncellemeden biter ve ekrana hata düşmez.
plesk db -sNe "SELECT d.name FROM hosting h JOIN domains d ON d.id = h.dom_id WHERE h.php = 'true' AND (h.php_handler_id LIKE '%php82%' OR h.php_handler_id LIKE '%8.2%')" > domains_82.txt
Dosyayı uygulamadan açın. Satır sayısı paneldeki 8.2 sitesiyle uyuşmuyorsa kalıp yanlıştır.
while IFS= read -r domain; do
[ -z "$domain" ] && continue
echo "Güncelleniyor: $domain"
plesk bin domain -u "$domain" -php_handler_id plesk-php85-fpm || echo "Başarısız: $domain"
done < domains_82.txt
8.5'e geçmeyecek bir site dosyadan silinir. Döngü yalnızca dosyadaki adları işler ve servis planını değiştirmez. Silinen ad, sonraki plan eşitlemesinde çoğunluğun kimliğine çekilmesin diye abonelik özelleştirilmiş bırakılır. Windows'ta fastcgi-8.2 kimliği %8.2% ile bulunur. Dosyayı yine de gözle okuyun.
Geçişin tuttuğunu nasıl anlarsınız?
İşlem bitince dağılım tekrar sayılır.
plesk db -sNe "SELECT h.php_handler_id, COUNT(*) FROM hosting h WHERE h.php = 'true' GROUP BY h.php_handler_id"
Eski 8.2 kimliği duruyorsa o siteler hata almıştır ya da alt alan adı sorguya girmemiştir. --get-usage -id çıktısı boşsa o işleyiciyi kullanan site kalmamıştır. Toplam site sayısı değişmemelidir. Sayı düştüyse bir kayıt PHP kapalı duruma geçmiş olabilir.
Sayının tutması sitenin açıldığı anlamına gelmez. Her uygulama türünden bir siteyi tarayıcıda açın. Hata günlüğünde PHP Fatal error ve eklenti yüklenemedi satırlarına bakın. İkincisi çoğu zaman 8.5 dizininde olmayan bir .so ya da .dll dosyasıdır. Eksik eklenti, PHP Ayarları ekranında 8.5.12 satırının içinden kurulur. Önbelleği denemeden önce boşaltın.
Windows'ta eski php-cgi.exe kısa süre bellekte kalabilir. Şüphede ilgili IIS uygulama havuzunu yenileyin. Linux'ta FPM yeniden yüklenirken birkaç istek 502 dönebilir. Bu pencereyi trafiğin düşük olduğu saate alın.
Zamanlanmış görevde PHP yolu sabitse onu da hedef sürüme çevirin. Gündüz açılan sitenin gece bozulması çoğu zaman bu ayrımdan çıkar.
Ne zaman geri alınır?
Deneme sitesi açılmıyorsa toplu komut çalıştırılmaz. Toplu işlemden sonra bir grup site bozulduysa eski kimlik php-handlers-before.tsv içindedir.
plesk bin domain -u ornekalanadi.com -php_handler_id plesk-php82-fastcgi
Eski kimliğin tamamı yanlışlıkla taşındıysa --replace ters yönde uygulanır. Ardından grup sayımı yeniden alınır.
Geri alma, yalnız 8.5'te geçerli bir yönergeyi 8.2'ye götürebilir. Ek yönerge kutusundaki tanınmayan satır 8.2'de de ölümcül hataya dönüşebilir. Kutuyu boşaltıp siteyi açtıktan sonra gerekli satırları yeniden ekleyin. Eklenti yüzünden geri aldıysanız eklentiyi 8.5 tarafına kurup siteyi yeniden hedefe alın. Kalıcı çözüm siteyi 8.2'de bırakmak değildir. Eşleştirme dosyasını en az bir yedekleme döngüsü boyunca saklayın. Ertesi gün çıkan hata genellikle nadir bir sayfadaki eklenti hatasıdır.
Sık sorulan sorular
Plesk'te tüm domainlerin PHP sürümü tek tıkla değişir mi?
Hayır. PHP Ayarları ekranı işleyicileri açar ve kapatır. Toplu değişiklik plesk bin php_handler --replace ile yapılır ve servis planlarını da günceller. Tek site için komut plesk bin domain -u alanadi -php_handler_id KIMLIK biçimindedir.
Ekranda 8.5.12 FastCGI yazıyorsa Linux kimliği nedir?
Ekran adı kimlik değildir. plesk bin php_handler --list çıktısına bakın. Linux'ta FastCGI satırı çoğunlukla plesk-php85-fastcgi, FPM satırı plesk-php85-fpm olur. Windows kimliği fastcgi-8.5 biçimindedir.
8.4.27 kullanan siteyi de 8.5.12'ye almak zorunlu mu?
Hayır. 8.4.27, 21 Ekim 2026 güvenlik sürümüdür ve bu dal desteklenir. Zorunlu hareket, 31 Aralık 2026'da desteği bitecek 8.2.35 grubunu desteklenen bir dala taşımaktır. Uygulama 8.5 ile açılmıyorsa 8.4.27 geçici olarak kalabilir.
Alt alan adları döngüye girer mi?
php_handler --replace işleyiciyi kullanan kayıtları kapsar. site --list döngüsü site listesini dolaşır. Ayrı barındırması olan alt alan adı listede yoksa plesk bin subdomain --list çıktısı aynı kimlikle güncellenir.
Komut hata vermeden bitti ama sürüm değişmedi. Neden?
Linux kimliği plesk-php82-fastcgi biçimindedir ve %8.2% bu metni tutmaz. İkinci neden servis planıdır. Site güncellenmiş, eşitleme eski kimliği geri yazmıştır. Üçüncü neden kapalı işleyicidir. Hedef satır kapalıysa önce onu açın.
Geçiş sırasında site ne kadar kesilir?
Sağlıklı bir sitede kesinti birkaç istek sürer. Uyumsuz uygulamada kesinti, geri alana kadar sürer. Toplu komuttan önce tek site açılır ve işlem trafiğin düşük olduğu saate alınır.
Kısa uygulama sırası
plesk bin php_handler --listile 8.5.12 satırının kimliğini ve etkin olduğunu okuyun.- Site ve kimlik eşleştirmesini
php-handlers-before.tsvdosyasına yazın. - Bir alan adında
domain -uile deneyin. Ön yüzü ve hata günlüğünü kontrol edin. - Eski kimliğin tamamı taşınacaksa
php_handler --replacekullanın. Yalnızca seçilen adlar taşınacaksa dosyadan okuyan döngüyü kullanın. - Grup sayımını tekrarlayın ve her uygulama türünden bir site açın.
- Servis planının eski kimlikte kalmadığını doğrulayın. Zamanlanmış görevde sabit PHP yolu varsa onu da hedef sürüme çevirin.