@@PRODUCT@@

PHP-instellingen van een website

PHP is het programma dat de code van je website draait. Bijna elke site werkt prima op de standaardinstellingen, en je hoeft dit scherm nooit te openen. Je komt hier als iets erom vraagt: een webshop die meer geheugen wil voor een import, e

Geschreven voor: Klant, Reseller, Beheerder

PHP is het programma dat de code van je website draait. Bijna elke site werkt prima op de standaardinstellingen, en je hoeft dit scherm nooit te openen. Je komt hier als iets erom vraagt: een webshop die meer geheugen wil voor een import, een plugin die de extensie redis nodig heeft, een oud script dat meer dan twee minuten nodig heeft.

Alles op dit scherm heeft een grens. Je hostingprovider bepaalt wat een website op hun server mag instellen, en je pakket kan daarbinnen strenger zijn. Bij elk veld staat de grens én wie hem gezet heeft, zodat je meteen weet of je je pakket moet aanpassen of je provider moet vragen.

Het scherm openen

  1. Ga naar Accounts, open je account en kies het tabblad Websites.
  2. Klik op de rij van de website. Het paneel van die website schuift open.
  3. Klik onder PHP-instellingen op PHP instellen.

Je kunt er ook rechtstreeks naartoe linken — de website staat in het adres:

https://paneel.voorbeeld.nl/accounts/<account>/websites?php=voorbeeld.nl

Een PHP-versie kiezen

Het eerste blok is de versie. Kies de nieuwste die je software aankan; een oudere serie krijgt geen beveiligingsupdates meer, en het paneel markeert die als end-of-life.

Bij het wisselen herstart de PHP van je site, wat een seconde of twee duurt. Verder verandert er niets: je bestanden, je database en je instellingen blijven staan waar ze staan.

Soms wordt een versie geweigerd. Heeft het paneel een webshop of een ander programma voor je geïnstalleerd, dan weet het welke PHP-versies dat programma ondersteunt — en een versie daarbuiten kun je niet kiezen. De melding noemt het programma, het bereik dat de makers ervan publiceren en welke versies op deze server wél werken. Werk het programma eerst bij, of vraag je beheerder erom.

Wat je software nodig heeft

Boven de schakelaars kan een kort lijstje staan: wat je software nodig heeft. Het noemt wat er op deze website gevonden is — WordPress, WooCommerce, een object-cache, een beeldoptimalisatie-plugin — en welke module elk daarvan vraagt die je site nu niet laadt.

Elke regel eindigt op één van drie manieren, en die verschillen omdat de oplossing verschilt:

  • Een knop "Aanzetten". Je PHP heeft de module en je provider staat hem toe. Eén klik en hij staat aan.
  • "Kies hierboven een PHP-serie die deze module wel heeft." Een andere PHP-versie op deze server heeft hem en die van jou niet. Wissel de versie bovenaan het scherm.
  • "Je beheerder moet dit toevoegen." Geen enkele PHP-build op deze server levert hem mee. Daar verandert dit scherm niets aan; vraag het je provider.

Het lijstje gaat alleen over software die er echt staat. Geen lijstje betekent dat alles wat gevonden is heeft wat het nodig heeft.

Een extensie aanzetten

Extensies zijn extra modules die PHP laadt — redis voor een cache, imagick voor beeldbewerking. Onder elke schakelaar staat één regel waarvoor de module dient. Zet de schakelaar om en het paneel regelt de rest.

Twee dingen zijn goed om te weten:

  • Een extensie wordt geladen als PHP start, dus aanzetten herstart de PHP van je site. Het geldt voor elke website van dit account op deze PHP-versie.
  • De lijst toont alleen wat déze PHP-versie werkelijk heeft. Een oudere serie draagt minder modules dan een huidige — sommige stopten jaren geleden met oude PHP. Wat je provider wél toestaat en deze versie niet heeft, staat in een grijze regel onder de schakelaars, zodat je ziet dat het elders op de server bestaat.

Een instelling wijzigen

Het blok Instellingen bevat de php.ini-waarden die je zelf mag aanpassen. Laat een veld leeg voor de standaardwaarde. Onder elk veld staat wat het accepteert, wanneer het geldt en wat de grens is:

maximaal 256M (grens van pakket Business) · geldt per bezoek

Dat betekent: je mag tot 256 MB, en dat getal komt uit je pakket. Staat er grens van de server, dan is niet je pakket de beperking maar de machine van je provider.

Vul in wat je nodig hebt en klik op Instellingen opslaan. Zit een waarde boven de grens, dan kleurt het veld rood en staat erbij welke laag hem weigert:

memory_limit is capped at 256M by package Business (asked for 512M)

De meest gebruikte:

InstellingWat het doet
memory_limitHoeveel geheugen één paginaverzoek mag gebruiken. Verhoog dit bij "allowed memory size exhausted".
max_execution_timeHoe lang één paginaverzoek mag duren, in seconden. Verhoog dit voor lange imports.
upload_max_filesizeHet grootste bestand dat een bezoeker mag uploaden.
post_max_sizeDe grootste formulierinzending. Houd dit gelijk aan of groter dan de uploadgrootte.
max_input_varsHoeveel velden één formulier mag versturen. Grote menu's in WordPress hebben er meer nodig dan standaard.
display_errorsOf PHP-fouten in de pagina worden getoond. Zet dit Off op een live site.

Terugzetten doe je met het kleine linkje Terug naar standaard op de labelregel van het veld zelf, gevolgd door opslaan.

Je eigen interpreter

Een website die niets wijzigt, deelt één PHP-interpreter met de andere websites van je account. Dat is zuiniger en voor bijna alles goed.

De eerste eigen instelling of extensie geeft deze website een eigen interpreter. Het paneel zegt dat vóór het opslaan, en nog een keer op het moment zelf:

Deze website draait nu in een eigen PHP-interpreter (mijnsite.voorbeeld.nl).

De limieten van je account veranderen daar niet door: hetzelfde geheugen en dezelfde processortijd, nu verdeeld over één proces meer.

Twee labels die je kunt tegenkomen

  • Niet actief — je hebt dit ooit ingesteld en je provider heeft daarna versmald wat websites mogen zetten. De waarde wordt onthouden maar niet meer toegepast; verruimt je provider het weer, dan komt hij vanzelf terug.
  • Boven je pakket — de instelling wordt nog toegepast, maar met je huidige pakket zou je hem niet meer zo hoog mogen zetten. Meestal is je pakket gewijzigd nadat de instelling gezet was.

Vanaf de commandoregel

Alles op dit scherm is een corectl-commando op de server die de website bedient:

# wat deze website heeft, en in welke interpreter hij draait
corectl php override list voorbeeld.nl

# één instelling, met naam en al geweigerd als hij boven de grens zit
corectl php override set voorbeeld.nl memory_limit 256M
corectl php override unset voorbeeld.nl memory_limit

# extensies
corectl php ext list voorbeeld.nl
corectl php ext enable voorbeeld.nl redis

# wat de server überhaupt toestaat
corectl php policy show

Als er iets misgaat

  • "is capped at … by …" — de melding noemt de laag. the node's PHP policy is je provider; package <naam> is je pakket.
  • De schakelaar van een extensie is uitgegrijsd — de build levert hem niet mee. corectl php ext list <domein> laat zien wat er wél in zit.
  • Een instelling lijkt niets te doen — kijk of er Niet actief bij staat. Een instelling buiten wat de server toestaat wordt bewaard en niet toegepast.