Overstappen naar een nieuwere PHP versie

PHP brengt om de zoveel tijd een nieuwe en veiligere versie van PHP uit. De nieuwste versie van PHP biedt ten opzichte van de voorgaande versies weer verbeteringen met zich mee op het gebied van veiligheid en performance. We adviseren je eerst te testen hoe jouw website werkt voordat je daadwerkelijk migreert naar een recentere versie van PHP. In dit artikel leggen we uit hoe je kunt testen en hoe je kunt overstappen.

Waarom overstappen?

PHP is een scripttaal die bedoeld is om op webservers dynamische webpagina’s te creëren. Het zorgt er dus voor dat je site goed uitgeserveerd wordt aan je bezoekers.

Elke nieuwe versie van PHP biedt verschillende features en verbeteringen ten opzichte van zijn voorganger. Soms is het verschil tussen versies minimaal (zoals tussen PHP 5.5 en PHP 5.6) en soms is er zoveel veranderd dat het veel invloed heeft op de werking van je site/shop (PHP 7 verschilt enorm veel ten opzichte van PHP 5.x versies). Nieuwere PHP versies worden ook nog langer ondersteund door PHP dan oude versies. Voor oude versies worden er op den duur geen veiligheidsupdates meer uitgebracht. Stap daarom altijd zo snel mogelijk over op een zo recent mogelijke versie van PHP.

PHP 5.6

Op het Hypernode platform wordt alleen PHP 5.6 (en hoger) ondersteund. PHP 5.6 wordt officieel niet meer ondersteund vanaf december 2018. Vanaf dat moment worden er geen beveiligingsupdates meer uitgebracht en lopen webshops die draaien op deze verouderde PHP versies een veiligheidsrisico.

Op Hypernode faseren we PHP 5.6 en 7.0 niet uit voor het einde van 2018. We hosten namelijk nog aanzienlijk veel Magento 1 webshops die alleen op een PHP 5.x versie kunnen draaien.

Byte moet als hostingpartij denken aan veiligheid, maar ook compatibiliteit. Daarom zijn we voorzichtig met het uitfaseren van PHP 5.6 en 7.0. Dit betekent echter niet dat we de uitfasering nog jarenlang gaan uitstellen.

Wat betreft het veiligheidsrisico voor het Hypernode platform: een gehackte shop door een verouderde PHP versie blijft beperkt tot 1 Hypernode. De hack wordt geïsoleerd, terwijl bij shared hosting gelijk meerdere websites een groot risico lopen.

Let altijd goed op of je site goed blijft werken op een nieuwere PHP versie. Test daarom eerst voordat je je live site op gaat upgraden naar een hogere PHP versie. Het kan helpen door te kijken naar eventuele Deprecated meldingen.

PHP 7

PHP 7 biedt verbeterde snelheid, verminderd geheugengebruik en een betere foutafhandeling. PHP 7 is in een aantal aspecten fundamenteel anders dan haar voorgangers, wat veel van de grote veranderingen mogelijk maakt. Let er wel op dat niet alle extensies en modules die wel bij eerdere PHP versies gebruikt konden worden voor PHP7 beschikbaar zijn. Hieronder een overzicht van de belangrijkste dingen:

  • Memcache (Byte biedt geen Memcache aan, we adviseren je over te stappen op Redis)
  • Ioncube hebben we op Hypernode wel beschikbaar gesteld voor PHP7, maar niet standaard. Neem contact op met onze support om IonCube aan te zetten op PHP7.
  • In plaats van MySQL dien je nu MySQLi te gebruiken

Wil je meer informatie over de wijzigingen en compatibiliteit van PHP 7? Kijk dan hier.

Testen & overstappen – Hypernode

Onderstaande informatie legt uit hoe je Magento shop op het Hypernode platform kunt testen en hoe je via het Service Panel kunt overstappen naar een andere versie van PHP.

Hoe kan ik mijn shop testen?

Om te testen hoe je Magento shop werkt in een andere versie van PHP dien je een testomgeving op te zetten met behulp van de Hypernode Docker of te werken met een development pakket. Op een development pakket maak je een kopie van je live webshop op een volledig losstaande node. Zo kun je in alle rust, zonder dat je bezoekers het merken, testen in een andere versie van PHP. Lees meer over de voordelen van een development pakket in dit artikel.

Hoe stap ik over?

Overstappen naar een andere versie van PHP voor Hypernodes duurt maar een paar minuten en kan via het Service Panel:

  1. Login op het Service Panel.
  2. Selecteer de gewenste domeinnaam.
  3. Ga naar het tabblad Instellingen.
  4. Klik op de button PHP
  5. Kies je nieuwe PHP versie

Na ongeveer 5 minuten draait je shop op de nieuwe PHP versie.

Testen & overstappen – dedicated servers

Onderstaand stappenplan legt uit hoe je overstapt op een hogere PHP versie.

Hoe kan ik mijn website testen op PHP 7.x?

Door een kleine aanpassing te maken aan je .htaccess bestand kun je instellen dat alleen jouw IP-adres jouw site in PHP 7.x ziet. Al je bezoekers (alle andere IP-adressen) zien je site gewoon in de PHP versie die je nu ingesteld hebt staan. Zo kun je rustig testen hoe je site eruit ziet in PHP 7.x en eventueel aanpassingen maken. Voeg hiervoor de volgende code toe aan je .htaccess:

RewriteEngine on
RewriteCond %{REMOTE_HOST} ^xxx\.xxx\.xxx\.xxx$
RewriteRule ^(.+\.php)$ - [T=application/cgi-php70]

Wil je testen in PHP 7.1? Dan vervang je het ‘/cgi-php70’ gedeelte in de rewriterule door ‘/cgi-php71′. Je vervangt de xxx in het IP-adres waarmee je de website bezoekt. Deze code zorgt er echter voor dat alleen de URLs die eindigen op .php via PHP 7 draaien. Wanneer je alle URL’s wilt testen, ongeacht of deze eindigen op .php of niet, voeg je de volgende code toen aan je .htaccess

Voor PHP 7

AddType application/cgi-php70 php

Mocht je niet zeker weten dat je echt op PHP 7 aan het testen bent, maak dan een phpinfo bestand aan. Zet deze in je domein.nl map en vraag deze pagina op vanuit het IP-adres dat je hebt opgegeven in het .htaccess bestand. Je zult dan bovenaan de pagina zien staan dat je op PHP 7 aan het testen bent.

Test je website eerst goed voordat je daadwerkelijk overgaat naar de PHP 7.x omgeving. Mogelijke foutmeldingen kun je vinden onder het kopje E_DEPRECATED foutmeldingen. Controleer ook graag of je geen gebruik maakt van een verouderde versie van je CMS.

Hoe stap ik over?

Wanneer je met je website wilt overstappen naar PHP 7.x, kun je dit instellen via ons Service Panel. Hoe dat werkt wordt hieronder in het stappenplan uitgelegd:

  1. Login op het Service Panel.
  2. Selecteer de gewenste domeinnaam.
  3. Ga naar het tabblad Instellingen.
  4. Klik op de optie PHP.
  5. Selecteer onder het kopje Kies uw PHP versie de gewenste PHP versie
  6. Wacht even 10 minuten en na deze tijd zal je website draaien op de door jouw gekozen versie van PHP.

Waar je op moet controleren na de overstap

Wanneer je overstapt op een nieuwe PHP omgeving is het mogelijk dat een aantal oude onderdelen van je site het niet meer doen. Dit heeft meestal te maken met functies die in deze of een nieuwere versie van PHP niet meer werken. We zullen hier de meest voorkomende problemen met deze migratie opsommen.

Verborgen foutmeldingen controleren

De foutmeldingen die hieronder worden besproken zijn heel zichtbaar op je site, maar het kan zijn dat je website een aantal ‘verborgen’ foutmeldingen genereert die je niet in je scherm te zien krijgt. Deze kun je controleren door log_errors aan te zetten onder PHP instellingen in het Service Panel. Deze foutmeldingen worden dan in een log file gezet. Kijk ook voor meer informatie in het het artikel Website debuggen: foutmeldingen oplossen.

E_DEPRECATED foutmeldingen

Deprecated meldingen geven aan dat er in de code functies worden gebruikt die zullen verdwijnen in de volgende PHP versie en waar geen support meer op geleverd wordt. Ze kunnen daarom het beste vermeden worden. Om dit probleem op te lossen kun je twee dingen doen:

  1. Update naar de laatste versie van je CMS (aangeraden!).
  2. Zet de E_DEPRECATED meldingen uit. Dit lost echter je probleem alleen op kort termijn op. Aangezien de functies in een nieuwe PHP versie niet meer werken is het belangrijk dat je hier snel mee aan de slag gaat. Je wilt natuurlijk niet dat je website niet meer werkt als de PHP versie opnieuw geüpdatet wordt. Voor meer informatie kun je terecht op de pagina PHP instellingen.

Let op! Wanneer de foutmeldingen nog steeds zichtbaar zijn, ondanks dat je deze in het Service Panel hebt uitgezet, controleer dan het gebruikte CMS en de extensies/modules. Sommige daarvan gebruiken hun eigen error_reporting regels en deze worden niet uitgezet via ons Service Panel.

Website toont een witte pagina of andere foutmelding

Als je website na de migratie een foutmelding (Deprecated foutmeldingen uitgezonderd) krijgt of witte pagina toont, betekent dit dat je site niet geschikt is voor PHP 5.6. Je gebruikt waarschijnlijk een verouderde versie van je CMS of plugins.

Debuggen van je website.

Om erachter te komen waarom je website niet werkt op een nieuwe PHP versie zul je je website moeten debuggen. Begin met het aanzetten van “log_errors” en ‘Deprecated meldingen’ (~E_DEPRECATED) in het Service Panel onder “PHP” onder tabblad “Instellingen”. Kijk ook voor meer informatie hierover in het artikel PHP instellingen. Kijk ook voor meer informatie over het debuggen van je website in het artikel Website debuggen: foutmeldingen oplossen.

Mijn PEAR packages werken niet meer

Mocht je een package tegenkomen dat niet meer werkt, probeer dan als eerst een nieuwe versie van de package te installeren. Hoe dat werkt kun je lezen op de pagina Pear pakketten opvragen/installeren.

Mocht het probleem niet verholpen zijn na het installeren van de nieuwste versie van de package, kijk dan op de site van PEAR of je daar meer informatie kunt vinden.

Ik verwijs nog naar een oude PHP versie in mijn .htaccess

Het kan zijn dat je website nog op een oude versie van PHP draait, ondanks dat Byte deze niet meer beschikbaar stelt via het Service Panel. Je kunt namelijk via je .htaccess aangeven van welke PHP versie je site gebruik moet maken. Deze instelling in je .htaccess overruled andere instellingen. het gevaar van deze methode is dat als de PHP versie waarvan je gebruik maakt volledig wordt uitgefaseerd. je site kapot gaat. Controleer dit daarom goed en pas aan indien nodig. Als je in je .htaccess verwijst naar bijvoorbeeld PHP 5.3, staat er waarschijnlijk dit:

RewriteCond %{REMOTE_HOST} ^xxx\.xxx\.xxx\.xxx$
RewriteRule ^(.+\.php)$ - [T=application/cgi-php53]

of

AddType application/cgi-php53 php

Als je bovenstaande in je .htaccess hebt staan, raden we je aan dit te verwijderen en via het Service Panel over te stappen naar een recente versie van PHP.

Als je dit in je .htaccess hebt staan omdat je voor een bepaald IP aan het testen bent op een andere PHP versie, vergeet het dan niet te verwijderen als je klaar bent met testen en bent overgestapt.

Hulp nodig?

Helaas kunnen wij jou niet helpen met het overstappen naar een recentere versie van PHP, omdat wij geen inhoudelijke kennis over jouw website hebben. We hebben echter wel partners die jou met deze migratie kunnen helpen. Voor een overzicht van onze partners verwijzen we je graag naar de partnerpagina op onze website.

7