Website bouwen · 11 minuten lezen

Een Laravel-website online zetten: bestanden veilig deployen

Je website staat op je computer, maar bezoekers kunnen die nog niet zien. Deze beginnersgids legt uit hoe je Laravel-bestanden naar hosting brengt, wanneer SFTP handig is en hoe deploytools terugkerende updates eenvoudiger maken.

Wat is deployen?

Tijdens het bouwen staat je website op je eigen computer. Deployen betekent dat je een versie van die website naar een server stuurt en daar klaarzet voor bezoekers. De server is de computer van je hostingbedrijf die verbonden is met internet. Een domeinnaam laat bezoekers de website op die server vinden.

Bij een eenvoudige website kan deployen vooral bestaan uit bestanden uploaden. Een Laravel-app heeft meestal ook serverinstellingen, een database en soms opdrachten nodig die de applicatie klaarzetten. Alleen een map naar de server slepen is daarom vaak niet genoeg.

Een veilige werkwijze maakt onderscheid tussen je lokale ontwikkelomgeving en de live omgeving. Op je computer kun je testgegevens en lokale instellingen gebruiken. De server heeft eigen instellingen en echte gegevens. Die twee wil je niet per ongeluk door elkaar halen.

SFTP uitgelegd zonder jargon

SFTP is een beveiligde manier om bestanden tussen je computer en een server te kopiëren. Je gebruikt daarvoor een programma met twee vensters: aan de ene kant zie je bestanden op je computer, aan de andere kant de mappen op de server. Je kunt bestanden selecteren en overzetten, zoals je bestanden tussen twee mappen verplaatst.

Om verbinding te maken geeft je hostingbedrijf gegevens zoals de servernaam, gebruikersnaam, poort en een wachtwoord of SSH-sleutel. Gebruik SFTP wanneer je provider dit aanbiedt. Gewone FTP versleutelt de verbinding niet op dezelfde manier. Bewaar inloggegevens veilig en deel ze niet met een coding agent of in een openbaar project.

SFTP is begrijpelijk voor een eerste upload en werkt zonder ingewikkelde workflow. Het programma weet alleen niet vanzelf welke Laravel-opdrachten na de upload nodig zijn. Bij iedere update moet je ook onthouden welke bestanden zijn veranderd, welke instellingen op de server horen en of de database moet worden bijgewerkt.

Eerst de server voorbereiden

Vraag je hostingbedrijf waar je Laravel-project moet staan en welke map openbaar toegankelijk mag zijn. Bij Laravel hoort alleen de `public`-map als webmap ingesteld te zijn. De applicatiecode en instellingen horen niet rechtstreeks voor bezoekers bereikbaar te zijn. Laravel waarschuwt om de projectroot niet als openbare webmap te gebruiken, omdat daar gevoelige bestanden kunnen staan.

Controleer daarna of het hostingpakket de vereiste PHP-versie en uitbreidingen, Composer, een database en HTTPS ondersteunt. Vraag hoe je productie-instellingen veilig invult en of je toegang hebt om benodigde Laravel-opdrachten uit te voeren. Als je app geplande taken of achtergrondwerk gebruikt, moet de server daar ook geschikt voor zijn.

Maak eerst een database aan via het dashboard van je hostingprovider. Noteer de databasenaam, gebruiker en het wachtwoord veilig. De precieze stappen en benamingen verschillen per provider. Zet deze waarden alleen in de productie-instellingen op de server, niet in een publiek bestand.

Wat zet je wel en niet over?

Zet de applicatiebestanden over volgens de mappenstructuur van het project. De bestanden die Laravel nodig heeft, zoals `app`, `bootstrap`, `config`, `public`, `resources`, `routes` en `storage`, horen bij de app. Welke aanvullende mappen en bestanden nodig zijn, hangt af van hoe jouw project is gebouwd.

Upload nooit je lokale `.env`-bestand naar een openbare webmap of naar een openbare codeopslagplaats. Daarin kunnen wachtwoorden en geheime sleutels staan. Vul de productie-instellingen op de server zelf in. Deel ze niet in screenshots, supportberichten of gesprekken met een coding agent.

De map `node_modules` is meestal groot en is doorgaans niet nodig op de productieserver. De browserbestanden worden eerst gebouwd, waarna de gebouwde bestanden worden gepubliceerd. Composer-afhankelijkheden zijn wel nodig voor Laravel. Laat een ontwikkelaar bepalen of Composer veilig op de server draait of dat de afhankelijkheden vooraf in een passende build worden klaargemaakt.

Sla lokale hulpmiddelen, tijdelijke bestanden en testgegevens niet klakkeloos op productie over. Een `.gitignore`-bestand helpt om sommige bestanden uit versiebeheer te houden, maar controleer altijd wat er werkelijk wordt gepubliceerd.

Een eerste upload met SFTP

Vraag eerst aan je provider of SFTP is ingeschakeld en welke gegevens je nodig hebt. Open daarna een SFTP-programma, vul de servergegevens in en maak verbinding. Aan de serverkant navigeer je naar de map voor je applicatie. Controleer het pad voordat je bestanden uploadt, zodat je niet per ongeluk een bestaande site overschrijft.

Upload de projectbestanden naar de afgesproken applicatiemap. Laat de provider of ontwikkelaar de openbare webmap instellen op de `public`-map binnen dat project. Als het hostingpakket alleen een map zoals `public_html` aanbiedt en geen veilige Laravel-configuratie mogelijk maakt, upload de volledige Laravel-app dan niet zomaar daarheen. Vraag de provider om de juiste inrichting of kies hosting die een aparte applicatiemap ondersteunt.

Na de upload moeten productie-instellingen, Composer-afhankelijkheden, de database en eventuele databasewijzigingen geregeld worden. Daarna controleer je de HTTPS-verbinding, homepage, inloggen, formulieren, afbeeldingen, e-mail en betaalroute. Sommige van deze stappen vragen SSH-toegang of hulp van de hostingprovider of ontwikkelaar. SFTP kopieert bestanden, maar voert deze opdrachten niet automatisch uit.

SFTP of een deploytool?

Voor een eenmalige eerste publicatie kan SFTP een begrijpelijke manier zijn om bestanden te kopiëren. Voor regelmatige wijzigingen wordt het handmatig vergelijken en uploaden al snel foutgevoelig. Je kunt een bestand vergeten, de verkeerde versie uploaden of productie-instellingen overschrijven.

Een deploytool koppelt vaak een versie van je code aan een publicatieproces. Je bewaart de code bijvoorbeeld in GitHub en de tool zet een gekozen versie op de server. Sommige tools kunnen ook opdrachten uitvoeren, gebouwde bestanden klaarzetten, een publicatie terugdraaien of de server met SFTP/SSH bereiken. Controleer per dienst welke stappen automatisch gebeuren en welke jij nog zelf moet uitvoeren.

DeployHQ is een voorbeeld van een dienst die een Git-opslagplaats met een server via SSH of SFTP kan verbinden. Dat kan het herhaald uploaden overzichtelijker maken, maar je moet het proces nog steeds goed configureren. Laravel Forge en Ploi kunnen Laravel-publicaties en serverbeheer ondersteunen, maar daarbij heb je een server of geschikte hosting nodig en moeten de serverinstellingen goed staan. Geen enkele knop vervangt controle van je productie-instellingen, database en back-ups.

Voor een beginner is een ingebouwde Git-publicatieoptie van de hostingprovider vaak de eerste route om te onderzoeken. Als die ontbreekt, kan een deploytool tussen GitHub en SFTP/SSH een volgende stap zijn. Gebruik een serverbeheerplatform pas als duidelijk is wie de server configureert en onderhoudt.

Een eenvoudige workflow voor updates

Een terugkerende publicatie kan deze volgorde volgen: maak een wijziging op je computer, bekijk die in een testomgeving, bewaar de goedgekeurde versie in Git, maak een back-up van productie en publiceer die versie. Voer daarna eventuele databasewijzigingen uit en controleer de belangrijkste pagina’s.

Databasewijzigingen verdienen extra aandacht. Een nieuwe versie van de code kan verwachten dat tabellen of velden in de database bestaan. Laat migrations daarom uitvoeren volgens de instructies van het project en maak vooraf een back-up. Als er iets misgaat, wil je weten hoe je de vorige codeversie terugzet en gegevens herstelt.

Laat de coding agent die je app bouwt een deployhandleiding voor jouw specifieke project maken. Vraag om de benodigde PHP-versie, productie-instellingen, buildstappen, Composer-stappen, databasecommando’s, geplande taken en herstelprocedure. Laat de instructies door iemand met Laravel-ervaring nalopen voordat je ze op productie uitvoert.

Controlelijst voor je op publiceren klikt

Controleer of je de juiste server en map hebt gekozen, of de openbare webmap naar Laravel’s `public`-map verwijst en of de lokale `.env` niet wordt gepubliceerd. Zorg dat productie-instellingen veilig op de server staan, HTTPS actief is en je een back-up hebt van bestaande bestanden en databasegegevens.

Controleer ook of Composer-afhankelijkheden en gebouwde frontendbestanden klaarstaan, of eventuele databasewijzigingen bekend zijn en of geplande taken of queue workers nodig zijn. Spreek af wie dit instelt als jij de stappen niet zelf kunt uitvoeren.

Na publicatie test je de website zoals een bezoeker dat zou doen. Controleer op een telefoon en computer, probeer inloggen en belangrijke formulieren, bekijk eventuele foutmeldingen en controleer of e-mails en betalingen werken. Houd een eenvoudige notitie bij van wat is gepubliceerd en hoe je terug kunt naar de vorige versie.

Bronnen

  1. Laravel-documentatie: applicatie publiceren
  2. Laravel-documentatie: geplande taken
  3. Laravel-documentatie: wachtrijen
  4. Cyberduck-documentatie: verbinden via SFTP
  5. DeployHQ: publiceren via SSH of SFTP
  6. Laravel Forge-documentatie: wachtrijen en deployments
  7. Ploi-documentatie: Laravel
  1. Website hosting kiezen voor je SaaS: een beginnersgids
  2. Een online bedrijf starten zonder technische kennis
  3. SEO voor je SaaS-website: van zoekvraag naar vindbare pagina