Logo 2BVIsible

Om u indruk te laten maken op de rest van de wereld.

Websites en Meer
Om u indruk te laten maken op de rest van de wereld

Insigth is een serie artikelen over onderwerpen op het gebied van Internet in brede zin.

Variërend van 'how to' tot de laatste trends.

zondag, 02 december 2018 09:53

Website crash na PHP upgrade

Help, mijn website is gecrasht!

De afgelopen 2 maanden heb ik een aantal vragen gehad naar aanleiding van een ´PHP upgrade´, al dan niet op verzoek van een internet provider. In een aantal gevallen werkte de website na de upgrade niet meer.

Dit artikel legt uit wat er mis gaat en hoe dat op te lossen

Voor- en achterkant van een website

Een website bestaat uit 2 componenten: een 'voorkant' en een 'achterkant'. De voorkant is het deel van de website wat je ziet in je browser. De achterkant is het deel wat op de webserver draait en wat er voor zorgt dat bv. de informatie wordt opgehaald, de juiste visuele elementen worden geplaatst e.d.

De website wordt gebouwd in een aantal programmeertalen waarvan HTML waarschijnlijk de bekendste is. Samen met bv CSS en Javascript worden ze door browser gebruikt om een pagina op het scherm te tonen. Aan de achterkant kunnen vele verschillende programmeertalen worden gebruikt, PHP en SQL zijn 2 bekende voorbeelden. SQL wordt gebruikt om informatie in databases te manipuleren en PHP is een van de grote programmeertalen om websites te bouwen. Op de webserver wordt een stuk PHP code uitgevoerd met als resultaat een webpagina die naar de browser wordt gestuurd.

Net als van alle software komen in de loop van de tijd nieuwe versies beschikbaar. In nieuwe versies worden bv. nieuwe functies opgenomen die oude functies vervangen, bv. om een betere beveiliging of performance te krijgen. De oude functies blijven nog een tijdje bestaan naast de nieuwe functies maar worden op een gegeven moment uit een nieuwere versie verwijderd. Meestal wordt in een versie gewaarschuwd dat ergens een nieuwe functie beschikbaar voor is en gevraagd bestaande software om te bouwen naar de nieuwe functie.

PHP 7.2 Upgrade

Veel internet providers zijn bezig om all hun klanten te informeren over een upgrade naar PHP 7.2. Reden om dit nu te doen is dat de ondersteuning voor oudere versie gaat verdwijnen en providers deze versies -terecht- niet meer willen gebruiken. In sommige gevallen wordt website eigenaren gevraagd deze upgrade zelf uit te voeren (via de systemen van de provider), soms doen de providers het zelf.

Gecrasht, en nu...?

Als je website na een upgrade naar PHP 7.2 crasht dan heb je waarschijnlijk een oude website waar al langere tijd geen onderhoud op is gedaan. Dat kan gelden voor de gehele website, maar wellicht geldt het alleen maar voor een klein deel. Eén onderdeeltje wat niet meer werkt na de upgrade kan een crash van de complete website veroorzaken.

Als je website niet meer werkt na een upgrade van PHP naar versie 7.2 is er maar één oplossing: je website up-to-date (laten) maken zodat alle componenten met de juiste PHP versie kunnen werken. Afhankelijk van je provider is het wellicht mogelijk PHP versie 7.1 in te stellen i.p.v. 7.2. In de 7.1 versie zitten nog een aantal oudere functies waardoor je website wellicht weer werkt. Aangezien versie 7.1 binnenkort ook niet meer wordt ondersteund zul je alsnog je website moet bijwerken, maar dan heb je in ieder geval nu weer een werkende website in plaats van een lelijke foutmelding van een niet werkende website.

Hoe maak je je website up-to-date?

Helaas is daar niet één universeel schema voor te geven. De aanpak is bv. afhankelijk van het CMS wat je gebruikt. Ik grote lijnen kun je zeggen dat er 3 soorten softwarecomponenten in je website zitten:

  1. het CMS (Content Management Systeem)zelf , bv. Joomla of Wordpress
  2. het template (Joomla) of Thema (Wordpress). Dat kun je zien als een casco van een website met daarin de basis functionaliteit, lay-out en andere visuele componenten
  3. de uitbreidingen in de vorm van modules (Joomla) en plugins (Joomla/Wordpress). Dat zijn kleine stukjes functionaliteit als uitbreiding op het template en de standaard CMS functionaliteit

Het CMS up-to-date maken mag geen probleem zijn. CMS systemen zoals Joomla en Wordpress brengen regelmatig nieuwe versies uit die zijn aangepast aan de laatste versies van PHP (en andere onderliggende software).

Het template/thema kan mogelijk een probleem zijn. Hierbij is geen garantie dat een 5 jaar out template/thema no bestaat en in een actuele versie beschikbaar is. Dit risico is groter bij een gratis template/thema dan bij een betaalde versie. Daarnaast is (met name bij Wordpress) de juiste manier van thema gebruik soms een issue. Een fout toegepast thema (zonder z.g. 'child' thema) kan een update van een thema onmogelijk maken. Kan een template/thema niet worden bijgewerkt naar een actuele versie dan moet een nieuw template/thema worden gezocht en toegepast. Dat komt in veel gevallen bijna neer op het herbouwen van de website. Overweg in dat geval of iets meer uitgeven en een voledig nieuwe website op basis van actuele requirement niet verstandiger is.

Is een van de uitbreidingen een probleem bij het actualiseren dan dient een andere te worden gezocht die wel actueel is. In hoeverre dat een probleem geeft hangt af van de belangrijkheid van de uitbreiding in de website. Ook hier geldt dat een gratis uitbreiding meer risico's geeft voor wat betreft toekomstige actuele versies.

Stappenplan

Klik hieronder op de stappen voor de beschrijving.

Stap 1: Stel PHP in op 7.1

Stap 1: Stel PHP in op 7.1

Indien je provider je de mogelijkheid biedt stel dan je PHP versie op 7.1 i.p.v. versie 7.1. Wellicht werkt je website dan weer en heb je wat meer tijd om een definitieve oplossing te realiseren. Lukt dat niet ga dan naar stap 2. Helaas zul je even blijven zitten met een niet werkende website.

Stap 2: maak een kopie van je website

Stap 2: maak een kopie van je website

Als je in stap 1 de website weer (tijdelijk) aan de praat hebt gekregen maak je daarna een kopie van de website en installeer die in een test omgeving zodat je ermee kunt experimenteren zonder dat je bezoekers daar last van hebben.

Stap 3: stel de PHP versie van de kopie website weer op PHP 7.2

Stap 3: stel de PHP versie van de kopie website weer op PHP 7.2

Werk verder met de kopie website en set hiervoor de PHP versie weer op 7.2 zodat je kunt bepalen wat er fout gaat.

Stap 4: Bepaal waar de fout zit

Stap 4: Bepaal waar de fout zit

Bepaal met behulp van de debug tools van je CMS waar de fout optreedt. Schakel de modules en/of plugins handmatig uit. Werkt de site dan, dan zit het probleem waarschijnlijk daar. Werkt de site dan nog niet dan zit het probleem in een oude versie van het CMS of het template/thema.

Advies in dat geval: schakel een webbouwer in die wat dieper in het probleem kan duiken en je verder kan helpen. Houdt er rekening mee dat er flink wat kosten gemoeid kunnen zijn met het oplossen van je probleem.

Samenvatting

Een lang verhaal voor een vervelend probleem.

Als het je overkomt is er weinig wat je er nu aan kunt doen anders dat het probleem op (laten) lossen, onder de stress van een niet werkende website. Voor de toekomst zijn er wel een aantal tips om de kansen op een dergelijk probleem in verkleinen:

  1. De belangrijkste: houd je website uo-to-date. Als je dat regelmatig (laat) doen zijn de stapjes van de ene naar de volgende versie van de software in je website klein en de kans op problemen minder.
  2. Zorg dat je website technisch goed in elkaar zit. Daar heb je zelf meestal weinig zicht op, je moet vertrouwen op de kwaliteit van je webbouwer. Houd in je hoofd dat ook hier kan gelden 'goedkoop is duurkoop'.
  3. Overweeg of je niet beter betaalde plugins/modules kunt gebruiken dan gratis exemplaren. Een bouwer die betaald wordt voor zijn module/plugin zal beter gemotiveerd zijn deze bij te werken naar nieuwe eisen dan een bouwer die een gratis plugin levert.
  4. Maak regelmatig back-ups. Mocht er iets mis gaan met je website dan heb je nog altijd een exemplaar om terug te zetten. Dat helpt je niet in de hier beschreven PHP upgrade, maar wel in vele andere gevallen.

Heb je vragen over dit onderwerp neem dan contact op via onderstaande button.

Aangepast op donderdag, 06 december 2018 10:07

Vragen over bovenstaande artikel?

Neem contact op met 2BVisible voor een antwoord

 

Neem contact met mij op

Deze website legt gegevens vast over het gebruik van de website. Hierbij worden geen tot individuele personen herleidbare gegevens vastgelegd. Door gebruik maken van 2BVisible.nl gaat u hiermee akkoord.