RO
Setări

Alege cum vrei să vezi acest website.

Limbă

Selectează limba preferată pentru acest website.

Laravel pe hosting cu cPanel: document root și permisiuni

Dezvoltare web și Laravel

Întrebare · Ionel Nistor · 51 minute în urmă · 3 vizualizări

dezvoltare cpanel hosting deploy

Articol editorial, pregătit pentru bază de cunoștințe. Nu este o conversație simulată a comunității.

Multe site-uri PHP trăiesc pe hosting partajat administrat prin cPanel. Laravel cere ca doar directorul `public` să fie servit de Apache sau LiteSpeed; restul proiectului trebuie să rămână în afara document root. Întrebarea adună capcanele frecvente la primul deploy, nu un manual exhaustiv al fiecărei opțiuni din panou.

Document root corect



Mută sau pointează domeniul către `.../proiect/public`, nu către rădăcina unde stă `.env`. Dacă hostul nu permite schimbarea root-ului, folosește un `.htaccess` la rădăcină care redirecționează spre `public`, cu atenție la bucle. Verifică că `index.php` din public găsește autoloaderul — path-urile relative diferă când structura e nestandardă. Fișierele `.env` și `composer.json` nu trebuie accesibile prin URL — un request direct către ele e semn de root greșit.

Permisiuni storage și bootstrap/cache



Utilizatorul web serverului trebuie să scrie în `storage/logs`, `storage/framework` și `bootstrap/cache`. `775` pe directoare și proprietar corect evită erori la cache config/routes/views. Nu seta `777` ca soluție permanentă — e un risc de securitate pe shared hosting. Link-ul simbolic `public/storage` se creează cu `artisan storage:link`; fără el, fișierele încărcate nu sunt servite. Log rotation prin cPanel sau logrotate previne umplerea discului când `storage/logs` crește neobservat.

Cron și cozi



Scheduler-ul Laravel necesită o intrare cron care rulează `schedule:run` each minute. Job-urile din coadă nu rulează singure — fie un worker long-running (rar pe shared), fie cron care pornește `queue:work --stop-when-empty` la interval. Mail-urile tranzacționale blocate în coadă fără worker par „bug-uri de aplicație” deși codul e corect. Calea absolută către PHP CLI în cron diferă de modul Apache — folosește `which php` sau path din MultiPHP.

Secrete și backup



Nu comite `.env`; pe server, restricționează permisiunile fișierului. Capturile de ecran pentru forum nu trebuie să conțină parole FTP sau chei API. Backup-ul prin cPanel salvează fișiere și DB, dar restore-ul Laravel cere atenție la path-uri și la versiunea PHP selectată în MultiPHP Manager. După restore, rulează migrări dacă backup-ul DB e mai vechi decât codul deployat.

Ionel Nistor · 51 minute în urmă

Descrie structura folderelor (fără nume de cont) și mesajul exact din log sau din browser când apare 500.

0 Util

Autentifică-te ca să scrii

Discuții din aceeași categorie