IT bugsolutions

Laravel- en PHP-fouten

Laravel 500-fout na een deploy: oorzaken en oplossing

Het korte antwoord

Werkt het bij u lokaal en klapt het op de server? Dat is het klassieke deploy-gat. Zelden is de code de boosdoener, bijna altijd de omgeving. Het logboek zegt welk deel, en debugmodus aanzetten hoeft daarvoor niet.

  • Back-up vóór elke wijziging
  • Vaste prijs vooraf
  • Op afstand, overal ter wereld
  • Gratis diagnose

Laravel verbergt details voor bezoekers met opzet, dus de pagina zelf vertelt bijna niets. Het antwoord staat in storage/logs/laravel.log of het PHP-foutenlogboek en is meestal een van een korte lijst: .env, rechten, afhankelijkheden, migraties, PHP-versie of cache. Dezelfde aanpak werkt voor eigen PHP-code en andere frameworks. Veilig herstellen betekent eerst het logboek lezen en alleen aanpassen wat het aanwijst.

Herkenbaar?

Zo uit een Laravel 500-fout zich na een deploy

  • Een lege pagina, een kale “500 Server Error” of “Whoops, looks like something went wrong”
  • De site werkt lokaal of op de testomgeving, maar niet op de live server
  • Foutmeldingen zoals “No application encryption key has been specified” of “Class not found”
  • U ziet een mappenoverzicht, een 403 of de inhoud van index.php in plaats van de site
  • Alleen pagina’s die de database of bestandsuploads gebruiken geven een fout

Oorzaken

Wat veroorzaakt een Laravel 500-fout na een deploy?

.env of APP_KEY ontbreekt

Zonder .env-bestand of geldige APP_KEY kan Laravel sessies en cookies niet ontsleutelen of geen verbinding maken met de database, en faalt elk verzoek.

Storage en cache niet beschrijfbaar

De gebruiker van de webserver kan niet schrijven in storage of bootstrap/cache, waardoor logboeken, sessies, gecompileerde views en cachebestanden niet kunnen worden aangemaakt.

Afhankelijkheden niet geïnstalleerd

De vendor-map ontbreekt of is verouderd omdat composer install niet is uitgevoerd, of is geïnstalleerd voor een andere PHP-versie.

Migraties niet uitgevoerd

De nieuwe code verwacht tabellen of kolommen die nog niet bestaan, dus queries falen zodra die pagina’s worden geopend.

PHP-versie of extensie past niet

De server draait een oudere of nieuwere PHP-versie dan het project nodig heeft, of mist een extensie zoals mbstring, intl, gd of pdo_mysql.

Verouderde cache of verkeerde document root

Een gecacht config- of routebestand bevat nog oude waarden, of de webserver wijst naar de hoofdmap van het project in plaats van naar de map public.

Zelf proberen

Een Laravel 500-fout zelf onderzoeken

Hebt u of uw ontwikkelaar SSH-toegang, dan laten deze controles vaak de oorzaak zien.

  1. 1 Lees de laatste regels van storage/logs/laravel.log en van het PHP- of webserverlogboek. De eerste foutmelding noemt meestal het probleem.
  2. 2 Controleer of er op de server een .env-bestand staat met de juiste productiewaarden en een APP_KEY. Genereer alleen een nieuwe sleutel bij een nieuwe installatie, want een andere sleutel maakt bestaande versleutelde gegevens en sessies onbruikbaar.
  3. 3 Voer composer install --no-dev --optimize-autoloader uit met dezelfde PHP-versie die de webserver gebruikt.
  4. 4 Voer php artisan migrate --force uit nadat u hebt gecontroleerd dat er een verse back-up van de database is.
  5. 5 Leeg en herbouw de caches met php artisan optimize:clear, daarna php artisan config:cache en php artisan route:cache.
  6. 6 Zorg dat storage en bootstrap/cache beschrijfbaar zijn voor de gebruiker van de webserver, zonder het hele project voor iedereen beschrijfbaar te maken.
  7. 7 Controleer of de document root naar de map public wijst, en of APP_DEBUG op false en APP_ENV op production staat op de live site.

Onze aanpak

Zo verhelpen wij een Laravel 500-fout

  1. 1

    U beschrijft de deploy

    Vertel wat er is uitgerold en wat u nu ziet. We laten weten welke toegang we nodig hebben.

  2. 2

    Back-up vóór elke wijziging

    We kopiëren eerst de huidige code, de .env en de database, zodat de server altijd naar de huidige toestand terug kan.

  3. 3

    We lezen de logboeken en geven een prijs

    We volgen de fout in de Laravel- en serverlogboeken, vergelijken de omgeving met wat het project nodig heeft en sturen een vaste prijs.

  4. 4

    We repareren, testen en rapporteren

    Na uw akkoord herstellen we de omgeving of de code, testen de belangrijkste routes en sturen een kort verslag, met tips voor veiligere deploys.

Wat we nodig hebben

Wat wij van u nodig hebben

  • SSH- of SFTP-toegang tot de server, of een hostingpaneel
  • Toegang tot de repository of deploytool, als u die gebruikt
  • Toegang tot de database, of een recente databaseback-up
  • Wat er is uitgerold, wanneer, en of het op een andere omgeving wel werkt

We gebruiken per klant een aparte SSH-sleutel en de minimale toegang die nodig is. U kunt onze sleutel verwijderen zodra we klaar zijn.

Wat wij niet kunnen oplossen

We kunnen geen storingen bij uw host oplossen, geen servers of repositories waar we geen toegang toe krijgen, en geen beperkingen van gedeelde hosting die een vereiste PHP-versie of extensie tegenhouden. Grote fouten in de applicatie die nieuwe functies of een herontwerp vragen, vallen buiten een reparatie tegen vaste prijs. Is dat zo, dan zeggen we dat snel en leggen we uw mogelijkheden uit.

Prijs

Prijs en wat er daarna gebeurt

  1. 1

    Gratis diagnose

    We zoeken de oorzaak en vertellen u wat er mis is.

  2. 2

    Vaste prijs

    U krijgt een prijs en een tijdsinschatting. Zonder uw ja begint er niets.

  3. 3

    Opgelost en gerapporteerd

    We herstellen het, testen het en sturen een kort verslag.

Vanaf €295 excl. btw

Vaste prijs, afgesproken voordat we beginnen

Is het dringend? Zeg het in het formulier of in de chat. We beginnen zo snel als we kunnen en geven u bij de offerte een realistische tijdsinschatting. Kost voorrang extra, dan ziet u dat in de offerte voordat u akkoord gaat.

Laat het oplossen

Vragen?

Veelgestelde vragen over de Laravel 500-fout

Laatst bijgewerkt:

Aanvraag

Vertel ons wat er mis is

Beantwoord een paar korte vragen. U krijgt een vaste prijs voordat we iets doen.

Stap 1 van 5

Op welk platform ondervindt u het probleem?