Laravel is een krachtig PHP-framework, maar vereist een specifieke mappenstructuur die niet volledig overeenkomt met de standaard setup van onze shared webhosting. In dit artikel leggen we uit hoe je Laravel correct deployt op een Easyhost hostingpakket.
Standaard niet mogelijk
Op een Easyhost hostingpakket wordt je website standaard geladen vanuit de map www.
Laravel daarentegen verwacht dat de publiek toegankelijke bestanden zich in de map public bevinden.
Dit zorgt voor een conflict:
- Hosting verwacht:
www - Laravel verwacht:
public
Als je hier niets aan doet, zal je website niet correct werken of zelfs helemaal niet zichtbaar zijn.
Oplossing: symlink van www naar public
De aanbevolen oplossing is om een symbolische link (symlink) te maken van de map www naar de map public.
Op die manier:
- Ziet de hosting nog steeds een
www-map - Maar worden de bestanden effectief geladen vanuit Laravel’s
public-map
Stap 1: Upload je Laravel-project
Upload je volledige Laravel-project naar je hostingpakket, bijvoorbeeld via FTP of Git.
Zorg ervoor dat de structuur er ongeveer zo uitziet:
/home/gebruikersnaam/
├── app
├── bootstrap
├── config
├── public
├── resources
├── routes
└── ...
Stap 2: Wijzig de naam van de www-map
Verander de naam van de map www naar iets als www_old
Stap 3: Maak een symlink via SSH
Maak verbinding met je hosting via SSH en voer het volgende commando uit:
ln -s public www
Wat doet dit commando?
wwwwordt een verwijzing naarpublic- De webserver denkt dat hij uit
wwwserveert - Maar in werkelijkheid gebruikt hij Laravel’s
public-map
Alternatieve oplossing
In plaats van een symlink te gebruiken, kan je Laravel ook aanpassen zodat het framework de www-map gebruikt in plaats van public.
Dit vereist aanpassingen in de Laravel-configuratie en wordt minder aangeraden.
Meer info hierover vind je hier:
https://developerhowto.com/2018/11/12/how-to-change-the-laravel-public-folder/