Barındırma Gereksinimleri

Bu sayfa, üretim WebBlocks CMS kurulumu için barındırma sözleşmesini tanımlar. Dağıtımdan önce bir sunucuyu değerlendiren ajanslara, sunucu operatörlerine ve barındırma sağlayıcılarına yöneliktir.

WebBlocks CMS, bir Laravel ana bilgisayar uygulamasına yüklenen bir Composer paketidir. Ana bilgisayar uygulaması kendi ortamına, web sunucusuna, veritabanına, postasına, kuyruklarına, zamanlanmış görevlerine, yedeklemelerine ve dağıtımına sahiptir. Yalnızca paket gereksinimlerini karşılamak, tamamlanmamış bir Laravel uygulamasını konuşlandırılabilir hale getirmez.

Gerekli platform

Alan

Asgari gereksinim

PHP

PHP 8.3 veya Composer destekli ^8.3 aralığında daha yenisi, CLI ve aynı uyumlu sürümü kullanan web çalışma zamanı ile

Çerçeve

Laravel Çerçeve 12.55+ veya 13.x

Bağımlılık yöneticisi

Composer 2, kurulum ve pakette yerel Sistem Güncellemeleri sırasında kullanılabilir

Paket tarafından bildirilen PHP uzantıları

mbstring, sodium ve zip

Üretim veritabanı temeli

Uygulamanın tablolar, dizinler, yabancı anahtarlar ve işlemler için kullanabileceği bir veritabanı ve kimlik bilgileri olan InnoDB'li MySQL 8.0

Web sunucusu

Laravel isteklerini public/index.php aracılığıyla yönlendirebilen Nginx, Apache veya eşdeğer bir sunucu

Belge kökü

Ana bilgisayar uygulamasının public/ dizini; asla uygulama kökü değil

TLS

Üretim yönetimi ve genel trafik için HTTPS

Composer ayrıca Laravel'nin kendi platform gereksinimlerini de çözer. Sağlayıcının, ana bilgisayar uygulamasının tamamı için composer check-platform-reqs'nin geçişine izin vermesi gerekir; yukarıdaki tablo bu kontrolün yerine geçmez.

Geçici olarak ölçülen bellek profili

Üretim ortamı için onaylanmış, her durumda geçerli bir PHP bellek alt sınırı veya istek zaman aşımı henüz belirlenmemiştir. Mevcut kısmi yerel doğrulama şu geçici planlama değerlerini sağlamıştır:

Test edilen iş yükü

Geçici planlama değeri

CMS çekirdeği, GD görüntü dönüştürmeleri olmadan

PHP memory_limit en az 128 MiB

Görüntüleri GD ile dönüştürebilen bir PHP çalışanı

Eşzamanlı çalışan başına en az 512 MiB gerçek süreç kapasitesi, 6.000 × 4.000 piksele (24 MP) kadar kaynak görüntüler için nitelikli

128 MiB değeri, çekirdek için geçici bir adaydır: tüm özellik testleri bu sınırda beş çalıştırmanın tamamında geçti, 96 MiB sınırında ise başarısız oldu. Bu değer tek başına GD ile görüntü işleme için yeterli değildir. 24 MP WebP testinde PHP yalnızca 32.5 MiB bildirirken çalışanın gerçek en yüksek yerleşik belleği 312.26 MiB oldu; GD, PHP tarafından izlenen sınırın dışında önemli miktarda bellek ayırır: memory_limit. Doğrulama protokolünün güvenlik payı uygulandığında, aynı anda görüntü dönüştüren her PHP çalışanı için 512 MiB gerçek bellekten oluşan geçici bir planlama profili elde edilir.

512 MiB rakamı, toplam sunucu RAM'i değil, çalışan kapasitesidir. Sunucu ayrıca işletim sistemini, web sunucusunu, veritabanını, önbellekleri ve diğer eşzamanlı PHP çalışanlarını da barındırmalıdır. CMS şu anda yüklenen dosya boyutunu sınırladığından ancak raster piksel boyutlarını sınırlamadığından, 512 MiB, test edilen 24 MP iş yükünden daha büyük rastgele görüntüleri garanti edemez. Bkz. Barındırma Kapasitesi Sonuçları .

SQLite, paket test paketi tarafından kullanılır ve belirli yedekleme/geri yükleme kodu yolları tarafından desteklenir, ancak üretim barındırma temeli değildir. MariaDB uyumlu yedekleme ve geri yükleme yolları mevcuttur, ancak MariaDB sürümü şu anda üretim kabul matrisinin bir parçası değildir. PostgreSQL, kurulum, geçiş, operasyon, yedekleme ve geri yükleme akışlarının tamamı kapsanıp belgelenene kadar tam olarak desteklenen bir üretim hedefi olarak sunulmamalıdır.

PHP yetenekleri

Gerekli uzantıların hem PHP-FPM/Apache PHP hem de PHP CLI'de etkinleştirilmesi gerekir. Web ve CLI PHP için farklı yapılandırmaları ortaya çıkaran bir barındırma panelinin bunları uyumlu tutması gerekir.

Aşağıdaki yetenekler koşulludur:

  • Kullanılan medya formatlarına yönelik codec'leri içeren gd, küçük resim ve duyarlı görüntü oluşturmaya olanak sağlar. Bu olmadan, uygun dönüşümler orijinal medya URL'lerine geri döner.
  • Veritabanı PDO sürücüsünün seçilen veritabanıyla eşleşmesi gerekir; üretim MySQL profilinin bu nedenle pdo_mysql'ye ihtiyacı var.
  • Genellikle OpenSSL ve dosya bilgileri desteği de dahil olmak üzere standart Laravel ve Composer platform gereksinimleri, çözümlenen ana bilgisayar uygulamasının gerektirdiği şekilde etkin kalmalıdır.
  • Pakette yerel Sistem Güncelleme iş akışı için proc_open ve PHP ve Composer işlemlerini çalıştırma izni gereklidir. Sağlayıcı süreç yürütmeyi devre dışı bırakırsa dağıtımların ve güncellemelerin CMS dışında operatör tarafından yönetilmesi gerekir.

Yalnızca geliştirme amaçlı bir doktor komutundan uzatma gereksinimi sonucunu çıkarmayın. Yetkili kurulum kontrolü, tüm ana bilgisayar uygulaması için Composer platform çözünürlüğüdür ve ardından CMS hazırlık kontrolleri yapılır.

Dosya sistemi ve izinler

Dağıtılan kod PHP çalışma ortamı tarafından okunabilmelidir. PHP süreç kullanıcısı veya ortak bir dağıtım grubu şu konumlara okuma ve yazma erişimine ihtiyaç duyar:

  • storage/; buna storage/framework, storage/logs, herkese açık medya, geçici çalışma alanları ve yapılandırılmış yedekleme diski dahildir;
  • bootstrap/cache;
  • site ve sayfa için özel dosyaların oluşturulabildiği public/site;
  • yalnızca paketin Sistem Güncellemeleri kurulu paketi değiştirecekse uygulama kökü ve yapılandırılmış güncelleme çalışma alanı; ve
  • ana uygulamanın CMS medyası veya yedeklemeler için yapılandırdığı diğer Laravel diskleri.

Dosya sahipliğini veya kapsamı dar bir dağıtım grubunu kullanın; herkese yazma hakkı veren 777 izinlerini kullanmayın. Herkese açık medya standart Laravel diskinde tutulduğunda sunucu public/storage sembolik bağlantısına izin vermelidir; bu düzenlemede kullanılan disk storage/app/public yolundadır. Sembolik bağlantılar kullanılamıyorsa ana uygulama herkese açık diski sunmak için eşdeğer bir düzenleme sağlamalıdır.

Uygulama kökü, .env, vendor/, storage/, .git/ ve kaynak dosyaları doğrudan web üzerinden erişilebilir olmamalıdır. /.env ve /.git/config gibi istekler 404 döndürmelidir.

Web sunucusu ve URL davranışı

Sunucu şunları yapmalıdır:

  • public/'nin altındaki mevcut dosyaları doğrudan sunar ve diğer istekleri Laravel'nin public/index.php'sine gönderir;
  • Laravel'nin doğru güvenli URL'ler oluşturması için HTTPS'yi ve ana bilgisayar bilgilerini herhangi bir ters proxy aracılığıyla koruyun;
  • /webadmin kapsamındaki CMS yöneticisinin ve /cms kapsamındaki statik paket varlıklarının bir arada bulunmasına izin verin;
  • public/cms/index.php ön denetleyici eklemekten veya /cms'ye yönetici yolu olarak davranmaktan kaçının; Ve
  • sitenin medya politikası için operatör tarafından seçilen yükleme gövde boyutlarını ve istek zaman aşımlarını destekler.

WebBlocks CMS, PHP belleği veya istek zaman aşımı için üretim onaylı minimum değeri henüz yayınlamamaktadır. Mevcut kapasite sonuçları, 128 MiB'lik geçici bir çekirdek PHP memory_limit adayı ve bir adet 24 MP GD dönüştürme çalışanı için test edilmiş bir 512 MiB işlem kapasitesi profili oluşturur. İkincisi evrensel değildir çünkü raster piksel boyutları şu anda sınırsızdır. Mevcut CMS ortam doğrulama tavanı, yükleme başına 50 MiB'dir ve paket-yerel Sistem Güncellemesi, mutlak 500 MiB boş alan ön kontrol tabanına sahiptir; her iki değer de tek başına genel bir bellek, istek veya depolama kapasitesi garantisi değildir. Bir sağlayıcı teklifi, gerçek sınırlarını belirtmelidir. İş yükü destekli minimum değerleri belirlemek ve yayınlamak için Barındırma Kapasitesi Doğrulamasını kullanın.

Özelliğe bağlı hizmetler

Yetenek

Barındırma bağımlılığı

Resim çeşitleri

Gerekli JPEG, PNG veya WebP codec bileşenine sahip PHP GD

İletişim bildirimleri ve şifre sıfırlama postası

Çalışan bir Laravel posta aktarımı ve sağlayıcı kimlik bilgileri

Planlanmış bildirimler

Laravel schedule:run her dakika; toplu/günlük iletişim veya Canlı Sohbet bildirimleri ve günlük bekleyen mesaj özetleri için gereklidir. Ayrıca, birden fazla çalışan çalıştığında giden postanın çalıştırılmasını ve atomik kilitlerle paylaşılan bir önbellek gerektirir.

Planlı temizlik

Aynı Laravel zamanlayıcı; yalnızca hiçbir etkin özelliğin planlanmış işleme gerektirmemesi ve manuel temizlemenin yeterli olması durumunda isteğe bağlıdır

Kuyruklar

Ana uygulamanın sahibi olduğu; eşzamanlı CMS görüntüsü oluşturma veya genel arama indeksleme için gerekli değildir

Paket Yerel Sistem Güncellemeleri

Giden HTTPS, ZIP ve sodyum, Composer 2, proc_open, yürütülebilir PHP/Composer, yazılabilir uygulama/güncelleme yolları ve indirme, çıkarma, yedekleme ve geri alma için yeterli boş alan

Yerel MySQL yedekleme/geri yükleme

Dışa aktarma için mysqldump veya mariadb-dump ve içe aktarma için mysql veya mariadb, PHP işleminde kullanılabilir

Uzaktan medya içe aktarma

Giden HTTP/HTTPS, CMS ağ güvenliği kontrollerine ve herhangi bir barındırma güvenlik duvarı politikasına tabidir

Bir sunucu, yalnızca karşılık gelen özellik devre dışı bırakıldığında veya başka bir yerde operasyonel olarak işlendiğinde CMS'yi isteğe bağlı yetenekler olmadan çalıştırabilir. Sınırlama, devir sırasında kaydedilmelidir.

Planlanmış bildirim gereksinimleri

CMS 1.95.0'dan itibaren yeni siteler varsayılan olarak toplu mesaj bildirimlerine ve günlük özete sahiptir, dolayısıyla seçilen bildirim politikaları planlama gerektirir. Sunucu yöneticisi veya barındırma sağlayıcısı, CMS ile uyumlu bir CLI PHP ikili programını kullanarak, uygulama kullanıcısı altında tek seferlik cron kurulumuna sahiptir. CMS görevlerini kaydeder ancak sunucu cron girişini yüklemez veya değiştirmez. Mevcut çalışan bir Laravel zamanlayıcı, yükseltme sonrasında yeni görevi ikinci bir cron girişi olmadan çalıştırabilir. Günlük özetlerin devre dışı bırakıldığı yalnızca anında bildirimler, bildirim teslimi için zamanlayıcı gerektirmez.

CMS 1.95.1, Kontrol Panelinde, Site bildirim ayarlarında ve site bildirim API'sinde kayıtlı planlayıcıyı ve bildirim çalışanı sağlığını gösterir. Canlı Sohbet 0.7.1, ayarlarına ve eklenti sağlığına aynı bağımlılığı ekler. Kayıtlı bir görev tek başına yürütme kanıtı değildir: durum, zamanlanmış bir kalp atışı ve tamamlanmış bir bildirim çalıştırması mevcut olana kadar Henüz doğrulanmadı olarak kalır ve kanıt beş dakikadan eski olduğunda Delayed olur. Kurulum ve kabul kontrolleri için bkz. Kurulum. Bu, gelen kutusu teslimatını veya her bir sunucu düğümünün durumunu değil, kayıtlı yürütmeyi rapor eder.

Üretim yapılandırması ve işlemleri

Ana bilgisayar uygulamasının güçlü bir APP_KEY, APP_DEBUG=false, doğru bir genel APP_URL, HTTPS üzerinden güvenli oturum tanımlama bilgileri, çalışma veritabanı kimlik bilgileri ve üretime uygun oturum/önbellek/posta ayarları olmalıdır. Sırlar çevreye aittir ve belge kökü aracılığıyla işlenmemeli veya ifşa edilmemelidir.

Barındırma düzenlemesi ayrıca şunları tanımlamalıdır:

  • Veritabanı ve yüklenen dosyalar uygulama dışında nasıl yedeklenir;
  • Uygulama içi güncellemeler mevcut olmadığında sürümler nasıl dağıtılır;
  • OPcache zaman damgalarını doğrulamadığında PHP-FPM veya ilgili hizmet nasıl yeniden yüklenir;
  • Günlüklerin nerede tutulduğu ve disk tüketiminin nasıl izlendiği; ve
  • TLS yenileme, veritabanı bakımı, geri yükleme testleri ve olay müdahalesine sahip olan kişidir.

Uygulama düzeyindeki yedeklemeler, sağlayıcı veya altyapı yedeklemelerinin yerini almaz.

Kabulü

composer check-platform-reqs
php artisan about
php artisan webblocks:install --help

Daha sonra genel siteyi, /webadmin/login'yi, statik /cms varlıklarını, medya yüklemeyi ve etkinleştirilmiş, özelliğe bağlı herhangi bir hizmeti doğrulayın. Sistem Güncellemesinin kendi başarılı/başarısız ön kontrolü vardır ve gereksinimlerinden biri başarısız olduğunda kullanılamaz durumda kalmalıdır.

Ayrıca bkz. Kurulum, Güvenlik, İşlemler ve Medya Görüntüsü Çeşitler.