Ga naar de hoofdinhoud
{}
Terug naar alle artikels

Technisch artikel

Deployment aanpak voor Laravel 13 op shared hosting

Een nuchtere deploymentaanpak voor Laravel 13 en PHP 8.5 op shared hosting, met managed-runtime stappen alleen waar workers echt beschikbaar zijn.

Door Codegenie3 minuten leestijd
  • deployment
  • laravel
  • kmo
  • release
Uitrolproces met opeenvolgende stappen en een controlemarkering.
In dit artikel

Op shared hosting bouw je de release vooraf wanneer Composer of Node niet beschikbaar zijn op de server. Alleen de public-map mag webtoegankelijk zijn. Configuratie, vendor, logs en eventuele backups horen buiten de publieke documentroot.

Controleer het hostingprofiel vóór publicatie: PHP en extensies, documentroot, schrijfbare paden, mail, cache, sessies en uitvoeringslimieten. Zonder shell is een gecontroleerd artifact nodig; de normale gebruikersflow mag niet alsnog Composer, Node of een permanente worker vereisen.

  • Bouw vanuit lockfiles en pak geen productiegeheimen in een publiek artifact.
  • Controleer cache en configuratie via de toegestane releaseprocedure; overschrijf geen runtimegegevens blind.
  • Test na publicatie een leesroute en de relevante echte gebruikersflow, niet alleen /up.

Deployments zijn momenten van waarheid. Alles wat netjes gebouwd is, kan onrustig aanvoelen wanneer release-stappen onduidelijk zijn. Voor KMO projecten is voorspelbaarheid belangrijker dan snelheid.

Deze aanpak vertrekt vanuit Laravel 13, PHP 8.5 en shared hosting als veilige basis. Grotere infrastructuur kan extra stappen krijgen, maar kritieke flows mogen daar niet automatisch van afhangen.

Shared-hosting-first basis

Op shared hosting hoort een release te werken zonder queue worker, externe cache service, Supervisor of shellproces tijdens normale runtime. De applicatie moet via gewone HTTP requests correct blijven reageren.

  • Bouw frontend assets voor upload of release
  • Laat Composer en Vite buiten runtime vallen
  • Cache config, routes en views alleen met expliciete release-stappen
  • Houd contactformulieren, betalingen en onderhoudsflows synchroon en request-safe

Managed runtime alleen waar nodig

Een VPS, containerplatform of managed Laravel omgeving kan achtergrondverwerking ondersteunen. Dat is nuttig voor optionele exports, imports of zware notificaties, maar het verandert de basisregel niet: de gebruiker mag niet afhankelijk worden van een worker die shared hosting niet levert.

  • Herstart workers alleen waar ze expliciet provisioned zijn
  • Gebruik achtergrondverwerking alleen voor optioneel werk
  • Documenteer welke flows zonder achtergrondproces blijven werken
  • Monitor failures en retries wanneer managed workers actief zijn

Database en rollback

Database migraties blijven het grootste release-risico. Maak wijzigingen backwards compatible waar dat kan en test rollback op staging. Een rollback is geen noodoplossing, maar onderdeel van de releaseflow.

  • Vermijd destructieve migraties zonder expliciete keuze
  • Deploy code die tijdelijk met oud en nieuw schema kan werken
  • Bewaar minstens een vorige release
  • Controleer storage, uploads en rechten na elke release

Wat niet in de standaardflow hoort

Complexe infrastructuur is geen kwaliteitslabel. Voor veel Codegenie projecten is een kleine, betrouwbare releaseflow sterker dan een brede pipeline die lokale hostingvoorwaarden negeert.

  • Geen queue worker als vereiste voor kritieke flows
  • Geen build tooling nodig op de productieserver
  • Geen daemon of scheduler als enige manier om user-facing taken af te ronden
  • Geen release zonder rollbackpad

Checklist

  • Tests groen voor release
  • Build artifacts aanwezig
  • Environment waarden gecontroleerd
  • Migraties beoordeeld op data-impact
  • Caches in juiste volgorde ververst
  • Rollback getest en bereikbaar

Praktische codevoorbeelden

Gebruik public_html alleen als front controllerpublic/index.phpphp
<?php

use Illuminate\Foundation\Application;
use Illuminate\Http\Request;

define('LARAVEL_START', microtime(true));

$laravelRoot = dirname(__DIR__).'/laravel-app';

require $laravelRoot.'/vendor/autoload.php';

/** @var Application $app */
$app = require_once $laravelRoot.'/bootstrap/app.php';
$app->handleRequest(Request::capture());
Wijs Laravel naar de echte publieke mapbootstrap/app.phpphp
$app = Application::configure(basePath: dirname(__DIR__))
    ->withRouting(web: __DIR__.'/../routes/web.php')
    ->create();

$publicPath = dirname(__DIR__).'/../public_html';

if (is_dir($publicPath)) {
    $app->usePublicPath($publicPath);
}

return $app;

Samenvatting

Een goede Laravel 13 deployment is rustig en voorspelbaar. Shared hosting vraagt geen zwakkere kwaliteit, maar wel discipline: minder runtime-afhankelijkheden, duidelijke release-stappen en geen kritieke achtergrondprocessen.

Wil je je deploymentflow eenvoudiger en veiliger maken, dan begint dat met de vraag welke stappen echt nodig zijn op jouw hostingprofiel. Daarna pas kies je extra infrastructuur.

Laatst bijgewerkt:

Technische context nodig voor je eigen project?

Codegenie helpt bij Laravel-applicaties, bestaande codebases, shared-hostingdeployments en technische verbeteringen.