Kurulum

Genel Bakış

WebBlocks CMS, yeni Laravel uygulamaları için paket tüketicisi kurulum akışını, yeni bakım deposu kurulumları için tarayıcı tabanlı bir kurulum sihirbazını ve elle Laravel CLI kurulum yolunu destekler.

Sıfırdan bir kurulum için önce WebBlocks CMS kaynak kodunu makinenize alarak başlayın. Composer'ı çalıştırmayı, .env oluşturmayı, Artisan kullanmayı ve tarayıcı kurulum sihirbazını açmayı, ancak kaynak kodu yerelde mevcut olduktan sonra yapın.

Uygulamada çalışan bir CMS temeli olduğunda kurulum tamamlanmış sayılır:

  • bir uygulama anahtarı mevcut
  • veritabanına erişilebiliyor
  • gerekli tablolar mevcut
  • çekirdek başlangıç (seed) verisi mevcut
  • ilk aktif super_admin mevcut
  • system_settings içinde kurulum tamamlanma işareti kayıtlı

Kaynak Kodu Edinin

Herhangi bir kurulum komutu çalıştırmadan önce WebBlocks CMS deposunun yerelde mevcut olduğundan emin olun.

Yeni bir dizine klonlayın:

git clone https://github.com/fklavyenet/webblocks-cms.git
cd webblocks-cms
git remote set-url --push origin DISABLED

Zaten oluşturulmuş boş bir dizine klonlayın:

git clone https://github.com/fklavyenet/webblocks-cms.git .
git remote set-url --push origin DISABLED

Kaynak kodu yerelde mevcut olduktan sonra, aşağıdaki sıfırdan kurulum yollarından biriyle devam edin.

WebBlocks CMS kurulumları yalnızca güncelleme tüketicisidir. CMS güncellemelerini alabilir, çekebilir veya indirebilirler; ancak kanonik CMS üst deposuna asla commit veya etiket göndermemelidirler. Mevcut yerel kurulum klonları için, kurulum çalışma kopyasında bir kez git remote set-url --push origin DISABLED çalıştırın.

Paket Tüketicisi Kurulumu

WebBlocks CMS, Composer aracılığıyla yeni bir Laravel uygulamasına kurulduğunda bu akışı kullanın.

composer require fklavyenet/webblocks-cms
php artisan webblocks:install --name="Admin User" --email="admin@example.com" --password="secret-password"

Desteklenen seçenekler:

  • --name= ilk super admin görünen adı
  • --email= ilk super admin e-posta adresi
  • --password= ilk super admin parolası
  • --site-name= varsayılan site adı
  • --site-handle= varsayılan site tanıtıcısı
  • --repair-partial sıfırdan kurulum geçişlerinden önce boş kısmi CMS tablolarını yeniden adlandırır
  • --force gerektiğinde pakete ait CMS varlıklarının veya yayımlanmış yapılandırma dosyalarının üzerine yazar

webblocks:install şunları yapar:

  • ana uygulamada henüz yoksa config/webblocks-cms.php dosyasını yayımlar
  • güvenli olduğunda, önce zaman damgalı bir yedek alarak dokunulmamış yeni Laravel karşılama rotasını routes/web.php dosyasından kaldırır; böylece CMS herkese açık rotaları / adresine hizmet verebilir
  • app/Models/User.php dosyasına WebBlocks\Cms\Auth\Concerns\HasWebBlocksCmsAccess yamasını uygular
  • User.php dosyasını değiştirmeden önce zaman damgalı bir yedek oluşturur
  • trait zaten mevcutsa yamayı atlar
  • User.php tanınabilir bir App\Models\User extends Authenticatable sınıfı değilse açık bir hatayla durur
  • temiz tüketici kurulumları için paketin sıfırdan kurulum geçiş yolunu çalıştırır
  • sıfırdan kurulum geçişlerini çalıştırmadan önce kısmi CMS şemalarını algılar ve mevcut CMS tablolarını, satır sayılarını, ilgili geçiş satırlarını ve bilinen yabancı anahtar çakışmalarını raporlar
  • boş kısmi CMS şemalarını yalnızca --repair-partial verildiğinde, boş CMS tablolarını devam etmeden önce zaman damgalı bir _before_cms_install_... son ekiyle yeniden adlandırarak onarır
  • herhangi bir kısmi CMS tablosunda satır varsa otomatik onarımı reddeder
  • CMS tabloları zaten mevcutsa bu taze şemayı yeniden çalıştırmayı atlar
  • ana uygulama geçişlerini çalıştırmadan Laravel destek tablolarını oluşturur; şu anda CMS parola sıfırlama belirteçleri ile birlikte, veritabanı destekli sürücüler yapılandırıldığında sessions, cache ve cache_locks tablolarını kapsar
  • paket kurulumunun bir parçası olarak ana uygulamanın normal Laravel geçiş kümesini çalıştırmaz, böylece zaten oluşturulmuş CMS uyumlu users tablosuyla çakışmaları önler
  • Yedekleme / Geri Yükleme tarafından kullanılan backups dosya sistemi diski kök dizinini hazırlar
  • pakete ait CMS varlıklarını public/cms içine kurar
  • eksikse ve ortam izin veriyorsa public/storage oluşturur
  • dilleri (locale), siteleri, slot türlerini, sayfa yerleşimlerini, simgeleri ve çekirdek blok türlerini idempotent şekilde tohumlar
  • kurulan sürümü ve kurulum tamamlanma işaretini system_settings içine kaydeder
  • ilk aktif super_admin hesabını yalnızca henüz mevcut değilse oluşturur

Paket kimlik doğrulaması Laravel'e özgüdür ve Breeze, Jetstream, Laravel UI veya Fortify gerektirmez. Kurulumdan sonra, CMS paketi kimlik doğrulama rotaları aktifken /webadmin/login adresinden oturum açın. CMS'ye ait kimlik doğrulama görünümleri ve yönetici misafir yönlendirmeleri, webblocks.auth.login ve webblocks.auth.logout gibi paket rota adlarını kullanır; böylece bir ana ürün, CMS form eylemlerini veya /webadmin yönlendirmelerini ele geçirmeden kendi genel login rotasını, örneğin /quiztem/login, koruyabilir.

Geçerli v1.32.x paket tüketicisi sınırında, ana uygulamanın App\Models\User sınıfı kimlik doğrulama modeli ve kurulum sırasındaki yama hedefi olmaya devam eder.

Kısmi Kurulum Kurtarma

webblocks:install, başarısız veya kesintiye uğramış önceki bir çalıştırmadan sonra durursa, önce onarımsız yeniden çalıştırın ve kısmi kurulum tanısını okuyun. Boş CMS tabloları açıkça kenara taşınabilir:

php artisan webblocks:install --repair-partial --name="Admin User" --email="admin@example.com" --password="secret-password"

Onarım modu yalnızca CMS'ye ait boş aday tabloları yeniden adlandırır. Tabloları silmez, boş olmayan tabloları otomatik olarak değiştirmez ve CMS'nin ana uygulamanın sahibi olduğunu varsaymaz.

Tarayıcı Kurulum Sihirbazı

Sıfırdan bir kurulum için tarayıcı sihirbazını kullanın.

Kaynak kodu yerelde mevcut olduktan sonra şununla başlayın:

composer install
cp .env.example .env
php artisan serve

Ardından http://127.0.0.1:8000/install adresini açın.

Sihirbaz şunları kapsar:

  • ortam hazırlık denetimleri
  • veritabanı yapılandırması ve bağlantı doğrulaması
  • çekirdek CMS kurulumu
  • ilk super_admin oluşturma
  • tamamlandıktan sonra kurulumun kilitlenmesi

Notlar:

  • kurulum sihirbazı sıfırdan kurulumlar içindir
  • kurulum tamamlanmadıysa sihirbaz güvenle yeniden açılabilir ve kaldığı yerden devam edebilir
  • tamamlandıktan sonra kurulum rotaları kilitlenir ve normal kimlik doğrulama/yönetim akışı devreye girer
  • kurulum sihirbazı seçilen veritabanı yapılandırmasını .env dosyasına yazar

Elle CLI Kurulumu

Sıfırdan bir kurulum için standart Laravel kurulum yolunu tercih ediyorsanız CLI akışını kullanın.

composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan db:seed
php artisan storage:link
php artisan serve

Notlar:

  • php artisan db:seed çekirdek CMS kataloglarını kurar ve sıfırdan bir kurulum için geçerli uygulama sürümünü kurulu sürüm olarak kaydeder
  • herkese açık dosya sunumu storage/app/public kullanacaksa php artisan storage:link gereklidir
  • storage/framework, storage/logs ve bootstrap/cache altındaki çalışma zamanı dizinleri ilk çalıştırmada otomatik olarak oluşturulur
  • Yedekleme / Geri Yükleme arşivleri backups dosya sistemi diskinde saklar; varsayılan konum storage/app/backups dizinidir. PHP çalışma zamanı kullanıcısı bu dizinin sahibi olmalı veya okuma/yazma erişimine sahip bir dağıtım grubunu paylaşmalıdır; geniş 777 modlarından kaçının.

Yerel (Native) Kurulum

Yerelde kurulu PHP ve Composer ile çalışan yeni bir Laravel projesi için:

composer require fklavyenet/webblocks-cms
php artisan webblocks:install --name="Admin User" --email="admin@example.com" --password="secret-password"

Ardından şunları açın:

  • herkese açık site: /
  • yönetici girişi: /webadmin/login
  • yönetim paneli: /webadmin

Kaynak kodu yerelde mevcut olduktan sonra:

composer install
cp .env.example .env
php artisan key:generate

Notlar:

  • güvenilen yerel geliştirme, .test alan adlarını ve HTTPS'i kullanmalıdır; kanonik CMS geliştirme URL'si https://webblocks-cms.test adresidir
  • php artisan serve hızlı, yalnızca CLI denetimleri için yararlı olmaya devam eder; ancak güvenilen tarayıcı iş akışları docs/native-local-development.md içinde belgelenen yerel Nginx/PHP-FPM kurulumunu kullanmalıdır
  • yerel iletişim formu e-posta bildirimleri yerel bir SMTP yakalayıcı veya güvenilen bir SMTP test hesabı kullanmalıdır; olağan yerel SMTP değerleri kurulu araca bağlıdır
  • İletişim Formu bildirim alıcıları şu sırayla çözümlenir: blok düzeyi recipient_email, geçerli sitenin varsayılan iletişim alıcısı, CONTACT_RECIPIENT_EMAIL, sonra son güvenli yedek olarak MAIL_FROM_ADDRESS
  • iletişim gönderimleri bildirim tesliminden bağımsız olarak saklanır; bu nedenle herkese açık bir Message sent yanıtı, yönetim paneli daha sonra bildirimi Failed, Skipped veya Not configured olarak gösterse bile saklama başarısını doğrular
  • MAIL_MAILER=log, MAIL_MAILER=array ve MAIL_MAILER=null gerçek dışa gönderim değildir ve İletişim Mesajı bildirimi için yapılandırılmamış olarak gösterilir
  • İletişim Formu blokları, inert, aria-hidden="true", işleyici tarafından üretilen bir form_check_{token} alanı, tabindex="-1" ve autocomplete="off" içeren CMS'ye ait gizli bir .wb-form-check sarmalayıcısı işler; bu üretilen denetim alanı doldurulduğunda sunucu aynı genel başarı yönlendirmesini döndürür ve İletişim Mesajı kaydetmez ya da bildirim denemez
  • üretilen denetim alanını geçen gönderimler yine de ticari erişim dili, bağlantı yoğunluğu, aynı IP'den tekrarlanan gönderimler veya genel bir konuya sahip ücretsiz e-posta satış mesajı gibi ihtiyatlı kayıtlı sinyallerle spam olarak sınıflandırılabilir; bu durum kalıcı bir yönetici sınıflandırmasıdır ve e-posta bildirim durumundan ayrıdır
  • bildirim teslimi başarısız olduğunda, yöneticiler kaydedilen mesajı Admin -> Contact Messages altında inceleyerek listedeki kompakt hata durumunu ve mesaj ayrıntı ekranındaki kayıtlı hata ayrıntısını görebilir

Ardından şunları açın:

  • herkese açık site: https://webblocks-cms.test
  • yönetim paneli: https://webblocks-cms.test/webadmin
  • sıfırdan kurulumda kurulum sihirbazı: https://webblocks-cms.test/install

Bu kurulum adımları tamamlandıktan sonra sıfırdan kurulumu tarayıcı sihirbazında tamamlayın.

Kurulum Sihirbazına Erişim

  • sıfırdan kurulumlar otomatik olarak /install adresine yönlendirilir
  • sihirbazı /install adresinden elle de açabilirsiniz
  • önceki gereksinimler zaten karşılanmışsa doğrudan çekirdek kurulum adımına atlamak için /install/core adresini açabilirsiniz
  • gereksinimler tamamlandıkça sihirbaz adımları otomatik olarak ilerletebilir
  • / ve /install adreslerini birden çok tarayıcı sekmesinde açmak farklı sihirbaz adımları gösterebilir; kurulum sihirbazı ilerlemeyi izleyip buna göre yönlendirdiği için bu beklenen bir durumdur

İlk Super Admin Oluşturma

Tamamlanmış bir kurulum için ilk super_admin gereklidir.

  • tarayıcı sihirbazında ilk yöneticiyi son kurulum adımında oluşturun
  • paket tüketicisi CLI akışında webblocks:install komutuna --name, --email ve --password seçeneklerini verin
  • elle kurulumda, CMS'yi tam kurulmuş saymadan önce en az bir aktif super_admin hesabının mevcut olduğundan emin olun

super_admin, Kullanıcılara, sitelere, dillere (locale), ayarlara, güncellemelere, yedeklemelere, dışa/içe aktarmaya ve tüm site içeriğine erişebilen kurulum düzeyindeki roldür.

Genel Kurulum Notları

  • kurulum sihirbazı tamamlandıktan sonra kilitlenir
  • /webadmin kanonik CMS yönetim giriş noktasıdır
  • paket tüketicisi kurulumları /webadmin/login üzerinden oturum açabilir; birlikte kurulmuş uygulamalar ana uygulamaya ait /login rotasını koruyabilir
  • /webadmin/dashboard, /webadmin adresine yönlendirir
  • CMS varlıkları /cms altında kalır, örneğin /cms/css, /cms/js ve /cms/brand
  • pakete ait /webadmin/login; paket Blade görünümlerini, WebBlocks UI misafir kimlik doğrulama kabuğunu, sabitlenmiş WebBlocks UI varlıklarını, /cms/css/guest.css dosyasını ve normal, koyu yüzey, vurgu üstü/ters ve yüksek karşıtlıklı favicon/tarayıcı sekmesi varyantları dahil /cms/brand altındaki CMS ürün marka varlıklarını kullanır
  • /cms, CMS'ye ait statik herkese açık varlıklar için ayrılmıştır ve CMS yönetim rotası öneki, takma adı veya yönlendirmesi olarak kullanılmamalıdır
  • /admin CMS'ye ait değildir ve CMS yönetim rotası olarak geri getirilmemelidir
  • yeni sayfalar draft durumunda başlar
  • revizyonlar, yedeklemeler veya güncellemeler gibi kurulum düzeyi özellikler eksik tablolar bildirirse php artisan migrate çalıştırın

/webadmin ile /cms ayrımı, Laravel bir rotayı işlemeden önce /cms/ adresinin fiziksel public/cms/ varlık dizini olarak çözümlenebildiği Nginx try_files çakışmasını önler. Yönetici erişimini bir public/cms/index.php devri ekleyerek çözmeyin; bu ön denetleyici köprüsü kök ve paket herkese açık varlıklarında bulunmamalıdır.

E-posta ve İletişim Formu Hazırlığı

Herkese açık bir iletişim sayfasını yayınlamadan önce Laravel posta gönderimini yapılandırın. Tipik bir SMTP .env kurulumu şöyle görünü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

MAIL_*, İletişim Formu bildirim denemeleri için Laravel posta gönderimini denetler. MAIL_FROM_ADDRESS güvenli yedek gönderen/kimden adresidir ve daha özel bir alıcı yapılandırılmadığında son güvenli İletişim Formu alıcı yedeğidir. CONTACT_RECIPIENT_EMAIL isteğe bağlıdır ve ortam düzeyinde bir yedek alıcı görevi görür. Mümkün olduğunda site düzeyindeki İletişim alıcısını Site -> Edit -> Contact altında yapılandırmayı tercih edin; böylece iletişim yönlendirmesi yalnızca .env içinde değil, siteyle birlikte yaşar.

Üretim veya paket kurulumu .env posta ayarlarını değiştirdikten sonra, kurulum yapılandırma önbelleği kullanıyorsa önbelleğe alınmış yapılandırmayı temizleyin:

php artisan optimize:clear

İletişim Formu bildirimleri alıcıları şu sırayla çözümler:

  1. İletişim Formu bloğu recipient_email
  2. Site -> Edit -> Contact altındaki site varsayılan iletişim alıcısı
  3. .env CONTACT_RECIPIENT_EMAIL
  4. güvenli MAIL_FROM_ADDRESS yedeği

Kabul edilen gerçek İletişim Formu gönderimleri, e-posta bildirimi denenmeden önce kaydedilir. Bildirim hatası, herkese açık form gönderiminin başarısız olduğu anlamına gelmez. Yöneticiler kaydedilen mesajlar, bildirim durumu ve güvenli hata ayrıntıları için /webadmin/contact-messages adresini kontrol etmelidir. Herkese açık ziyaretçiler yalnızca normal başarı veya doğrulama geri bildirimini görmeli, posta tanılamalarını görmemelidir.

Sent, CMS'nin bildirimi yapılandırılmış posta aktarımına istisnasız teslim ettiği anlamına gelir; gelen kutusuna teslimi garanti etmez. Skipped veya Not configured, gerçek bir bildirim gönderiminin denenmediği anlamına gelir.

İletişim sayfaları için yerleşik contact_form bloğunu kullanın. Onu Trusted HTML, ham <form> işaretlemesi veya mailto: yedekleriyle değiştirmeyin. CMS işleyicisi gizli istenmeyen posta denetim alanını otomatik olarak üretir; onu elle oluşturmayın. Eski website tuzak (honeypot) alanı artık herkese açık sözleşmenin parçası değildir.

Pratik İletişim Formu doğrulama testi:

  1. Yerleşik contact_form bloğunu içeren bir sayfayı yayınlayın veya önizleyin.
  2. Ad, e-posta, konu ve mesaj içeren bir test mesajı gönderin.
  3. /webadmin/contact-messages adresini açın.
  4. Mesajın kaydedildiğini doğrulayın.
  5. Bildirim durumunu gözden geçirin.
  6. E-posta ulaşmadıysa güvenli hata ayrıntılarını inceleyin ve posta tanılamalarını çalıştırın.

Tanılama komutları:

php artisan contact:mail-diagnose
php artisan contact:mail-diagnose --block=ID
php artisan contact:mail-diagnose --send-test=you@example.com

Tanılama komutu parolaları, belirteçleri veya posta gizli bilgilerini yazdırmamalıdır. Tek bir İletişim Formu bloğunun alıcı yedek zincirini incelemek için --block=ID kullanın. --send-test= seçeneğini yalnızca kasıtlı bir test adresine kontrollü bir SMTP gönderim denetimi için kullanın.

Kurulum Sonrası Adımlar

  1. /webadmin adresinde oturum açın.
  2. Site ve dil (locale) yapılandırmanızı gözden geçirin.
  3. Site kimliğini ve alan adlarını yapılandırın.
  4. Laravel posta ayarlarını veya onaylı sistem posta ayarlarını yapılandırın.
  5. Bir İletişim Formu alıcısını, tercihen Site -> Edit -> Contact üzerinde yapılandırın.
  6. php artisan contact:mail-diagnose komutunu çalıştırın.
  7. Yerleşik bir test İletişim Formu gönderin ve bir İletişim Mesajı kaydettiğini doğrulayın.
  8. Bu test mesajı için e-posta bildirim durumunu gözden geçirin.
  9. İlk sayfanızı oluşturun.
  10. Medya, gezinme ve bloklar ekleyin.
  11. İçeriği editoryal iş akışı üzerinden yayınlayın.