Operasyonlar
Genel Bakış
WebBlocks CMS; güncellemeler, yedeklemeler ve site aktarım paketleri için kurulum düzeyinde operasyonel araçlar içerir.
Settings de yönetici System gezinmesi altında yer alır; çünkü kurulum düzeyindeki proje kimliği, dil (locale), saat dilimi, gizlilik, sürüm ve ortam ayarlarını kontrol eder.
Admin -> System -> Block Types aynı zamanda kurulum düzeyinde bir katalog inceleme ekranı olarak da işlev görür. Support filtresi blok yeteneği ve içerik kaynağı meta verileri içindir; Usage filtresi ise blocks tablosundan gelen gerçek canlı kullanım sayıları içindir; böylece yöneticiler kullanılan ve kullanılmayan blok türü satırlarını gözden geçirebilir.
Admin -> System -> Visitor Reports, kurulum düzeyindeki sistem ayarlarının yanında gizlilik açısından güvenli trafik raporlaması sağlar.
Maintenance, şunlar için operasyonel araçlar grubu olmaya devam eder:
- Arama Yeniden Oluşturma
- Yedeklemeler
- Dışa Aktarma / İçe Aktarma
- Güncelleme
Ziyaretçi Raporları
Ziyaretçi Raporları, herkese açık sayfa etkinliği için gizlilik açısından güvenli bir operasyonel rapordur. Anonim sayfa görüntülemeleri, onaya dayalı tanımlayıcılar olmadan sayılabilir. Rapor ayrıca yalnızca toplulaştırılmış yönlendiren, kampanya, cihaz ve bot bilgilerini saklar:
- yönlendirenler ana bilgisayar/alan adı düzeyine ve
direct,internalveyaexternaltürüne normalize edilir; tam yönlendiren URL'leri saklanmaz veya gösterilmez - boş yönlendirenler
Direct / Unknownolarak gruplanır - UTM kaynağı, aracı ve kampanyası yalnızca normalize edilmiş değerler olarak saklanır; tam sorgu dizesi saklanmaz
- user-agent dizeleri istek anında cihaz kategorisine (
desktop,mobile,tablet,botveyaunknown) ve varsa kaba tarayıcı/işletim sistemi ailelerine indirgenir; tam user-agent dizeleri saklanmaz - bilinen tarayıcı (crawler) ve bot user-agent kalıpları bot sayfa görüntülemesi olarak sayılır ve sessizce kaldırılmak yerine raporda görünür kalır
Tekil ziyaretçiler, oturumlar, giriş sayfaları ve oturum başına ortalama sayfa sayısı, onaya dayalı oturum takibi gerektirir. Bir tarih/site/dil/trafik filtresi sayfa görüntülemeleri içerdiği hâlde kullanılabilir bir oturum veya ziyaretçi tanımlayıcısı içermiyorsa, arayüz 0 yerine Not tracked gösterir. Güvenli biçimde geriye dönük doldurulamayan eski satırlar, hangi toplulaştırılmış alanların mevcut olduğuna bağlı olarak Unknown, Direct / Unknown veya Not tracked olarak kalır.
Site kapsamlı yetkilendirme burada da geçerlidir: süper yöneticiler tüm siteleri görebilirken, site yöneticileri ve editörler yalnızca atanmış site verilerini görebilir. Site filtresi, kullanıcının erişebildiği sitelerle sınırlıdır.
Sistem Güncellemeleri
Sistem Güncellemeleri, çalışan CMS kod sürümünü yapılandırılmış güncelleme servisiyle karşılaştırır.
Güncelleme ekranı şu gibi durumları raporlayabilir:
- güncelleme mevcut
- güncel
- yerel/kaynak sürüm, yayımlanmış en son sürümden daha yeni
- uyumsuz güncelleme mevcut
- sürüm bulunamadı
- güncelleme sunucusu erişilemez
- geçersiz veya desteklenmeyen yanıt
Uygulama içi güncelleme akışı sürüm paketini indirir, korumalı yol kurallarını uygular, gerekli güncelleme migration'larını çalıştırır, önbellekleri temizler, uygulanan WebBlocks CMS kod sürümünü hedef sürümle doğrular, güncelleme çalıştırmasını kaydeder ve kurulu sürümü kalıcı hâle getirir.
Güncelleme kullanılabilirliği, yayımlanmış en son sürümün çalışan CMS kod sürümünden daha yeni olmasına dayanır. Geçmişteki başarısız güncelleme çalıştırmaları ve bayat kayıtlı kurulu sürüm değerleri, son çalıştırma penceresi, destek raporu, saklanan çalıştırma CLI'si veya Update Readiness üzerinden incelenebilir kalır; ancak bunlar tek başlarına mevcut bir kurulumu işlem gerektirir hâle getirmez.
Ekran varsayılan olarak iki kart gösterir: önce Install Update, sonra Update Details. Install Update tek birincil eylem alanıdır. Uyumlu bir güncelleme mevcut olduğunda mevcut sürümden en son sürüme giden yolu, uyumluluk durumunu, kurulum çağrı düğmesini ve daraltılmış bir Package Safety Details akordeonunu gösterir. Güncelleme mevcut olmadığında sade bir güncel veya erişilemez mesajı gösterir ve paket güvenliği ayrıntılarını atlar.
Update Details; Release Notes, Update Readiness ve Last Update Run için WebBlocks UI akordeon satırları içerir. Update Readiness, mevcut kurulumu ve güncelleme servisi denetimlerini açıklar; hedef sürüme ait sürüm notu içeriği değildir. Last Update Run, ana ekranda yalnızca en son ilgili çalıştırma özetini gösterir; ayrıntılara açılır pencereden ulaşılabilir. Süper yöneticiler, paylaşımlı barındırma destek süreçleri için aynı karttan bir destek raporu indirebilir; rapor mevcut/en son sürüm, hazırlık durumu, son çalıştırma ayrıntıları ve saklanan çalıştırma özetlerini içerirken token'lardan, gizli bilgilerden, mutlak yerel yollardan ve ham yığın izlerinden kaçınır.
Güncelleme Geçmişi artık ana ekranda tablo olarak sunulmaz ve satır silme yönetici arayüzünün parçası değildir. Güncelleme çalıştırma kayıtları otomatik olarak budanır; varsayılan olarak son beş çalıştırma saklanır. En son başarısız çalıştırma, daha yeni bir başarılı çalıştırma oluşana kadar korunur. Terminal erişimi olan operatörler saklanan kayıtları php artisan webblocks:updates:runs, php artisan webblocks:updates:runs --last veya php artisan webblocks:updates:runs --failed ile inceleyebilir ve php artisan webblocks:updates:prune-runs --keep=5 ile kontrollü budama çalıştırabilir.
Güncelleme istemcisi; başlık, özet, öne çıkanlar, düzeltmeler, uyumluluk notları, migration notları, varlık (asset) notları, operatör notları ve teknik notlar dâhil olmak üzere güncelleme servisinden gelen yapılandırılmış meta verileri destekler. Bu değerler, Release Notes akordeonu içinde operatör odaklı gruplar hâlinde kaçış uygulanmış düz metin olarak sunulur. Yalnızca release_notes sağlayan eski sürümler bu notları yine düzgün biçimde gösterir; notu olmayan sürümler ise No release notes were provided for this release. gösterir. Hazırlık denetimleri, kayıtlı kurulu sürüm ve düşük düzeyli güncelleme sunucusu değerleri Update Readiness içinde kalır.
Çekirdek katalog eşitlemesi artık normal Sistem Güncellemesi uygulama zincirinin parçası değildir. Sürüm paketleri kodu, varlıkları, gerekli güncelleme migration'larını, önbellek temizlemelerini, uygulama sonrası sürüm doğrulamasını, çalıştırma geçmişini ve kurulu sürüm kalıcılığını uygular; kapsamlı katalog onarımı ise açıkça başlatılan bir bakım iş akışıdır.
Mevcut bir kurulumda elle bakım veya kurtarma için yöneticiler ve geliştiriciler ayrıca şunu da çalıştırabilir:
php artisan webblocks:catalog-repair --dry-run --all
php artisan webblocks:catalog-repair --all
php artisan block-types:sync-core
webblocks:catalog-repair; --block-types, --slot-types, --page-layouts, --icons ve --all seçeneklerini destekler. Oluşturulan, güncellenen, değişmeyen ve atlanan satırları raporlar, kuruluma özgü özel katalog satırlarını korur ve tekrar tekrar çalıştırılabilir. block-types:sync-core, blok türü kataloğu için daha düşük düzeyli bir uyumluluk komutu olarak kalmaya devam eder.
Yayımlanan sürüm paketleri çekirdek ürün paketleridir. Yeniden kullanılabilir CMS kaynağını, varlıkları, migration'ları, görünümleri, rotaları, yapılandırmayı, belgeleri ve testleri içerir; ancak project/ içindeki kuruluma özgü proje katmanı içeriğini içermez.
CMS sürüm/güncelleme yayımlama, yerel bir bakımcı (maintainer) iş akışıdır:
composer release:prepare
composer release:publish-update -- --dry-run
composer release:publish-update
release:prepare, paket köklü ZIP'i, sağlama toplamını ve yayımcı yükünü yerel olarak oluşturur. release:publish-update, paketi ve meta verileri pakete ait varsayılan yayımlama uç noktası https://publisher.webblocksui.com/api/updates/publish adresine gönderir, ardından stable kanalında webblocks-cms için en son güncelleme sunucusu meta verilerini doğrular. Kurulu CMS siteleri normal .env dosyalarında Publisher/güncelleme sunucusu, ürün veya kanal ortam anahtarları yapılandırmaz; CMS ürün kodu varsayılan sürüm sunucusuna, ürün anahtarına, stable kanalına, latest yoluna ve publish yoluna ReleaseDefaults üzerinden sahiptir. Yayımlama normalde yalnızca WEBBLOCKS_PUBLISHER_TOKEN gerektirir. Önbelleğe alınmış yapılandırmayla yapılan çalıştırmalar yalnızca bu token'ı proje .env dosyasından yeniler ve tanılamalar yalnızca yapılandırıldı/yapılandırılmadı durumunu bildirir. Eski updates.webblocksui.com köprüsü yalnızca tarihseldir ve etkin bir yapılandırma yolu olarak kullanılmamalıdır. Git commit'leri ve tag'leri yalnızca kaynak geçmişi adımlarıdır. GitHub Actions, GitHub sürümleri, GitHub varlık URL'leri, GitHub API'si ve gh CLI, CMS güncelleme yayımlamanın parçası değildir ve .github iş akışları bilinçli olarak yoktur.
Kurulu CMS çalışma kopyaları güncelleme tüketicileridir. Gerektiğinde kaynak geçmişini çekebilirler; ancak bir kurulum kopyasından ana depoya gönderim yapmamalı veya CMS güncellemeleri yayımlamamalıdır.
İletişim Postası Tanılamaları
İletişim Formu gönderimleri, bildirim teslimatından önce kaydedilir. E-posta bildirim durumu yalnızca bildirim davranışını yansıtır; editoryal durumu veya spam sınıflandırmasını değiştirmez. Sent, Laravel'in gönderimi yapılandırılmış gerçek bir posta taşıyıcısı üzerinden istisnasız kabul ettiği anlamına gelir; gelen kutusuna teslimi garanti etmez. Failed, gerçek bir gönderimin denendiği ve arındırılmış bir hata fırlattığı anlamına gelir. Skipped veya Not configured, gerçek bir gönderim denenmediği anlamına gelir; çünkü bildirim devre dışıydı, hiçbir alıcı çözümlenemedi, mailer log, array veya null ya da SMTP yapılandırması eksik. Puanlanan spam, yönetici incelemesi için bilinçli olarak saklanır/karantinaya alınır; yalnızca doldurulmuş üretilen denetim alanı veya çok hızlı gönderimler, genel başarı yönlendirmesiyle birlikte kaydedilmeden önce atılabilir. CONTACT_SPAM_AUTO_DISCARD_SCORE gibi yapılandırılabilir bir eşik, güvenli biçimde ayarlanmasına yetecek üretim verisi biriktikten sonra ileride değerlendirilebilir.
İletişim Formu bildirim alıcıları şu sırayla çözümlenir:
- İletişim Formu bloğu
recipient_email Site -> Edit -> Contactüzerinden site varsayılan iletişim alıcısı.envCONTACT_RECIPIENT_EMAIL- güvenli
MAIL_FROM_ADDRESSyedeği
Tipik Laravel SMTP .env ayarları şunlardır:
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=no-reply@example.com
MAIL_FROM_NAME="Site Name"
CONTACT_RECIPIENT_EMAIL=contact@example.com
Bir üretim veya paket kurulumunda .env posta ayarlarını düzenledikten sonra, gerektiğinde önbelleğe alınmış yapılandırmayı temizleyin:
php artisan optimize:clear
Bir İletişim Mesajı bildirim hatası gösterdiğinde, gizli bilgi içermeyen posta tanılama komutunu kullanın:
php artisan contact:mail-diagnose
php artisan contact:mail-diagnose --block=137
php artisan contact:mail-diagnose --send-test=operator@example.com
Komut; çözümlenen mailer'ı, ana bilgisayarı, bağlantı noktasını, şema/şifreleme alanlarını, kullanıcı adını, gönderen adresini, CONTACT_RECIPIENT_EMAIL değerini, yapılandırma önbelleği durumunu ve isteğe bağlı İletişim Formu bloğu/site alıcı yedeklerini raporlar. Asla MAIL_PASSWORD veya token değerlerini yazdırmaz. İsteğe bağlı gönderim testi yalnızca başarıyı veya arındırılmış bir hata ayrıntısını raporlar; böylece operatörler, gizli bilgileri terminal günlüklerine sızdırmadan bayat yapılandırmayı, ana bilgisayar/bağlantı noktası/şifreleme uyumsuzluğunu, kullanıcı adı/gönderen uyumsuzluğunu ve geçersiz posta kutusu kimlik bilgilerini birbirinden ayırt edebilir.
Kaydedilen gönderimler ve bildirim durumu için doğruluk kaynağı olarak İletişim Mesajları'nı kullanın. log, array ve null gibi geliştirme mailer'ları, operasyon raporlarında teslim edilmiş e-posta olarak değerlendirilmemelidir.
Operasyonel duman testi:
- Yerleşik
contact_formbloğunu içeren bir sayfayı yayınlayın veya önizleyin. - Bir test mesajı gönderin.
- Mesajın
/webadmin/contact-messagesiçinde göründüğünü doğrulayın. - Bildirim durumunu ve güvenli hata ayrıntısını gözden geçirin.
- Alıcı çözümlemesi belirsizse
php artisan contact:mail-diagnose --block=IDçalıştırın. php artisan contact:mail-diagnose --send-test=operator@example.comkomutunu yalnızca kontrollü bir SMTP gönderim denetimi için çalıştırın.
WebBlocks UI Manager Operatör Eklentisi
WebBlocks UI Manager, ürüne özgü sürüm operasyonları için dâhilî/operatör eklentisidir. Normal CMS çalışma zamanı paketlerine dâhil edilmez ve sıradan CMS kurulumları bunu kurmamalıdır. Yerel yapıtını bakım deposundan şu komutla oluşturun:
php plugins/webblocks-ui-manager/build-plugin.php
Oluşturulan ZIP'i süper yönetici olarak System -> Plugins üzerinden yükleyin, kurulan eklenti ayrıntısını gözden geçirin, ardından açıkça etkinleştirin. Yüklenen eklentiler varsayılan olarak devre dışı kurulur. Devre dışı veya uyumsuz kurulumlar etkisiz kalır ve devre dışıyken sağlık denetimi yapılmaz.
Eklenti migration bildiriyorsa, etkinleştirme kurulumun tamamlandığı anlamına gelmez. Eklentiye ait tablolar eksik olduğunda eklenti ayrıntı ekranı Setup required / Plugin migrations pending gösterir. Yalnızca o kurulu eklentinin bildirdiği migration'ları ve yalnızca eklenti kurulum yolundan çalıştırmak için eklenti ayrıntı ekranındaki süper yönetici Run Plugin Migrations eylemini kullanın. Eylem idempotenttir, eklenti etkin durum dosyasına bir kurulum sonucu kaydeder ve gizli bilgi içermeyen hatalar raporlar. Kurulumdan önce görünür olan etkin eklenti rotaları, ham veritabanı hataları yerine kontrollü kurulum yönlendirmesi göstermelidir.
Bir kurulum kısa süreliğine v1.32.67 çalıştırıp webblocks_ui_manager_* tabloları oluşturduysa, bu yama bunları otomatik olarak silmez. Elle eklenti kaldırma da eklentiye ait tabloları korur. Bir operatör eklentiye gerek olmadığını doğrulayıp yedekle birlikte ayrı bir elle veritabanı temizliği yapmadıkça bunları yerinde bırakın.
Elle kurulup etkinleştirildiğinde ve kurulumu tamamlandığında eklenti; WebBlocks UI sürüm meta verileri, ön deneme (dry-run) doğrulaması ve yerel statik CDN yayımlama için /webadmin/plugins/webblocks-ui-manager/releases ekler. CMS super_admin kullanıcıları, manifestte bildirilen eklentiye ait izinler üzerinden etkin eklenti rotalarını açabilir; süper yönetici olmayan roller açık eklenti izin atamaları gerektirir. webblocks_ui_manager_releases, webblocks_ui_manager_artifacts veya webblocks_ui_manager_publish_runs eksikse, Releases ekranı eksik tabloları sorgulamak yerine kurulum-gerekli yönlendirmesi gösterir ve eklenti kurulumuna geri bağlantı verir. Yerel WebBlocks UI dist dosyalarıyla bir sürüm hazırlayın:
php artisan webblocks-ui-manager:prepare-release v2.7.9 --artifact=/path/to/webblocks-ui.css --artifact=/path/to/webblocks-icons.css --artifact=/path/to/webblocks-ui.js
Komut, sürüm meta verilerini kaydeder, SHA-256 sağlama toplamlarını hesaplar ve birinci taraf statik kural public/cdn/webblocks-ui/{version}/... için manifest meta verilerini hazırlar. Beklenen dist dosyaları webblocks-plugins.webblocks_ui_manager.expected_dist_files ile yapılandırılır ve varsayılan olarak webblocks-ui.css, webblocks-icons.css ve webblocks-ui.js dosyalarıdır.
Dosya yazmadan yayımlama planını doğrulayın:
php artisan webblocks-ui-manager:publish-release v2.7.9 --dry-run
Ön deneme doğrulaması geçtikten sonra yerel yayımlamayı uygulayın:
php artisan webblocks-ui-manager:publish-release v2.7.9
Yayımlama iş akışı; yazmadan önce kaynak yolları, sürüm-hedef yol eşleşmesini, beklenen dist dosyalarını, kayıtlı sağlama toplamlarını, manifest tutarlılığını ve idempotentliği doğrular. Sağlama toplamı eşleşen mevcut dosyalar atlanır. Sağlama toplamı farklı olan mevcut dosyalar yayımlamayı engeller. Hedef, WEBBLOCKS_UI_MANAGER_CDN_BASE_PATH=cdn/webblocks-ui üzerinden varsayılan olarak yerel/projeye aittir; WEBBLOCKS_UI_MANAGER_CDN_BASE_URL isteğe bağlı görüntüleme/URL meta verisidir. İş akışı harici bir üretim sunucusuna dağıtım yapmaz, güncelleme sunucusu meta verileri yayımlamaz veya CMS çekirdek WebBlocks UI varlık URL'lerini değiştirmez.
System -> Plugins; devre dışı, etkin, uyumsuz, dosyaları eksik ve hata durumlarını ayrı ayrı raporlar. Devre dışı eklentiler hata değil, etkin olmayan sağlık durumu gösterir. Etkin olarak yapılandırılmış ancak uyumsuz bir eklenti etkisiz kalır: hiçbir eklenti rotası, komutu, menüsü, izni, ayar rotası, bileşeni (widget), varlığı, blok bildirimi veya sağlık raporlayıcı davranışı etkinleşmez.
Elle kaldırma yalnızca elle yüklenmiş eklentiler için ve devre dışı bırakıldıktan sonra kullanılabilir. Depolamaya ait kurulu paket dizinini ve etkin durum dosyasını kaldırır; CMS çekirdek dosyalarına, herkese açık /cms varlıklarına, proje dosyalarına, vendor dosyalarına veya yapılandırılmış eklenti kökü dışındaki depolamaya asla dokunmaz. Yıkıcı migration çalıştırmaz veya eklentiye ait veritabanı tablolarını silmez.
Harici üretim CDN dağıtımı, barındırılan CDN duman testleri (smoke check), genel üçüncü taraf eklenti kurulum/güncelleme davranışı, rastgele uzak yükleyiciler, Composer paket kurulumu, güncelleme sunucusu yayınlama ve pazar yeri/katalog akışları bilinçli olarak ertelenmiş durumdadır.
Yedekleme / Geri Yükleme
Yedekleme / Geri Yükleme, ortam düzeyindeki kurtarma aracıdır.
Yedekler şunları içerebilir:
- veritabanı dökümü
storage/app/publiciçindeki CMS tarafından yönetilen yüklemelermanifest.jsoniçindeki arşiv meta verileri
Geri yükleme davranışı açıkça tanımlıdır:
- yalnızca geçerli bir arşive sahip tamamlanmış yedekler geri yüklenebilir
- arşiv indirme, ayrıntı, geri yükleme uygunluğu ve silme eylemleri yolları aynı
backupsdisk kökü üzerinden çözer; dizin gezinmesini (traversal), symlink kaçışlarını ve bu kökün dışındaki mutlak yolları engeller - eksik veya okunamayan arşiv dosyaları, ham dosya sistemi istisnaları yerine denetimli yönetici geri bildirimi olarak gösterilir
- geri yükleme önce yeni bir geri yükleme öncesi güvenlik yedeği oluşturur
- geri yükleme mevcut veritabanını değiştirir
- arşive yüklemeler dahil edildiğinde geri yükleme
storage/app/publicdizinini değiştirir - MySQL/MariaDB geri yüklemeleri içe aktarmayı geçici yabancı anahtar ve benzersizlik denetimi korumalarıyla çalıştırır; böylece tablo oluşturma sırası ortamlar arasında farklı olsa bile geçerli tam dökümler taşınabilir kalır
- Sistem Güncellemesi üzerinden güncellenen mevcut kurulumlar gerektiğinde pakete ait onarım migration'larını da çalıştırır; bu,
pages(id, site_id)üst anahtarı gibi şema sözleşmelerini, site kapsamlıpage_translationsyabancı anahtarları içeren yedeklerle hizalı tutar
Yalnızca tek bir sayfayı değil, kurulum ortamını kurtarmanız gerektiğinde Yedekleme / Geri Yükleme'yi kullanın.
Dışa / İçe Aktarma
Dışa / İçe Aktarma, site taşınabilirlik aracıdır.
Bir sitenin içeriğini kurulumlar arasında taşımak için kullanın.
Site aktarım paketleri, varsayılanı storage/app/site-transfers olan site-transfers adlı Laravel dosya sistemi diskinde saklanır. Yeni Composer tüketici kurulumları bu diski otomatik olarak kaydeder ve webblocks:install depolama dizinini hazırlar; bu nedenle ana bilgisayar uygulamalarının, özel bir disk sağlamak istemedikleri sürece config/filesystems.php dosyasını düzenlemesi gerekmez.
Site içe aktarmaları, hedef kurulumun veritabanı destekli blok türü ve slot türü kataloglarının, paketin başvurduğu satırları içermesini gerektirir. Yeni Composer kurulumları bu katalogları webblocks:install sırasında tohumlar; açık katalog bakımı, ürünle gönderilen satırları webblocks:catalog-repair ile onarabilir ve içe aktarma çalıştırıcısı, bir paket eksik bir çekirdek satıra başvurduğunda doğrulamadan önce son bir idempotent çekirdek katalog eşitlemesi gerçekleştirir. Bir paket, hedefte bulunmayan kuruluma özgü özel bir bloka veya slota başvuruyorsa, yönetici hatası eksik tanımlayıcıları tam olarak listeler.
Yönetici iş akışının artık birbiriyle ilişkili iki giriş noktası vardır:
Admin -> Sites, seçili site için bir modal açan, site adını ve tanıtıcısını (handle) gösteren ve paketi oluşturmadan önce medya dosyalarını dahil edebilen site başına birExportsatır eylemi içerir.Admin -> Maintenance -> Export / Import, aktarım geçmişi ve aktarım eylemleri için birleşik operasyon ekranıdır.Site ExportsveSite Importsbölümlerini, ilgili listeleme kartı başlıklarındakiRun ExportveRun Importeylemleriyle birlikte gösterir.- İçe aktarma inceleme ekranı, doğrulanmış paket eylemini durum ve manifest özetinin hemen altında tutar; ardından daha hızlı tarama için paket sayılarını kompakt bir tabloda gösterir.
- Yeni Composer tüketici kurulumları Dışa / İçe Aktarma ekranlarını paketin görünüm ad alanından işler; bu nedenle kök
resources/views/admin/site-transfers/*Blade dosyalarına ihtiyaç duymazlar.
Araçlar arasındaki ilişki:
- Sites satırındaki
Export, seçilen tek site için bir paket oluşturur ve başarı mesajıyla Sites listesine döner. Export / Import, paket geçmişini ve ana dışa veya içe aktarma operasyon ekranını yönetir.Sites -> Promote, bir dışa aktarma veya terfi paketini; kuru çalıştırma (dry run), strateji, güvenlik yedeği ve koruma kurallarıyla mevcut bir hedef siteye uygular.
Dışa / İçe Aktarma şu tür site kapsamlı içerikleri kapsar:
- site kaydı ve dil (locale) atamaları
site_variablesiçinde saklanan site değişkenleri- sayfalar ve sayfa çevirileri
page_assetsiçinde saklanan sayfa varlıkları- slotlar ve bloklar
- Ortak Slotlar ve Ortak Slot blok ağaçları
defaultvedocsgibi sayfa düzeyindeki Sayfa Yerleşimi ayarları (dahili olarak hâlâpublic_shellüzerinde saklanır)- blok çevirileri
- genel Kenar Çubuğu Gezinmesi işleyicileri tarafından kullanılan isteğe bağlı gezinme öğesi simge slug'ları dahil olmak üzere gezinme öğeleri
- isteğe bağlı medya dosyaları
Include media filesetkin olduğunda ve bu dosyalar mevcut olduğundapublic/site/{site_handle}/css/site.cssvepublic/site/{site_handle}/js/site.jskonumundaki kanonik site düzeyi genel geçersiz kılma dosyaları
Sayfa Varlıkları, site taşınabilirliğinde iki katman hâlinde taşınır:
page_assetssatırları site dışa ve içe aktarma yüklerine her zaman dahil edilir.Include media filesetkin olduğunda, başvurulan/site/...genel dosyaları da dışa aktarma arşivi altında paketlenir ve içe aktarmadapublic/site/...altına geri yüklenir.Include media filesdevre dışıyken sayfa varlığı meta verileri yine içe aktarılır; ancak başvurulan fiziksel dosyaların hedef kurulumda zaten mevcut olması gerekir.- Eksik sayfa varlığı dosyaları mevcut sürümde dışa aktarma sırasında raporlanır ve tüm paket derlemesini çökertmek yerine atlanır.
Site düzeyindeki genel geçersiz kılma varlıkları, Sayfa Varlıkları'ndan bilinçli olarak daha dardır: yalnızca kaynak site tanıtıcısı altındaki css/site.css ve js/site.js dahil edilir ve içe aktarma bunları nihai hedef site tanıtıcısı altında geri yükler. Rastgele public/site/... ağaçları, CMS çekirdek varlıkları ve public/storage bu yolun parçası değildir.
Ortak Slotlar birinci sınıf site içeriği olarak dışa ve içe aktarılır:
- Tanıtıcı, ad, slot uyumluluğu, kabuk (shell) uyumluluğu ve etkinlik durumu gibi Ortak Slot meta verileri pakete dahildir.
- Ortak Slotlar ayrıca isteğe bağlı bir Sayfa Yerleşimi uyumluluk kısıtı taşıyabilir. Saklanan alan geriye dönük uyumluluk için
public_shellolarak kalır; boş değer genel anlamına gelmeye devam eder ve boş olmayan değerler yine tam Sayfa Yerleşimi tanıtıcı eşleşmesi gerektirir. - Ortak Slot blok ağaçları, iç içe sıralama, çeviriler ve medya başvuruları, normal sayfalar için kullanılan aynı blok ve medya paketleme hattından geçer.
shared_slotkullanan sayfa slotları kararlı bir Ortak Slot tanıtıcı başvurusu dışa aktarır ve içe aktarma sırasında hedef sitenin içe aktarılmış Ortak Slotuna yeniden eşlenir.- Sayfa yükleri her sayfanın Sayfa Yerleşimini korur; böylece docs kabuklu sayfalar içe aktarmadan sonra uyumlu docs Ortak Slot atamalarını sürdürür.
- Kurulum düzeyindeki Sayfa Yerleşimi tanımları ve Sayfa Yerleşimi Slot tanımlarının kendisi V1'de site dışa/içe aktarmanın parçası değildir.
- Özel sayfa
public_shelltanıtıcıları yine sayfa yüküyle birlikte aktarılır; bu nedenle özel yerleşimlere dayanan hedef kurulumlar eşleşen Sayfa Yerleşimi tanıtıcıları sağlamalıdır. - Eşleşen bir Sayfa Yerleşimi tanıtıcısı hedef kurulumda yoksa, genel işleme güvenli biçimde geri düşer.
- Gizli Ortak Slot kaynak sayfaları pakette dahili tutulur ve sıradan kullanıcıya dönük sayfalar gibi ele alınmaz.
- Ortak Slot revizyon geçmişi, mevcut sayfa revizyonu taşınabilirlik sınırıyla uyumlu olarak dışa/içe aktarmanın dışında tutulur.
Site Değişkenleri de taşınabilir site içeriğidir:
site_variablessatırları site paketiyle birlikte dışa ve içe aktarılır.- Değişken anahtarları, etiketler, değerler, sıralama düzeni ve etkinlik durumu korunur.
- Dışa veya içe aktarma sırasında genel jeton (token) davranışı değerlendirilmez; ham değerler saklandığı gibi aktarılır.
Kullanıcılar, yedekler, güncelleme geçmişi, oturumlar veya iletişim gönderimleri gibi kurulum genelindeki çalışma zamanı verilerini içermez.
Türetilmiş genel arama dizinini de taşınabilir içerik olarak gerektirmez:
public_search_indexçalışma zamanında türetilen veridir- dışa/içe aktarma yüklerinin siteyi yeniden oluşturmak için arama satırlarına ihtiyacı yoktur
- içe aktarmadan sonra hemen güncel arama satırlarına ihtiyaç duyduğunuzda
php artisan search:rebuildkomutunu kullanın
Tek Sayfa JSON İçe Aktarma
Tek Sayfa JSON İçe Aktarma, bir JSON dosyasından tek bir yeni sayfa oluşturmaya yönelik sayfa kapsamlı yönetici iş akışıdır.
- yönetici yolu:
Admin -> Pages -> Import Page - kapsam: seçilen tek sitede tek bir yeni sayfa
- şema:
webblocks.cms.page.v1 - sonuç: V1'de her zaman yeni bir taslak sayfa oluşturur
- V1'de mevcut bir sayfayı güncellemez
- kaynak sayfa revizyon geçmişini içe aktarmaz
- site düzeyindeki
Export / Importiş akışının yerini almaz
V1'in içe aktardıkları:
- sayfa düzeyindeki Sayfa Yerleşimi dahil, taslak oluşturma için gereken sayfa çekirdek alanları
- hedef sitede etkin diller (locale) için dil koduyla anahtarlanmış sayfa çevirileri
- uyumlu aynı site Ortak Slot tanıtıcısıyla yapılan
shared_slotbaşvuruları dahil sayfa slotları - iç içe üst-alt sıralamasıyla sayfaya ait blok ağaçları
- çevrilen blok aileleri için desteklenen blok çevirisi satırları
- geçerli yerel
/site/...CSS ve JS yolları için sayfa varlığı meta verileri
V1 kısıtları:
- hedef sitedeki çevrilmiş yol çakışmaları, yazma işlemlerinden önce içe aktarmayı engeller
- Ortak Slot başvuruları hedef sitede zaten mevcut olmalı ve site, etkinlik durumu, kabuk ve slot adı bakımından uyumlu olmalıdır
- içe aktarıcı Ortak Slotları otomatik olarak oluşturmaz
- desteklenmeyen şema değerleri açıkça reddedilir
- içe aktarıcı işlemseldir (transactional) ve doğrulama başarısız olduğunda geride yarım kalmış sayfa bırakmaz
Örnek yük için docs/examples/page-import-v1.json dosyasına bakın.
Site Terfisi
Site Terfisi, bir kaynak paketteki siteye ait içeriği mevcut bir hedef siteye terfi ettirmeye yönelik paket tabanlı iş akışıdır.
Şu durumlarda kullanın:
- hedef site zaten mevcut olduğunda
- siteye ait içeriğin bu siteye denetimli biçimde terfi ettirilmesi gerektiğinde
- kurulum düzeyindeki, ortama özgü ve canlı çalışma zamanı verilerinin korunması gerektiğinde
Diğer araçlardan farkları:
- Dışa / İçe Aktarma, site aktarım paketleri oluşturur veya yönetir ve varsayılan olarak bir paketten yeni bir yerel site oluşturur
- Site Terfisi, paket içeriğini mevcut bir hedef siteye uygular
- Site Klonlama, siteye ait içeriği paket olmadan mevcut kurulum içinde çoğaltır
- Yedekleme / Geri Yükleme ortam kurtarma aracıdır ve mevcut veritabanını veya yüklemeleri değiştirebilir
- Güncellemeler siteye ait içeriği değil, CMS ürün kodunu ve kurulu sürümü değiştirir
V1 iş akışı:
- yönetici yolu:
Admin -> Sites -> Promote - komutlar:
site-promotion:inspect,site-promotion:dry-run,site-promotion:apply - uygulamadan önce kuru çalıştırma (dry run) zorunludur
- uygulama önce normal bir güvenlik yedeği oluşturur
- uygulama başarıdan sonra hedef sitenin türetilmiş arama satırlarını yeniden oluşturur
Korunan alanlar şunları içerir:
- kullanıcılar ve roller
- oturumlar, önbellek, işler ve kuyruklar
- yedekler ve güncelleme geçmişi
- ziyaretçi raporları ve iletişim gönderimleri
- canlı alan adları ve site alan adı kayıtları
- ortam yapılandırması, kurulum gizli anahtarları ve dahili jetonlar
- türetilmiş
public_search_indexsatırları
Desteklenen stratejiler:
additive_update: eksik kaynak içeriğini oluşturur ve fazladan hedef içeriğini kaldırmadan eşleşen hedef içeriğini güncellermirror: eşleşen kaynak içeriğini oluşturur ve günceller; ardından V1'de güvenli olduğu yerlerde, kaynakta bulunmayan hedef siteye ait içeriği arşivler, devre dışı bırakır veya kaldırır
Proje İçe Aktarmaları
Kuruluma özgü geçiş ve web sitesi içe aktarma iş akışları CMS çekirdeğine değil, project/ dizinine aittir.
Arama Dizini
Arama V1, türetilmiş genel arama dizini için kurulum düzeyinde bir operasyon ekranı ve komut ekler.
- yönetici ekranı:
Admin -> Maintenance -> Search Rebuild - yeniden oluşturma komutu:
php artisan search:rebuild
Arama Yeniden Oluşturma ekranı, yayında olan sayfalar için türetilmiş genel arama dizini kapsamını site ve dile göre inceler ve türetilmiş satırların yenilenmesi gerektiğinde dizini güvenle yeniden oluşturabilir.
Desteklenen yeniden oluşturma kapsamları:
- kurulumun tamamı
--site=ile tek bir site--locale=ile tek bir dil--page=ile tek bir sayfa
Arama yeniden oluşturma yıkıcı değildir:
- yalnızca istenen kapsam içindeki türetilmiş satırları siler ve yeniden oluşturur
- sayfa, blok, çeviri, Ortak Slot veya medya içeriğini değiştirmez
- yıkıcı veritabanı sıfırlama komutları gerektirmez
Sistem Ayarları
Sistem Ayarları, kompakt kurulum düzeyi yapılandırma ekranıdır. Düzenlenebilir gruplar, kendi kaydetme eylemlerine sahip ayrı odaklı kartlara bölünmüştür; Çalışma Zamanı Bilgileri salt okunurdur.
Şunları barındırır:
- yalnızca yöneticiye yönelik kurulum bağlamı için Proje Adı ve Proje Sloganı
- varsayılan dil (locale)
- saat dilimi
- sayfalandırılmış yönetici listeleme ekranları için sayfa başına yönetici listeleme satır sayısı
- CMS'ye ait bildirimler için CMS Posta modu ve özel posta ayarları
- çerez veya gizlilik banner'ı ayarları
- ürün sürüm bilgileri
- ortam bilgileri
Şunları denetlemez:
- sabit WebBlocks CMS yönetici marka etiketleri
- genel site markalaması
- genel site SEO varsayılanları
- genel favicon, genel arama kapsamı veya sayfa çevirisi SEO'su
- ana bilgisayar/kök kimlik doğrulama postası veya site iletişim formu yönlendirmesi
.envdosyası içerikleri veya ortam değişkenleri
Proje Kimliği, yönetici üst çubuğunda ve tarayıcı başlığında bir CMS kurulumunu diğerinden ayırt etmeye yardımcı olur. Bu kamuya dönük değerler yine her Site'de veya sayfa çevirisinde tutulur.
Admin listing rows per page varsayılan olarak 15 değerindedir, 10 veya 12 gibi özel sayısal değerleri kabul eder ve yalnızca sayfalandırılmış yönetici listeleme ekranlarının kullandığı varsayılan satır sayısını değiştirir. Genel sayfalandırmayı etkilemez.
CMS Posta, varsayılan olarak Laravel ortam posta yapılandırmasını kullanır. Mod CMS özel ayarlarına değiştirildiğinde, CMS'ye ait parola sıfırlama e-postaları ve gelecekteki CMS'ye ait sistem bildirimleri, kapsamı sınırlanmış bir CMS postacısı aracılığıyla veritabanı destekli CMS posta ayarlarını kullanır. Özel posta alanları yalnızca CMS özel posta modu seçildiğinde gösterilir. Özel CMS posta ayarları .env dosyasının üzerine yazmaz; özel CMS postası devre dışı bırakıldığında CMS postası mevcut Laravel MAIL_* yapılandırmasına geri döner. Saklanan posta gizli anahtarları asla düz metin olarak gösterilmez, boş gizli anahtar güncellemeleri mevcut saklanan değeri korur ve tanılama, hassas alanları yalnızca yapılandırılmış veya yapılandırılmamış olarak raporlar. Özel SMTP tanılaması artık gerekli gönderim ayarları eksik veya geçersiz olduğunda uyarır ve parola sıfırlama postası gönderim hataları, yalnızca gizli anahtar içermeyen teknik bağlamı günlüğe kaydederken denetimli bir CMS posta hatası döndürür. Tanılama tablosu; gizli anahtarları, sıfırlama jetonlarını veya ham yapılandırma dökümlerini içermeden, CMS'ye ait parola sıfırlama postasıyla aynı CMS posta çözümleyici yolu üzerinden basit bir CMS sistem mesajı gönderen süper yöneticiye özel bir Send Test Email eylemi içerir.
Site Klonlama
Site Klonlama, siteye ait içeriği aynı kurulum içindeki bir siteden başka bir siteye çoğaltır.
Şu durumlarda Site Klonlama'yı kullanın:
- mevcut kurulum içinde ikinci bir siteye ihtiyaç duyduğunuzda
- önce bir dışa aktarma paketi oluşturmadan sayfa, slot, blok, gezinme ve dil yapısını çoğaltmak istediğinizde
- Ortak Slotların ve Ortak Slot destekli sayfa slot atamalarının klonlanan siteyle birlikte taşınmasını istediğinizde
Site Klonlama, Dışa / İçe Aktarma'dan farklıdır:
- Site Klonlama mevcut kurulum içinde çalışır
- Dışa / İçe Aktarma, bir site paketini kurulumlar arasında taşımak içindir
- Hem Site Klonlama hem de Dışa / İçe Aktarma; Ortak Slotları, Ortak Slot blok ağaçlarını, çevirileri, medya başvurularını ve sayfa düzeyindeki Sayfa Yerleşimi ayarlarını içerir ve siteler arası başvurular bırakmak yerine tüketen sayfa slotlarını hedef sitedeki Ortak Slotlara yeniden eşler
- Hem Site Klonlama hem de Dışa / İçe Aktarma, site kapsamlı
site_variablessatırlarını da içerir. - Ortak Slot revizyon geçmişi, mevcut sayfa revizyonu klonlama sınırıyla uyumlu olarak klonlanmaz.
Hangi Aracı Ne Zaman Kullanmalı
Şu Durumlarda Revizyonları Kullanın
- tek bir sayfanın geri yüklenmesi gerektiğinde
- mevcut kurulum içinde editoryal kurtarmaya ihtiyaç duyduğunuzda
Şu Durumlarda Yedekleme / Geri Yükleme Kullanın
- ortamın kurtarılması gerektiğinde
- veritabanının veya yüklemelerin birlikte geri alınması gerektiğinde
Şu Durumlarda Dışa / İçe Aktarma Kullanın
- bir sitenin başka bir kuruluma taşınması gerektiğinde
- tek bir site için taşınabilir bir pakete ihtiyaç duyduğunuzda
Şu Durumlarda Site Klonlama Kullanın
- bir siteyi aynı kurulum içinde başka bir siteye çoğaltmanız gerektiğinde
- çalışmayı mevcut ortam içinde tutmak istediğinizde
Şu Durumlarda Sistem Güncellemelerini Kullanın
- yayımlanmış bir CMS sürümünü mevcut kuruluma uygularken
Kurulum Düzeyi ile Site Düzeyi Sınırları
- Güncellemeler, yedekler, geri yükleme ve site aktarım araçları kurulum düzeyi özelliklerdir
- sayfalar, medya, gezinme ve editoryal iş akışı öncelikle site kapsamlı içerik özellikleridir
- bazı roller atanan sitelerle sınırlandırılmış olsa bile kullanıcılar kurulum düzeyi hesaplardır
- sürüm paketleme ile kurulu yolların korunması ayrı konulardır: sürümler
project/dizinini içermez, ancak kuruluproject/içeriği güncellemeler boyunca korunur