Loading...
PHP 8 çalışma zamanı

PHP Platformu

Laravel, Symfony ya da elle yazılmış legacy kod olsun, PHP 8 uygulamaları için yönetilen bir çalışma zamanı — yönetilen bir MySQL veritabanı ve dahili bir dosya yöneticisiyle birlikte. Domain, Auto SSL, edge cache ve WAF aynı hesap üzerinden yönetildiği için siz sunucu bakımıyla değil, uygulama koduyla uğraşırsınız. Git push-to-deploy ve build adımları mı gerekiyor? Onun yeri, GitHub Deploy ile Container Apps.

Aylık 449 ₺'den başlar — Türk Lirası fiyat, döviz kuruna bağlı değil.

PHP Platformu

Yönetilen bir PHP çalışma zamanı çıplak bir VPS'e neden üstündür

Çıplak bir VPS'te tüm stack size aittir: OS güncellemeleri, PHP-FPM havuzu, web sunucu yapılandırması, TLS yenileme, firewall kuralları ve veritabanı daemon'u. Bunlardan biri bile kaysa site bozulur, ve bu işin çoğunun uygulamanızla hiçbir ilgisi yoktur. Yönetilen PHP platformu, yaygın uzantıları zaten hazır bulunan desteklenen bir PHP 8 çalışma zamanı sunar; böylece sorumluluğunuz kodunuza, bağımlılıklarına ve yapılandırmasına — yani gerçekten size ait olan kısımlara — daralır.

Laravel ve Symfony için framework dostu

Modern framework'ler belirli bir yapı bekler: public/ document root'u, yazılabilir bir storage ya da var dizini ve Composer ile yönetilen bağımlılıklar. Platform bunu doğrudan karşılar — document root'u public/ olarak ayarlar, kalan ağacı özel tutarsınız. Çalışma zamanında phpredis uzantısı mevcuttur; yani kendi Redis'ine bağlanan bir uygulama özel bir build olmadan çalışır. Sizin için sağlanmış yönetilen bir Redis instance'ı istiyorsanız, o bir Container Apps ek hizmetidir.

DBA olmadan yönetilen bir MySQL veritabanı

MySQL'i kendiniz kurmak; ayarlama, yedekleme, kullanıcı yönetimi ve güncel tutma anlamına gelir. Burada veritabanı hesapla birlikte yönetilen olarak gelir: sizin için sağlanır, kimlik bilgileri panelde gösterilir ve bunları uygulamanızın yapılandırmasına yapıştırırsınız. Şifreyi döndürmek bir panel işlemidir, ve veri deposu uygulama çalışma zamanınızdan ayrı olarak yönetilir.

Basitçe deploy edin — ve Git pipeline'ının nerede yaşadığını bilin

Her PHP projesi Git'te değildir, ve dosya yöneticisi üzerinden yüklenen küçük bir site ya da legacy bir uygulama dakikalar içinde canlıya alınabilir — bu platformun etrafına kurulduğu iş akışı tam olarak budur. Bir proje bunu aşıp push-to-deploy, build adımları ve deploy logları istediğinde, doğru adres GitHub Deploy ile Container Apps'tir: uygulamayı bir kez container'laştırırsınız ve tam Git pipeline'ını orada elde edersiniz.

Dinamik PHP'nin önünde edge cache ve WAF

PHP uygulamaları sayfaları render ederken gerçek CPU harcar, bu yüzden cache'lenebilir yanıtları doğrudan edge'den sunmak çalışma zamanınızı yükten korur. Hangi route'ların cache'lenmesinin güvenli olduğuna — genel bir katalog veya makale — ve hangilerinin her zaman çalışması gerektiğine — giriş yapılmış bir dashboard veya bir POST endpoint'i gibi — siz karar verirsiniz. WAF, uygulamanın önünde edge'de yer alır, injection ve scanner trafiğini PHP'ye ulaşmadan önce filtreler, Auto SSL ise bir yenileme cron'u olmadan HTTPS'in geçerli kalmasını sağlar.

Legacy PHP'yi modernize etmek için kontrollü bir yol

PHP 5 için yazılmış ya da bakımsız bir CMS üzerindeki eski uygulamalara dokunmak risklidir, ama sonsuza kadar ömrünü tamamlamış bir çalışma zamanında da kalamazlar. Platform, kodu getirebileceğiniz, veritabanını doğru karakter setiyle yönetilen MySQL'e taşıyabileceğiniz ve deprecation'ları bulup düzeltebileceğiniz PHP 8 üzerinde çalıştırabileceğiniz bir yer sunar. Geçici bir URL üzerinde doğrulama yapar ve artık güvenlik yaması almayan bir kod tabanının önüne WAF koyarsınız; böylece kod tam olarak temizlenmeden önce bile genel saldırı yüzeyi azalır.

Adım adım nasıl deploy edilir

1

PHP uygulamasını oluşturun ve çalışma zamanını seçin

Panelde Platform'u açın, PHP'yi seçin, PHP 8 sürümünü ve planı belirleyin. Çalışma zamanı, PHP uygulamalarının beklediği yaygın uzantılarla birlikte gelir — PDO, mbstring, GD, OpenSSL ve Redis uzantısı — yani bir uzantının etkinleştirilmesi için destek talebi açmanız gerekmez.

2

Kodunuzu platforma taşıyın

Uygulamanızı dahili dosya yöneticisi üzerinden yükleyin — framework uygulamaları için document root'u public/ dizinine ayarlar, ağacın kalanını özel tutarsınız. Ekibiniz build adımlı Git push-to-deploy istiyorsa, o iş akışı tam olarak GitHub Deploy ile Container Apps'in işidir; PHP platformu deploy'u bilinçli olarak basit tutar.

3

Yönetilen MySQL veritabanına bağlanın

Hosting hesabınızla birlikte yönetilen bir MySQL veritabanı sağlanır. Host, ad, kullanıcı ve şifresi panelde gösterilir — bunları uygulamanızın .env ya da yapılandırmasına kendiniz koyarsınız, ve şifreyi veritabanı sunucusuna dokunmadan istediğiniz an panelden sıfırlayabilirsiniz; çünkü sizin çalıştırmanız gereken bir veritabanı sunucusu yoktur.

4

Domain'i yönlendirin ve Auto SSL'i etkinleştirin

Domain'inizi veya bir name.cdn.com.tr subdomain'ini bağlayın; Auto SSL apex ve www için sertifikayı otomatik olarak alır ve yeniler. Trafik önce cdn.com.tr edge'ine ulaşır; istekler PHP çalışma zamanınıza proxy'lenmeden önce SSL sonlandırması burada gerçekleşir.

5

Edge cache ve WAF kurallarını ayarlayın

Hangi route'ların edge'de cache'lenebileceğini ve hangilerinin her zaman PHP'ye ulaşacağını tanımlayın ve bir WAF profili uygulayın. Cache'lenebilir yanıtlar çalışma zamanınızı uyandırmadan edge'den sunulur, ve yeni bir release yükledikten sonra panelden ya da API'den bir purge onları anında temizler.

Örnek senaryolar

Laravel uygulaması

Bir Laravel uygulaması, yönetilen MySQL veritabanıyla yönetilen PHP 8 çalışma zamanında çalışır; Auto SSL, edge cache ve WAF arkasında sunulur.

Legacy PHP portalı

Eski, özel CMS tabanlı bir portal yönetilen bir veritabanıyla PHP 8'e taşınır, WAF'ın arkasına alınır ve kesinti yaşanmadan route route modernize edilir.

Özel API backend'i

Elle yazılmış bir PHP API'si, yönetilen MySQL veritabanıyla yönetilen çalışma zamanında çalışır; edge SSL sonlandırmalı bir domain üzerinden, önünde WAF filtrelemesiyle yayınlanır.

Sıkça sorulan sorular

Çalışma zamanında hangi PHP uzantıları mevcut?

PHP 8 çalışma zamanı, tipik uygulamaların bağımlı olduğu uzantılarla birlikte gelir — PDO ve MySQL driver'ları, mbstring, görüntü işleme için GD, OpenSSL, cURL ve kendi Redis'ine bağlanan uygulamalar için phpredis uzantısı. Uzantı seti standart olduğundan, Laravel, Symfony ve çoğu Composer paketi özel bir build gerektirmeden kurulur.

Bir Laravel queue worker'ı ya da zamanlanmış görevler çalıştırabilir miyim?

PHP platformunda değil — platform uygulamanızı web isteği başına çalıştırır ve bir worker ya da cron yöneticisi yoktur. Uygulamanız queue worker'larına ya da zamanlanmış görevlere bağımlıysa, onu bunun yerine bir Container App olarak çalıştırın: container'lar uzun ömürlü süreçlerdir ve o platform ayrıca kuyruk backend'i olarak yönetilen Redis sunar.

Veritabanı kimlik bilgileri uygulamama nasıl ulaşır?

Yönetilen MySQL kimlik bilgileri — host, veritabanı adı, kullanıcı, şifre — panelde gösterilir. Bunları platformdaki .env ya da yapılandırma dosyanıza (web'e sunulan yolun dışına) kendiniz koyarsınız; böylece asla Git'e commit edilmeleri gerekmez, ve şifreyi destek talebi açmadan panelden sıfırlayabilirsiniz.

Uygulamam PHP 7 hedefliyor — PHP 8'de çalışır mı?

Bakımı yapılan çoğu kod, küçük düzenlemelerle PHP 8'de çalışır, ama PHP 8 bazı deprecated davranışları kaldırdı. Doğru yaklaşım, kodu platforma getirmek, geçici bir URL'de çalıştırmak ve domain'i değiştirmeden önce bulduğunuz deprecation'ları düzeltmektir — yönetilen çalışma zamanı bunu yapmanız için güvenli bir yer sağlar.

Document root'u public/ olarak mı ayarlıyorum?

Evet. Laravel, Symfony ve benzeri framework'ler için web root'unu public/ dizinine yönlendirirsiniz; böylece .env, vendor ve storage dahil uygulamanın geri kalanı web'e sunulan yolun dışında kalır. Kendi üst dizininden sunum yapan legacy uygulamalar da desteklenir; root'u buna göre ayarlarsınız.

Bir yeniden deploy'da kaybolmaması gereken dosya yüklemelerini nasıl yönetirim?

Uygulamanın kullanıcı verisi için kalıcı bir volume'ü vardır ve medya ağırlıklı uygulamalar için yüklemeleri object storage'a taşıyıp çalışma zamanı yerine CDN üzerinden sunabilirsiniz. Bu, deploy'ları hızlı ve stateless tutar ve bir yeniden deploy ya da ölçeklenme olayının yüklenen dosyaları asla riske atmaması anlamına gelir.