Jak přidat příkaz plánovače Laravel do Crontabu (v Ubuntu)
Při vytváření aplikací Laravel je mnoho úloh na pozadí (např. úklidové úlohy, odesílání e-mailů ve frontě, opakující se zprávy) nejlépe spravovat pomocí integrovaného plánovače Laravel. Aby se však plánovač spouštěl automaticky, je třeba jej připojit k systémovému cronu na serveru. V tomto příspěvku vám ukážu, jak to udělat v Ubuntu.
Předpoklady a předpoklady
Než budete pokračovat, tato příručka předpokládá:
- V Ubuntu již máte funkční projekt Laravel (např. v systému
/var/www/…nebo nějaký adresář). - Máte přístup k shellu / SSH s příkazem sudo (nebo alespoň dostatečná práva k úpravě crontab pro uživatele).
cronslužba je nainstalována nebo může být nainstalována.- PHP CLI je přístupné z příkazového řádku (např.
phppracuje).
Krok 1: Aktualizace a (v případě potřeby) instalace cronu
Je dobré se ujistit, že je váš systém aktuální, a ověřit, zda je nainstalován a spuštěn cron.
sudo apt-get updatesudo apt-get upgrade
Pak nainstalujte cron, pokud ještě není nainstalován:
sudo apt-get install cron
Po instalaci zkontrolujte stav:
systemctl status cron
Mělo by se zobrazit něco jako "active (running)". Pokud není spuštěn, můžete jej spustit:
sudo systemctl enable cronsudo systemctl start cron
Krok 2: Úprava crontabu
Chcete-li naplánovat plánovač Laravel, přidáte položku cronu, která se spustí každou minutu. Obvykle se systému nemusíte dotýkat. /etc/crontab (pokud nejste root nebo nespravujete mnoho uživatelů). Místo toho upravte crontab pro příslušného uživatele (často stejného uživatele, pod kterým běží váš webový server nebo aplikace).
Spusťte:
crontab -e
Pokud to děláte poprvé, může vás to vyzvat k výběru editoru (např. nano, vim atd.).
Do souboru crontab přidejte tento řádek:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
Ujistěte se, že jste vyměnili /path-to-your-project s vaší skutečnou cestou (například, /var/www/html/your-laravel-app).
Po úpravách uložte a ukončete. Cron změnu automaticky převezme.
Nejčastější nástrahy a tipy
| Vydání | Popis / Oprava |
|---|---|
| Špatná cesta | If cd ukazuje na neexistující adresář, funkce cron tiše selže. Dvakrát zkontrolujte absolutní cestu. |
| Špatná binární verze PHP | Někdy se verze PHP v CLI liší nebo není v $PATH. Použijte úplnou cestu (např. /usr/bin/php). |
| Oprávnění a vlastnictví | Ujistěte se, že uživatel, jehož crontab upravujete, má oprávnění ke spouštění příkazů a přístupu k souborům projektu. |
| Výstupní záplavy / e-maily | Bez přesměrování výstupu může cron při každém spuštění odeslat e-mail. Proto používáme >> /dev/null 2>&1. |
| Vícenásobné položky crontab | Pokud již máte pro stejného uživatele vytvořený cron, ujistěte se, že tento nový řádek není v rozporu s ním. |
Závěr
Integrace plánovače Laravel se systémovým cronem je jednoduchý, ale zásadní krok. Po jeho konfiguraci může vaše aplikace spolehlivě spouštět naplánované úlohy bez ručního zásahu. Stačí:
- Instalace/ověřování cronu v Ubuntu
- Přidání položky cronu (prostřednictvím
crontab -e) spustitphp artisan schedule:runkaždou minutu - Ověřte, zda vše funguje