Hoe los je een Joomla fout 500 op?
Hoe los je de "Joomla Error 500 - Sorry, er was een probleem waar we niet van konden herstellen" op? In dit artikel (geschreven door Eoin - Joomla Magazine) zijn een aantal suggesties benoemd om de oorzaak te achterhalen. Hier en daar aangevuld met Nederlandse bronnen.
Sorry, er was een probleem waar we niet van konden herstellen.
De server gaf een “500 - Whoops, het lijkt erop dat er iets mis is gegaan.” terug.
Goh, bedankt, Joomla. Dat kan ik zien. Mijn site werkt niet. Wil je me meer informatie geven zodat ik dat verdomde ding kan repareren?
Het is allemaal vreselijk onbehulpzaam. Niet alleen dat, maar het is een groot lelijk rood scherm. Het ziet er niet eens meer uit als mijn site. Wat heb ik gedaan? Ben ik alles kwijt? Is al mijn werk weg? Ben ik gehackt? Had ik misschien niet op die knop moeten drukken?
En ik heb geen idee hoe ik het moet oplossen of wat er mis is.
Ik zou kunnen gissen. Ik zou verwoed kunnen gaan bidden tot de Goden van Open Source om me mijn mooie site terug te geven.
Of misschien kun je dezelfde aanpak kiezen als ik. Luid vloekend op mijn computer en boos worden.
Misschien kun je alles proberen wat je maar kunt bedenken. Cache wissen. Uw computer opnieuw opstarten. De gebruikelijke dingen die helpen. Werkt het nog steeds niet?
Dat komt omdat dit een serverprobleem is. Een vervelend serverprobleem.
Misschien vraag je het je host. Misschien heb je daar ook niet veel aan. Misschien geven ze je algemene informatie waar je niet veel aan hebt. Laten we eerlijk zijn, sommige hosts weten niets van Joomla. Ze geven je dus geen bruikbaar advies.
En misschien controleren ze de foutlogs. “Sorry, de logs laten geen fouten zien, dit moet een configuratieprobleem met uw CMS zijn”. Nou... misschien hebben ze gelijk. Misschien is het geen PHP-fout. Misschien is het iets anders waar ze naar moeten zoeken. Of waar u naar moet zoeken.
Eoin heeft een video opgenomen waarin hij deze stappen met je doorneemt, misschien wordt het zo wat duidelijker.
Dit probleemoplossingsdocument is oorspronkelijk gemaakt op de Square Balloon website, Joomla Experts voor meer dan 16 jaar.
Dus hoe lossen we dit op?
Laten we beginnen met Joomla meer informatie te laten geven. We kunnen niet zomaar dingen gaan onderzoeken, we hebben een aanwijzing nodig.
Stap 1. Schakel Joomla Debug in
Laat ik duidelijk zijn. Dit zal je probleem in 99% van de gevallen oplossen. Of het geeft je een beter idee. Dit is altijd stap één en dat zal het altijd blijven.
Maar hoe kan ik dat doen? Ik hoor je met een geïrriteerde stem naar het scherm schreeuwen.
Nou, je hebt gelijk. Je kunt niet inloggen. De beheerdomgeving (back-end) geeft ook een error 500 scherm!
Geen probleem. Deze instelling wordt geregeld door het configuration.php
bestand. Je kunt inloggen via FTP, of meestal is er in je hosting een bestandsbeheerder. Beide manieren zijn prima, het is hetzelfde verschil.
Kies je methode en navigeer naar je Joomla site. De mijne is meestal in de public_html
map. Maar dit hangt af van je inrichting van de webserver.
Zoek configuration.php
en zoek of scroll tot je configuration.php vindt:
public $debug = false;
Je moet deze waarde wijzigen in true
public $debug = true;
Zodra je dat hebt gedaan, kun je het bestand opslaan. Als je FTP gebruikt, moet je het bestand ook uploaden. Vernieuw na het uploaden de FTP-software (een FTP-client genoemd, bijvoorbeeld FileZilla).
Heropen nu het configuration.php
bestand opnieuw en controleer of uw wijziging wordt weergegeven. Ik heb gevallen gezien waarbij het bestand niet verandert. En op sommige servers lijkt het alsof het een beveiligd bestand is. Dit zijn waarschijnlijk bestandspermissies die moeten worden bijgewerkt.
JFYI, de rechten die worden aanbevolen door Joomla.org zijn 755 voor mappen en 644 voor bestanden.
Zodra de configuratie is voltooid, moet configuration.php rechten 444 hebben.
Als FTP niet werkt, moet je de bestandsbeheerder van je hosting gebruiken, bijvoorbeeld cPanel heeft een bestandsbeheerder. Daar moet je het configuration.php bestand bewerken. Zet Joomla's debug-optie op waar volgens de instructies hierboven en klik op opslaan.
Refresh uw websitepagina (F5)
Je zult veel meer informatie zien om te begrijpen wat het probleem veroorzaakt.
Het eerste wat je moet doen is de hele pagina bekijken om de foutmelding te vinden.
Vergeet niet om ook de titel in je browsertab te controleren, die kan je ook een aanwijzing geven.
Enkele veel voorkomende fouten:
MySQL kan niet worden geïnitialiseerd
Als je naar de onderkant van het scherm kijkt, staat er zoiets als kan geen toegang krijgen tot MySQL database. Dit is een duidelijk teken dat een of alle gegevens onjuist zijn.
Waarschijnlijk is de databasenaam, databasegebruiker of het databasewachtwoord onjuist. Controleer de details bij je host of in je hosting set up en zorg ervoor dat je dezelfde gegevens hebt in je configuration.php bestand.
Hier zijn de drie instellingen die je nodig hebt:
Database:
public $db = 'yourdatabase_name;
Database gebruikersnaam:
public $user = yourdatabaseuser_name';
Database wachtwoord:
public $password = 'YOURPASSWORD;
Als je een bestandsnaam ziet waarnaar wordt verwezen
De kans is groot dat er een bestandsnaam wordt weergegeven. Misschien weet je niet wat dat bestand doet, of heb je het niet bewerkt. Misschien ben je geen ontwikkelaar. Dat is niet erg. Haal diep adem, je hoeft geen ontwikkelaar te zijn.
Wat je wel moet weten is dat dat bestand het probleem veroorzaakt. Je zou kunnen controleren of het gerelateerd is aan een component, module of plugin die je zojuist hebt geïnstalleerd of bijgewerkt. Als dat zo is, zit er misschien een bug in de update. Daar kun je dan op letten bij toekomstige updates. Je moet updates altijd voltooien op een ontwikkel-/agingversie van jouw site (een kopie) om problemen op de live site te voorkomen. Het geeft je meer tijd om het probleem op te lossen en het te rapporteren aan de ontwikkelaar van de plugin als dat nodig is.
Dus hoe los je dit op als je geen PHP kent? Nou, dat doe je niet. Je schakelt de plugin gewoon uit. Waarom? Ik heb die plugin nodig hoor ik je uitroepen?
Nou, zeker, maar wat we hier doen is zeker weten dat het die plugin is en niet iets anders. We sluiten het uit (of in) en dan kunnen we beslissen of het een probleem is.
Er zijn twee manieren om dit te controleren.
De eerste en ik vind dat de snelste, veiligste en meest eenvoudige, is om de naam van die component, module of plugins map te wijzigen.
Gebruik FTP of een bestandsbeheerder om de map te vinden.
Componenten bevinden zich in de map “components”.
Elke component heeft een naam met com_ als lettertype. Dus alle Joomla artikelen zijn opgeslagen in een component met de naam com_content. Dat component is waarschijnlijk niet het probleem. Er zijn duizenden of miljoenen Joomla installaties over de hele wereld. Je kunt ervan uitgaan dat elk Joomla gerelateerd probleem snel zou worden opgelost als het groot genoeg was om een 500 probleem te veroorzaken.
Dat gezegd hebbende, als je een probleem vindt dat een echte bug is, kun je het melden op de Joomla Github of op de Joomla Issues Tracker. De twee zijn gekoppeld, dus het maakt niet echt uit op welke je het rapporteert.
Maar voor het doel van deze 500 fout, laten we aannemen dat het geen probleem van de Joomla core is. Hoe verleidelijk het ook is om tegen Joomla te schreeuwen en Joomla de schuld te geven, het wordt echt overal ter wereld met succes gebruikt, als het kapot was zou het voor iedereen kapot zijn.
Laten we aannemen dat het iets is dat je hebt geïnstalleerd of veranderd. Is er een component dat je net hebt geïnstalleerd? Misschien is het niet compatibel met deze versie van PHP? Je zou de ontwikkelaar kunnen vragen wat de minimale PHP-vereisten zijn. Misschien is het niet compatibel met deze versie van Joomla, maar is het toch geïnstalleerd. Of misschien heb je een upgrade uitgevoerd vanaf een oudere Joomla.
Het maakt niet echt uit, net als bij al deze stappen proberen we gewoon te achterhalen wat het probleem is.
Zoek de component en hernoem (niet verwijderen) de map. Ik zet meestal twee streepjes vooraan.
Dus als je bijvoorbeeld een foutmelding ziet en het lijkt erop dat het gerelateerd is aan com_akeebabackup
dan zou ik de componentenmap hernoemen naar –-com_akeebabackup
. T
Op die manier is de map niet langer toegankelijk voor de code omdat deze op de verkeerde plaats zoekt.
Refresh uw websitepagina (F5) als je klaar bent.
Als het werkt, weet je dat er iets vreemds aan de hand is met de component.
Als er niets verandert, d.w.z. het is nog steeds kapot, dan kan het niet dat component zijn, ik zou het hernoemen naar de oorspronkelijke mapnaam.
Een van de belangrijkste dingen bij het uitvoeren van deze controles is dat we maar één ding tegelijk controleren.
Voor plugins staan ze in de map plugins, maar meestal ook in een submap zoals system of een andere submap. De hint zit in de foutmelding die je ziet.
Modules staan in de map modules en beginnen met mod_. De regels zijn hoe dan ook hetzelfde.
Een laatste plaats waar je een fout zou kunnen zien is in een override. Deze staan in templates/YourTemplateName/html/
en dan in een submap.
Je zou op zijn minst genoeg informatie moeten vinden om het te identificeren en het dan te repareren, of om een betere vraag te stellen wanneer je anderen om hulp vraagt. Aan het einde van dit document geef ik een overzicht van alle plaatsen waar je hulp kunt vinden.
Stap 2: Een .htaccess probleem?
Ook dit is eenvoudig te controleren. Zoals gebruikelijk in dit artikel hoef je .htaccess
of de code die erin staat niet te begrijpen. We willen dit gewoon uitsluiten.
Ga naar je bestanden via FTP of je hosts file manager. Sommige hosts tonen geen verborgen bestanden, waar .htaccess
onder valt. Je moet ervoor zorgen dat je het verborgen bestand kunt zien, zodat je het kunt bewerken.
In het cPanel van mijn host zit rechtsboven een knop met de naam “instellingen”. Er is een optie om “verborgen bestanden te tonen”.
Zodra je het .htaccess-bestand kunt zien, geef je het een andere naam (niet verwijderen). Ik noem de mijne meestal --.htaccess
Vernieuw je pagina zodra je de naam hebt veranderd (F5).
Als het werkt, is .htaccess
het probleem. Als het niet werkt, is de kans groot dat het niet het probleem is. Als het niet het probleem is, verander dan je bestandsnaam terug naar .htaccess
en ga verder met de volgende stap.
Als het wel het probleem is, is er een probleem met je .htaccess
-bestand.
Als je niet veel weet over .htaccess
maak je dan geen zorgen, ik heb een snelle oplossing. Je zult .htaccess
in veel gevallen nodig hebben omdat het de doorverwijzing voor SEF URL's regelt. Het voegt ook een aantal belangrijke beveiligingsfuncties toe.
Als je in je Joomla map kijkt met behulp van FTP of de bestandsbeheerder van je host, zul je een bestand vinden met de naam htaccess.txt
.
Dit is een kopie van het originele Joomla .htaccess bestand. Het is ECHT handig omdat je weet dat die meestal werkt.
Hernoem dit naar .htaccess. Vergeet niet de .txt aan het einde te verwijderen.
Vernieuw je site. Laadt de site? Controleer ook of de pagina's werken als je ze wijzigt.
Zo ja, dan weet je dat iets dat je hebt veranderd in het .htaccess-bestand de boel heeft verstoord. U zou de inhoud kunnen kopiëren en plakken in een helpforum om hulp te vragen. Of je kunt het laten zoals het is als het werkt.
Stap 3: Vraag je webshosting
Waarom niet? Zij beheren de webserver; misschien is het een instelling die ze veranderd hebben of een configuratieoptie waar jij geen toegang toe hebt. Het is de moeite waard om het hen te vragen. Sommigen zijn geen Joomla experts, dus het kan zijn dat ze niet zo behulpzaam zijn, maar anderen zijn super behulpzaam en lossen het probleem snel op.
Stap 4: PHP Foutrapportage
Vaak verschijnt een fout 500 niet in de PHP-foutrapportage. De fout kan optreden voordat de PHP-fouten plaatsvinden.
Desondanks, als je zover bent gekomen, kan het geen kwaad om het aan te zetten. Je kunt dit in je Joomla administrator onder de server tab op maximaal zetten, of als je geen toegang hebt, kun je FTP of de bestandsbeheerder van je host gebruiken.
Je bent op zoek naar deze instelling:
public $error_reporting = 'none';
Je kunt het veranderen in:
public $error_reporting = maximum';
Vernieuw je pagina (F5) om te zien of je nu nieuwe foutmeldingen hebt die je een aanwijzing kunnen geven over wat er mis is.
U kunt deze foutmeldingen gebruiken op Google of op forums wanneer u om hulp vraagt. Zorg ervoor dat je de volledige en exacte foutmelding kopieert, zodat mensen je zo gemakkelijk mogelijk kunnen helpen.
Step 5: Controleer PHP Error Logs
Nu we foutrapportage hebben ingeschakeld, zult u waarschijnlijk fouten op de pagina zien. Maar in sommige gevallen worden ze in plaats daarvan opgeslagen in foutenlogboeken.
Je host zal je vertellen hoe je toegang krijgt tot je PHP error logs. Het is de moeite waard om deze informatie te weten, zodat je dingen zonder deze logs kunt oplossen, omdat het vaak sneller is dan een ticket aanmaken. Ze kunnen in het inloggedeelte/paneel van je host staan, of ze kunnen een bestand op je server zijn. Je moet dit navragen bij je host.
Top Tip:
Zoek naar lijnen die vandaag de dag gedateerd zijn. Let op de nieuwste regels. Ze kunnen je een hint geven over een onderdeel, module, plugin of bestand dat het probleem heeft veroorzaakt.
Stap 6: Hernoem uw sjabloon error.php
Ik heb gevallen gezien waarbij de error.php
pagina de fout veroorzaakte. Ironisch.
Vergeet niet om ook je child theme error.php te controleren.
Hernoem ze bijv. -error.php
en je error pagina zal standaard de Joomla error pagina zijn.
Vernieuw je pagina. Als de site normaal laadt, is dat je probleem, zo niet, verander dan de namen weer terug.
Stap 7: Gzip problemen?
Soms veroorzaakt Gzip problemen op bepaalde servers. Ik neem aan dat het kan komen door dubbel gzippen of doordat de gzip PHP-module niet is ingeschakeld (of Apache-module, wat dan ook, het is een gzip-probleem).
Log in via FTP of via uw bestandsbeheerder op uw host en open configuration.php
public $gzip = true;
verander dit in
public $gzip = false;
Vergeet niet dat andere dingen zoals Akeeba's Admin tools ook dingen kunnen Gzippen in hun .htaccess
manager. Als je deze gids volgt, hebben we .htaccess al eerder gecontroleerd, dus dat zal het probleem niet zijn. Maar als je de volgorde niet volgt, zou het nog steeds kunnen, dus het is de moeite waard om te weten. Het is ook de moeite waard om te weten als je de .htaccess-maker in Admin Tools (of een ander onderdeel) gebruikt en de site daardoor niet meer werkt. Een van de configuratieopties is niet compatibel met uw server. Alleen trial and error kan uitvinden welke. Schakel ze een voor een uit en zet ze dan langzaam weer aan. U kunt ook de helft uitschakelen en de pagina opnieuw laden. Als het werkt, weet je dat het een van de onderste halve opties is die nu is uitgeschakeld. Zet nu de helft weer aan. Door het op deze manier te doen en elke keer te halveren, kun je problemen sneller oplossen.
Stap 8: Ontbrekende PHP-modules
Joomla heeft een aantal PHP kernmodules en een aantal optionele technische vereisten.
Hier is de link naar: https://docs.joomla.org/J4.x:Optional_Technical_Requirementshttps://docs.joomla.org/J4.x:Optional_Technical_Requirements
Alleen jij weet of je hebt besloten om cache of andere items op die gebieden te gebruiken.
Als je net je PHP-versie hebt gewijzigd, heb je misschien een van deze modules niet ingeschakeld, maar stond deze wel aan in de vorige PHP-versie.
Ik kan deze modules wijzigen in mijn cPanel van mijn host. Sommige webhostingproviders vereisen echter dat je php.ini gebruikt om deze instellingen bij te werken. Php.ini is een configuratiebestand voor PHP. Het is vrij eenvoudig, maar het lijkt op jargon als je het niet gewend bent.
Je moet weten naar welke instelling je op zoek bent en dan kun je het bestand doorzoeken om te zien of er iets relevants naar voren komt.
Hier is een voorbeeld van een regel die is uitgecommentarieerd met een puntkomma. ;
; How many GET/POST/COOKIE input variables may be accepted
;max_input_vars = 1000
Als ik wil dat max_input_vars een waarde heeft, zou ik de puntkomma vooraan de regel verwijderen.
; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 1000
De eerste regel is gewoon een commentaar/instructie, dus die kun je weglaten als commentaar, dat wil zeggen de puntkomma op zijn plaats laten.
Je kunt dan de waarde 1000 veranderen in een willekeurig ander getal (meestal in verhoging) om te zien of het werkt.
Niet alle hosts geven toegang tot php.ini en sommige geven alleen toegang tot bepaalde delen. Dat wil zeggen, zelfs als je deze waarde aanpast, kan het zijn dat je host dit niet toestaat. Ze kunnen de limiet beperken of helemaal geen toegang geven tot die optie. Alleen je host weet dit.
Stap 9: Problemen met caching?
Voor de duidelijkheid: dit is vrijwel zeker GEEN probleem met de browsercache. Een error 500 is een serverprobleem. Ik heb echter in sommige gevallen gezien dat het in de cache van bepaalde onderdelen zit. U zou dus de browsercache kunnen wissen voor een sanity check.
Dit heeft veel te maken met de vorige stap, maar als u uw site hebt gemigreerd van live naar dev of van dev naar live, is de kans groot dat uw caching-instellingen zijn veranderd.
Ik gebruik bijvoorbeeld soms Redis.
Blader door uw bestanden met FTP of met de bestandsbeheerder van uw host en zoek naar de sessiehandler. Zo ziet de mijne eruit:
public $session_handler = 'redis';
In mijn geval was de foutmelding dat de locatie redis.sock
was veranderd.
public $session_redis_server_host = '/home/tpwcsquareballoo/redis.sock';
Zorg ervoor dat dit klopt. Misschien moet je je host om die informatie vragen.
In ieder geval kunt u, voordat u dat probeert, eenvoudig testen of dit het probleem is of niet.
Verander de regel in:
public $session_handler = ‘file’;
Vernieuw uw website (F5).
Als het werkt, heeft het waarschijnlijk te maken met cache. Je kunt nu tenminste dat probleem oplossen.
Als het niet werkt, kan het de moeite waard zijn om de cache voorlopig uitgeschakeld te laten totdat je het probleem hebt opgelost, je hebt geen extra variabele nodig.
Maar vergeet niet om het in de toekomst weer aan te zetten als het eenmaal werkt. Je kunt dat doen in de Joomla Admin:
Systeem > Globale configuratie > Systeem > Sessiebehandelaar (dropdown).
Stap 10: Cache Handler?
Open je configuration.php bestand (met FTP of de bestandsbeheerder van je host).
Zoek deze regel:
public $cache_handler = 'file';
Als er in het laatste gedeelte niet 'bestand' staat, verander het dan zodat dat er wel staat.
Vernieuw uw website (F5).
Als het werkt, is dat het probleem, zo niet, dan kunt u het weer veranderen.
Stap 11: Wat is er veranderd?
Dit is een vrij uitgebreide gids, als niets heeft gewerkt, is het de moeite waard om te vragen wat je aan het doen was voordat de fout optrad. Heb je iets op je server geïnstalleerd? Heb je iets anders gedaan?
Stap 12: Vraag om hulp!
Op dit punt zou je al wat gedetailleerde informatie moeten hebben. Ik zou aanraden om alle informatie op te schrijven wanneer je om hulp vraagt. Ik geef de voorkeur aan Stack Exchange, maar hier zijn je ondersteuningsopties:
- https://joomla.stackexchange.com/
Als je dit gebruikt, zorg er dan voor dat je bij het stellen van je vraag alle stappen vermeldt die je tot nu toe hebt genomen. Je hebt veel van de juiste stappen genomen, vermeld alle informatie over wat er na elke stap gebeurde. Is de foutmelding veranderd? Vermeld ook de volledige foutmelding. - https://forum.joomla.org/
- https://joomlacommunity.cloud.mattermost.com/login
De officiële Joomla chatapplicatie. Gebruikt voor Joomla vrijwilligers om te communiceren. Het zit vol met experts. Ik zou waarschijnlijk een van de officiële ondersteuningsplekken gebruiken voordat ik hier om hulp zou vragen, maar het is een goede manier om betrokken te raken bij het project en te netwerken met kundige Joomlers. - Facebook: https://www.facebook.com/groups/joomlanospam
Dit is een levendige gemeenschap met veel deskundige en behulpzame mensen. - Joomla User Groups. Deze worden gevormd door gebruikers van Joomla. Het zijn vrijwilligers. Ze worden niet noodzakelijkerwijs gerund door Joomla zelf of door de belangrijkste mensen. Je kunt kijken of er een bij jou in de buurt is: https://community.joomla.org/user-groups.html Sommige zijn levendiger dan andere. En in sommige zitten de mensen die de Joomla code schrijven.
- Joomla Gebruikersgroep Londen: Mijn favoriete is vrij levendig https://www.joomlalondon.co.uk/
- Joomla User Group Australia https://community.joomla.org/events/joomla-australia-user-group-1679382001-1715670000.html
- Joomla User Group Chicago https://community.joomla.org/user-groups/joomla-user-group-chicago-north.html
- Joomla User Groep Maastricht NL: https://jug043.nl (active gebruikersgroep)
- Joomla Community Nederland: https://joomlacommunity.nl/
- Andere Joomla Evenementen. Dit zijn geweldige plekken om te netwerken en experts en leden van het Joomla kernteam te ontmoeten en fantastische presentaties te zien over alles wat je met Joomla kunt doen. Je kunt ze vinden op de Joomla evenementenpagina: https://community.joomla.org/events.html
- All Joomla Days
- Eion beveelt de volgende aan: Joomla Day USA als je de kans krijgt om te gaan (zelfs virtueel).
- Er zijn ook Joomla Dagen geweest in het Verenigd Koninkrijk
- Nederland en Germany hebben ook gezonde gemeenschappen met Joomla Days.
- Discord - https://discord.me/joomla een ander onofficieel kanaal waar je misschien hulp kunt vinden. Ik geloof dat er meerdere Discord-kanalen zijn.
- Slack - er zijn ook een paar onofficiële Slack-gebruikersgroepen.
En natuurlijk
Stap 13: Vraag een expert om hulp
Waarom zou je je tijd en frustratie verspillen als je een eindgebruiker bent en geen IT-specialist of ontwikkelaar. Er zijn tonnen experts die betaalde hulp aanbieden.
Wij zijn er natuurlijk één, dus ik zal mijn bedrijf, Square Balloon, als eerste aanbevelen. Wij werken al 16 jaar met Joomla.
Maar je kunt er ook meer vinden in de dienstverlenersgids https://community.joomla.org/service-providers-directory.html
Dit is een vertaling van de een artikel uit een Engelstalig artikel van Eoin uit de Joomla Community Magazine:
How to solve the Joomla Error 500 - Sorry, there was a problem we could not recover from. - The Joomla Community Magazine