Laravel Forge je odlično orodje, vendar ni obvezno. 15–39 € na mesec + cena strežnika + dodatna skladnost, če potrebujete spletno mesto v EU – stroški se lahko hitro kopičijo. Poleg tega vas Forge zaveže k svojemu delovnemu toku. Za večino projektov Laravel to ni potrebno – namestitev Git-a na cPanel z nekaj bash skriptami da enak rezultat, brez ponavljajočih se stroškov in brez vezave na prodajalca.
Ta vodnik zajema celoten postopek uvajanja aplikacije Laravel na gostovanju cPanel (kot so WMD), brez Forge – od nastavitve repozitorija Git, preverjanj pred uvedbo do migracij po uvedbi in ponovnih zagonov čakalne vrste.
Kaj potrebuje tipična namestitev Laravela
- Git potegne najnovejšo kodo iz glavne/produkcijske veje
- Namestitev Composerja (brez razvojnih odvisnosti)
- Namestitev in izdelava NPM (če so na voljo sredstva na strani frontenda)
- Migracije baz podatkov (
php artisan migrate --force) - Počisti + obnovi predpomnilnik (konfiguracija, pot, pogled)
- Ponovni zagon delavca čakalne vrste (
php artisan queue:restart) - Neobvezno: vzdrževalni način med uvajanjem
- Pregled stanja po namestitvi
Forge to počne prek svojega uporabniškega vmesnika. Mi to počnemo prek nadzora različic Git v cPanelu in preprostega skripta deploy.sh .
Nastavitev – korak za korakom
1. Pripravite projekt Laravel
Lokalna razvojna nastavitev:
laravel new mojaapp cd mojaapp git init git add . git commit -m "initial" git remote add origin git@github.com:user/mojaapp.git git push -u origin main V .gitignore dodajte/preverite:
/vendor /node_modules /public/build .env .phpunit.result.cache storage/*.key storage/logs/* storage/framework/cache/data/* storage/framework/sessions/* storage/framework/views/*2. cPanel – nastavite nadzor različic Gita
- V nadzorni plošči cPanel odprite nadzor različic Git .
- Kliknite Ustvari .
- Kloniraj URL: tvoj SSH URL za GitHub/GitLab.
- Pot do repozitorija:
/home/user/laravel-app(NE vpublic_html!). - Podružnica:
main. - Ime repozitorija:
mojaapp. - Kliknite Ustvari .
Prepričajte se, da lahko Git vleče podatke iz vašega repozitorija (v nastavitvah repozitorija GitHub namestite ključ SSH).
3. Simbolična povezava javne mape
Laravelova mapa public/ mora biti dostopna prek spleta. Standardni cPanel streže iz ~/public_html . Dva pristopa:
Možnost A – simbolna povezava (priporočeno)
cd ~ rm -rf public_html ln -s /home/user/laravel-app/public public_htmlMožnost B – dodatna domena
Nastavite posebno poddomeno (npr. app.tvojsajt.hr ), ki kaže na laravel-app/public . Uporabno, če na istem paketu gostovanja izvajate več aplikacij.
4. Na strežniku nastavite .env
Datoteke .env ne pošljete v Git. Na strežniku:
cd ~/laravel-app cp .env.example .env nano .env # Setiraj APP_ENV=production, APP_DEBUG=false, DB credentials, MAIL, REDIS_HOST php artisan key:generateGesla in skrivnosti nikoli ne gredo v repozitorij.
5. Začetni sestavljalec + migracija
cd ~/laravel-app composer install --optimize-autoloader --no-dev php artisan migrate --force php artisan storage:link chmod -R 775 storage bootstrap/cache Skript za namestitev — deploy.sh
To je srce cevovoda. Shranite ga kot ~/laravel-app/.cpanel.yml (cPanel ga samodejno zažene po prenosu podatkov iz Gita):
--- deployment: tasks: - export DEPLOYPATH=/home/user/laravel-app/ - cd $DEPLOYPATH - /bin/php artisan down --retry=15 - /bin/composer install --optimize-autoloader --no-dev - /bin/php artisan migrate --force - /bin/php artisan config:cache - /bin/php artisan route:cache - /bin/php artisan view:cache - /bin/php artisan event:cache - /bin/php artisan queue:restart - /bin/php artisan upVrste napak:
- Pot do
phpincomposerse lahko na različnih gostiteljih razlikuje – preverite prekwhich phpinwhich composer. - Če nimate Composerja nameščenega globalno, ga namestite lokalno v domači mapi:
cd ~ curl -sS https://getcomposer.org/installer || php mv composer.phar ~/bin/composer chmod +x ~/bin/composer
Delovni tok – kako uvajanje deluje v praksi
- Delate lokalno na
mainveji (ali funkciji → PR → glavni). -
git push origin main. - V nadzoru različic Git v cPanelu kliknite Upravljanje v repozitoriju, nato zavihek Potegni ali uvedi , nato Posodobi z oddaljenega strežnika in Uvedi HEAD Commit .
- cPanel potegne najnovejšo kodo, izvede
.cpanel.ymlin dnevnik vidite v živo. - V 30 sekundah - 2 minutah je namestitev končana in aplikacija je zagnana.
Avtomatizirate lahko tudi prek spletnega kavlja (GitHub → URL spletnega kavlja cPanel med objavo), vendar je za manjše aplikacije ročna namestitev zadostna in varnejša.
Delavec v čakalni vrsti — alternativa nadzorniku
Forge uporablja Supervisor za upravljanje delavcev čakalnih vrst. Na gostovanju cPanel lahko:
Možnost A – Cron opravila cPanel
# Restart queue worker svakih 5 min ako padne */5 * * * * cd /home/user/laravel-app && /bin/php artisan queue:work --tries=3 --max-time=300 > /dev/null 2>&1Delavec se sam zažene, deluje 5 minut, se zapre, cron ga ponovno zažene. Preprosto, robustno, nadzornik ni potreben.
Možnost B – Nadzornik (če ponudnik to podpira)
Večina ponudnikov gostovanja cPanel v skupni rabi ne ponuja nadzornika, če pa imate VPS, običajno:
[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /home/user/laravel-app/artisan queue:work --sleep=3 --tries=3 autostart=true autorestart=true user=user numprocs=4Razporejevalnik — Laravel cron
Laravel Scheduler potrebuje glavni vnos v cron:
* * * * * cd /home/user/laravel-app && /bin/php artisan schedule:run >> /dev/null 2>&1 V cPanel Cron Jobs to nastavite. Nato v app/Console/Kernel.php definirajte vsa načrtovana opravila (dnevna, urna itd.) – Laravel jih bo sam usmeril.
SSL — Šifrirajmo samodejno
cPanel ima AutoSSL. Pri ustvarjanju domene/poddomene se SSL samodejno izda v nekaj minutah. Preverite ga v razdelku »SSL/TLS Status« v cPanelu.
V nastavitvi .env :
APP_URL=https://tvojsajt.hr In vsili HTTPS v AppServiceProvider::boot() :
if (config('app.env') === 'production') { URL::forceScheme('https'); }Optimizacija – kar Forge počne ročno
- OPcache — preverite, ali je omogočen v php.ini (na WMD je privzeto omogočen).
- config:cache + route:cache + view:cache — so že v nalogi uvajanja
.cpanel.yml. - composer dump-autoload -o — optimiziran samodejni nalagalnik, že prek zastavice
--optimize-autoloader. - Združenje povezav z zbirko podatkov – če potrebujete zmogljivost, uporabite trajne povezave v
config/database.php.
Spremljanje in dnevniki
- Laravel dnevniki :
storage/logs/laravel.log(ali dnevni dnevniki po datumu). - Dnevniki dostopa/napak cPanela :
~/logs/ali prek Napak v cPanelu. - Sentry, Bugsnag, Flare – integracija za zunanje sledenje napakam.
- Teleskop (razvoj) – zmogljiv za odpravljanje napak.
Strategija varnostnega kopiranja
- JetBackup (na WMD) — samodejno dnevno shranjevanje celotnega računa.
- Varnostno kopiranje baze podatkov dodatno:
mysqldumpprek crona ali Laravel paket spatie/laravel-backup . - Shranjevanje (nalaganja uporabnikov) — varnostno kopiranje v shrambo, združljivo s S3 (Bunny, Wasabi), prek gonilnika datotečnega sistema Laravel.
Strategija povrnitve
Če namestitev prekine delovanje aplikacije:
- Vrnitev Gita v produkcijsko stanje:
cd ~/laravel-app git revert HEAD git push origin main # Onda redeploy kroz cPanel UI - Obnovitev baze podatkov JetBackup – obnovi stanje baze podatkov pred namestitvijo.
- Vzdrževalni način medtem:
php artisan down.
Kaj pristop WMD ponuja za Laravel
- PHP 5.6–8.3, nameščen Composer, na voljo NPM/Node
- Prednastavljen nadzor različic Git v cPanelu
- Na voljo SSH + WP-CLI + umetniški jezik
- Redis + Memcached za čakalno vrsto, predpomnilnik in seje
- MariaDB 10.6+ za podatkovno bazo
- Samodejno šifrirajmo SSL
- Hramba JetBackupa 14–30 dni
- Uporabniški vmesnik Cron Jobs za razporejevalnik in delavca čakalne vrste
- Podpora, ki pozna Laravel – pomagamo pri nastavitvi in odpravljanju napak
Pogosto zastavljena vprašanja
Ali potrebujem VPS za Laravel ali popolnoma upravljano deljeno gostovanje?
Majhni Laravel projekti (nizek promet, <100 tisoč zahtev/dan) – zadostuje deljeno upravljanje z NVMe in Redis. Večji (SaaS, B2C platforma) – namenski VPS, boljši za izolacijo in nadzor virov.
Ali lahko hkrati uporabljam Forge in cPanel?
Tehnično gledano da, vendar nepotrebno. Forge upravlja VPS neposredno, cPanel ima svoje upravljanje. Ali Forge ali cPanel, ne oboje.
Kaj pa uvajanje brez izpadov?
Za to potrebujete modro-zeleno namestitev (paket Envoyer, Deployer). Standardna namestitev Git pull deploy ima ~10-30 sekund nedelovanja med composer install in php artisan migrate . Za večino aplikacij je sprejemljivo.
Kaj pa, če potrebujem delavca v čakalni vrsti, ki se vrti ure in ure?
Dolgotrajni delavec v cronu + --max-time=3600 . Ali pa uporabite --daemon mode + Supervisor (na VPS).