Nasazení Laravel aplikace přes SSH krok za krokem

January 09, 2026 241 zobrazení

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:work jako 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

Stále potřebujete pomoc?

Pokud tento článek neodpověděl na vaši otázku, náš tým podpory je tu pro vás.

Kontaktovat podporu