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_adminmevcut system_settingsiç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-partialsıfırdan kurulum geçişlerinden önce boş kısmi CMS tablolarını yeniden adlandırır--forcegerektiğ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.phpdosyasını yayımlar - güvenli olduğunda, önce zaman damgalı bir yedek alarak dokunulmamış yeni Laravel karşılama rotasını
routes/web.phpdosyasından kaldırır; böylece CMS herkese açık rotaları/adresine hizmet verebilir app/Models/User.phpdosyasınaWebBlocks\Cms\Auth\Concerns\HasWebBlocksCmsAccessyamasını uygularUser.phpdosyasını değiştirmeden önce zaman damgalı bir yedek oluşturur- trait zaten mevcutsa yamayı atlar
User.phptanınabilir birApp\Models\User extends Authenticatablesı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-partialverildiğ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,cachevecache_lockstabloları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
userstablosuyla çakışmaları önler - Yedekleme / Geri Yükleme tarafından kullanılan
backupsdosya sistemi diski kök dizinini hazırlar - pakete ait CMS varlıklarını
public/cmsiçine kurar - eksikse ve ortam izin veriyorsa
public/storageoluş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_settingsiçine kaydeder - ilk aktif
super_adminhesabı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_adminoluş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ı
.envdosyası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/publickullanacaksaphp artisan storage:linkgereklidir storage/framework,storage/logsvebootstrap/cachealtındaki çalışma zamanı dizinleri ilk çalıştırmada otomatik olarak oluşturulur- Yedekleme / Geri Yükleme arşivleri
backupsdosya sistemi diskinde saklar; varsayılan konumstorage/app/backupsdizinidir. 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ş777modları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,
.testalan adlarını ve HTTPS'i kullanmalıdır; kanonik CMS geliştirme URL'sihttps://webblocks-cms.testadresidir php artisan servehızlı, yalnızca CLI denetimleri için yararlı olmaya devam eder; ancak güvenilen tarayıcı iş akışlarıdocs/native-local-development.mdiç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 olarakMAIL_FROM_ADDRESS - iletişim gönderimleri bildirim tesliminden bağımsız olarak saklanır; bu nedenle herkese açık bir
Message sentyanıtı, yönetim paneli daha sonra bildirimiFailed,SkippedveyaNot configuredolarak gösterse bile saklama başarısını doğrular MAIL_MAILER=log,MAIL_MAILER=arrayveMAIL_MAILER=nullgerç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 birform_check_{token}alanı,tabindex="-1"veautocomplete="off"içeren CMS'ye ait gizli bir.wb-form-checksarmalayı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
spamolarak 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 Messagesaltı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
/installadresine yönlendirilir - sihirbazı
/installadresinden elle de açabilirsiniz - önceki gereksinimler zaten karşılanmışsa doğrudan çekirdek kurulum adımına atlamak için
/install/coreadresini açabilirsiniz - gereksinimler tamamlandıkça sihirbaz adımları otomatik olarak ilerletebilir
/ve/installadreslerini 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:installkomutuna--name,--emailve--passwordseçeneklerini verin - elle kurulumda, CMS'yi tam kurulmuş saymadan önce en az bir aktif
super_adminhesabı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
/webadminkanonik CMS yönetim giriş noktasıdır- paket tüketicisi kurulumları
/webadmin/loginüzerinden oturum açabilir; birlikte kurulmuş uygulamalar ana uygulamaya ait/loginrotasını koruyabilir /webadmin/dashboard,/webadminadresine yönlendirir- CMS varlıkları
/cmsaltında kalır, örneğin/cms/css,/cms/jsve/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.cssdosyasını ve normal, koyu yüzey, vurgu üstü/ters ve yüksek karşıtlıklı favicon/tarayıcı sekmesi varyantları dahil/cms/brandaltı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/adminCMS'ye ait değildir ve CMS yönetim rotası olarak geri getirilmemelidir- yeni sayfalar
draftdurumunda 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:
- İletişim Formu bloğu
recipient_email Site -> Edit -> Contactaltındaki site varsayılan iletişim alıcısı.envCONTACT_RECIPIENT_EMAIL- güvenli
MAIL_FROM_ADDRESSyedeğ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:
- Yerleşik
contact_formbloğunu içeren bir sayfayı yayınlayın veya önizleyin. - Ad, e-posta, konu ve mesaj içeren bir test mesajı gönderin.
/webadmin/contact-messagesadresini açın.- Mesajın kaydedildiğini doğrulayın.
- Bildirim durumunu gözden geçirin.
- 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
/webadminadresinde oturum açın.- Site ve dil (locale) yapılandırmanızı gözden geçirin.
- Site kimliğini ve alan adlarını yapılandırın.
- Laravel posta ayarlarını veya onaylı sistem posta ayarlarını yapılandırın.
- Bir İletişim Formu alıcısını, tercihen
Site -> Edit -> Contactüzerinde yapılandırın. php artisan contact:mail-diagnosekomutunu çalıştırın.- Yerleşik bir test İletişim Formu gönderin ve bir İletişim Mesajı kaydettiğini doğrulayın.
- Bu test mesajı için e-posta bildirim durumunu gözden geçirin.
- İlk sayfanızı oluşturun.
- Medya, gezinme ve bloklar ekleyin.
- İçeriği editoryal iş akışı üzerinden yayınlayın.