Oprava oprávnění souborů: fix_permissions, fix_storage a Správce souborů
Oprava oprávnění souborů
Špatná oprávnění jsou nejčastější příčinou chyb jako „Permission denied“ nebo toho, že Laravel nedokáže zapisovat do storage či bootstrap/cache. CloudWeb hosting nabízí opravu třemi způsoby: jedním kliknutím v panelu, příkazem v SSH/webovém terminálu, nebo ručně přes Správce souborů.
Jedním kliknutím v panelu
V detailu hostingu otevřete Vývoj → Nasazení, rozbalte repozitář a v podzáložce Rychlé akce najděte sekci Oprávnění se dvěma tlačítky:
- Opravit oprávnění – spustí
fix_permissionsnad celým repozitářem - Opravit úložiště – spustí
fix_storage, rychlejší opravu jen pro složkustorage
Příkaz fix_permissions
Pokud se připojujete přes SSH nebo webový terminál, stejný příkaz máte k dispozici přímo v shellu:
fix_permissions
Bez argumentu opraví /var/www/html (pokud existuje), jinak aktuální adresář. Můžete zadat i vlastní cestu: fix_permissions /var/www/html/muj-projekt. Příkaz:
- nastaví vlastníka na
vas_uzivatel:www-data, - adresářům nastaví oprávnění
2775(čtení/zápis/spuštění pro vlastníka i skupinu, setgid, aby nové soubory dědily skupinuwww-data), - souborům nastaví oprávnění
664(čtení a zápis pro vlastníka a skupinu), - pokud najde adresáře
storagenebobootstrap/cache, opraví je stejným způsobem.
Příkaz fix_storage (pro Laravel)
fix_storage
Zkusí nejprve adresář ./storage (relativně k tomu, kde v shellu právě jste), a pokud neexistuje, /var/www/html/storage. Stejně jako u fix_permissions můžete zadat vlastní cestu: fix_storage /var/www/html/muj-projekt/storage. Je rychlejší, protože neprochází celý web, jen tento jeden adresář.
Oprávnění přes Správce souborů
U jednotlivého souboru nebo složky můžete oprávnění změnit i ve Správci souborů: klikněte na ni pravým tlačítkem a vyberte Oprávnění. V dialogu zadáte tří- nebo čtyřmístné oktálové číslo (např. 755), a u složky můžete zaškrtnout „Použít na vše ve složce“, aby se změna aplikovala rekurzivně na celý obsah.
Manuální oprava
Pokud potřebujete přesnější kontrolu, stejného výsledku jako fix_permissions dosáhnete i ručně (nahraďte USERNAME svým SSH uživatelským jménem):
sudo chown -R USERNAME:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 2775 {} \;
sudo find /var/www/html -type f -exec chmod 664 {} \;
Kdy tyto příkazy použít
- po nahrání souborů přes FTP,
- po klonování nebo pullu z Gitu mimo panel (např. přímo přes SSH),
- když se zobrazují chyby „Permission denied“,
- když Laravel nemůže zapisovat do
storagenebobootstrap/cache.
Po klonování, pullu nebo spuštění Rychlé akce přímo v panelu panel oprávnění i restart PHP řeší sám – tyto příkazy potřebujete hlavně při zásazích mimo panel.
Související návody
Byl tento článek užitečný?
Vaše zpětná vazba nám pomáhá zlepšovat dokumentaci