Nasazení Laravel aplikace přes SSH krok za krokem
Nasazení Laravel aplikace
Tento návod popisuje ruční nasazení Laravel aplikace přes SSH. Pokud vám stačí nasazení z prohlížeče bez vlastního SSH klienta, podívejte se na záložku Nasazení a Rychlé akce – klonování, pull i běžné artisan příkazy zvládnete přímo v panelu.
Předpoklady
- Hosting se zapnutým SSH přístupem
- Git repozitář s Laravel aplikací (veřejný, nebo soukromý s přidaným deploy klíčem)
- Databáze vytvořená ve Správě databází v panelu
Krok 1: Připojte se přes SSH
Přihlašovací údaje a připravený příkaz pro připojení najdete v panelu u hostingu na záložce Služby v panelu Přístup SSH (jméno, heslo, host i port).
ssh vas_uzivatel@host -p PORT
Krok 2: Přidejte deploy klíč (soukromý repozitář)
Pokud je repozitář soukromý, vygenerujte deploy klíč na záložce Nasazení (Vývoj → Nasazení → Deploy klíč) a přidejte ho mezi deploy klíče repozitáře. Veřejný repozitář tento krok nepotřebuje.
Krok 3: Naklonujte repozitář
cd /var/www/html
git clone git@github.com:vas-ucet/vas-projekt.git .
Krok 4: Nainstalujte PHP závislosti
composer install --optimize-autoloader --no-dev
Krok 5: Nainstalujte JavaScript závislosti a sestavte frontend
npm install
npm run build
Krok 6: Nakonfigurujte .env
cp .env.example .env
Přihlašovací údaje k databázi si zkopírujte přímo z panelu: hosting → záložka Služby → MySQL přístup → blok „Laravel .env (interní)“ má tlačítko pro zkopírování celého bloku. Interní host (pole Host v části „Interní připojení“) je obvykle mysql, ne localhost – aplikace běží ve stejném prostředí jako web, ale databáze běží samostatně ve stejné síti.
APP_ENV=production
APP_DEBUG=false
APP_URL=https://vase-domena.sk
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=vase_databaze
DB_USERNAME=vas_databazovy_uzivatel
DB_PASSWORD=vase_heslo
Krok 7: Vygenerujte aplikační klíč
php artisan key:generate
Krok 8: Spusťte migrace
php artisan migrate --force
Krok 9: Vytvořte symbolický odkaz pro storage
php artisan storage:link
Krok 10: Optimalizujte pro produkci
php artisan config:cache
php artisan route:cache
php artisan view:cache
Krok 11: Opravte oprávnění
fix_permissions
Podrobnosti o tomto příkazu v Oprava oprávnění souborů.
Aktualizace aplikace
Při dalších nasazeních opakujte jen relevantní kroky:
cd /var/www/html
git pull origin main
composer install --optimize-autoloader --no-dev
npm install && npm run build
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache
fix_storage
Plánovač (scheduler)
Pokud aplikace používá Laravel plánovač úloh, máte dvě možnosti bez nutnosti vlastního cronu na serveru:
- Vývoj → Cron úlohy: přidejte úlohu s příkazem
php artisan schedule:run, pracovním adresářem nastaveným na kořen aplikace (např./var/www/html) a plánem* * * * *(každou minutu). Viz Cron úlohy. - Vývoj → Úlohy supervisoru: šablona „Laravel Scheduler“ spustí
php artisan schedule:workjako trvale běžící proces, který sám hlídá minutové spouštění – cron záznam není potřeba. Viz Procesy na pozadí.
Queue workery
Pokud aplikace zpracovává joby přes frontu, přidejte v Vývoj → Úlohy supervisoru šablonu Laravel Queue Worker (php artisan queue:work --sleep=3 --tries=3), případně Laravel Horizon, pokud ho aplikace používá. Úloha supervisoru běží jako trvalý proces a sama se restartuje při pádu. Viz Procesy na pozadí.
Byl tento článek užitečný?
Vaše zpětná vazba nám pomáhá zlepšovat dokumentaci