Welke PHP-versies en extensies KapsuleHost webhosting biedt voor WordPress, WooCommerce en PHP-sites, welke instellingen u zelf kunt wijzigen, en waarom een wijziging tot vijf minuten kan duren voordat ze zichtbaar wordt.
Statische, Node.js- en Python-sites draaien geen PHP. Alles wat met PHP voor een site te maken heeft, bevindt zich op één plek: Websites, klik op de site, Instellingen, dan PHP. Die pagina bevat de versiekiezer, de instellingen die u kunt wijzigen, een Composer-runner en het PHP-foutenlogboek.

Een PHP-versie kiezen
Vier versies zijn beschikbaar: 8.4, 8.3, 8.2 en 8.1. Nieuwe sites gebruiken standaard 8.3.
Kies de nieuwste versie die uw software daadwerkelijk ondersteunt. Nieuwere PHP is merkbaar sneller en wordt langer ondersteund met beveiligingsupdates. De reden om niet meteen naar de nieuwste versie over te stappen, is compatibiliteit: een oude plug-in of een stuk maatwerkcode van jaren geleden kan volledig falen op een versie waartegen het nooit is getest.
Om de versie te wijzigen, selecteert u de versie en klikt u op Versie toepassen. De wijziging wordt onmiddellijk van kracht, zonder dat u iets hoeft te herstarten en zonder downtime.
Wijzig de PHP-versie eerst op staging, klik de site door, en wijzig ze pas daarna op productie. Als u het live moet doen, doe het dan op een moment dat u kunt toekijken, en weet dat terugschakelen slechts één klik is. Zie Staging-omgevingen.
Als een versiewijziging de site stuk maakt, schakel dan terug naar de vorige versie en lees het logboek. De foutmelding noemt het bestand dat niet kon worden uitgevoerd. Zie PHP-versie wijzigen en Foutenlogboeken.
Instellingen die u kunt wijzigen
De PHP-pagina biedt vijf instellingen als keuzelijsten. Dit zijn de instellingen die in de praktijk daadwerkelijk problemen veroorzaken, en daarom worden ze getoond.
| Instelling | Standaard | Beschikbare waarden | Wat het bepaalt |
|---|---|---|---|
memory_limit | 256M | 128M, 256M, 512M, 1024M, 2048M | Hoeveel geheugen één verzoek mag gebruiken |
max_execution_time | 30 | 30, 60, 120, 300, 600 | Hoeveel seconden één verzoek mag duren |
upload_max_filesize | 64M | 16M, 32M, 64M, 128M, 256M | Het grootste enkele bestand dat kan worden geüpload |
post_max_size | 65M | 17M, 33M, 65M, 129M, 257M | De grootste totale formulierinzending |
max_input_vars | 3000 | 1000, 3000, 5000, 10000 | Hoeveel velden één inzending mag bevatten |
Welke instelling u nodig heeft:
- Uploads mislukken boven een bepaalde grootte: verhoog
upload_max_filesize, enpost_max_sizeermee. - Een groot formulier of een paginabouwer verliest velden bij het opslaan: verhoog
max_input_vars. Dit is onzichtbaar en frustrerend, omdat er geen foutmelding verschijnt. De extra velden worden stilletjes weggegooid. - Een pagina stopt halverwege zonder foutmelding: verhoog
memory_limit. Zie WordPress-geheugenlimiet. - Een lange import of export loopt vast op een time-out: verhoog
max_execution_time, en overweeg de taak in plaats daarvan via de command line uit te voeren. Zie WP-CLI.
post_max_size moet groter zijn dan upload_max_filesize, omdat de upload binnen de post wordt meegestuurd. Als u een combinatie kiest waarbij dit niet het geval is, corrigeert het platform post_max_size automatisch naar boven. Daarom ziet u mogelijk een waarde die u niet zelf heeft gekozen.
Waarom een wijziging tot vijf minuten kan duren
Dit is de meest voorkomende verwarring op deze pagina, dus het loont om precies te zijn.
Uw instellingen worden weggeschreven naar een .user.ini-bestand in de documentroot van uw site. PHP leest dat bestand en cachet het vervolgens 300 seconden, dat is vijf minuten. Totdat die cache verloopt, blijft PHP de vorige waarden gebruiken.
Dus na het opslaan van een wijziging:
- De pagina blijft tot vijf minuten lang de oude limiet tonen.
phpinfo()blijft tot vijf minuten lang de oude limiet tonen.- Een harde herlaadactie helpt niet. Het legen van uw browsercache evenmin.
- U hoeft niets te herstarten, en u kunt dat ook niet. Wacht gewoon even.
Als er meer dan vijf minuten zijn verstreken en de waarde niet is veranderd, dan is er echt iets mis en loont het de moeite om een ticket te openen.
.user.ini zelf bewerken
U kunt .user.ini rechtstreeks bewerken via SFTP of SSH als u dat liever heeft, of als u een instructie nodig heeft die het paneel niet biedt. Het bestand bevindt zich in de documentroot van uw site. Zie SFTP-toegang.
De indeling is één instructie per regel:
memory_limit = 512M
max_execution_time = 120
Twee belangrijke beperkingen van wat .user.ini kan doen:
Het werkt alleen voor instructies die PHP toestaat per map of per gebruiker in te stellen. De vijf hierboven voldoen allemaal. Instructies die alleen op systeemniveau kunnen worden ingesteld, zoals disable_functions of het laden van een extensie met extension=, worden genegeerd in een .user.ini-bestand. Ze geven geen foutmelding, ze doen eenvoudigweg niets, en daarom besteden mensen er een hele middag aan.
Het paneel leest alleen eenvoudige sleutels terug. Instructies die een punt bevatten, zoals opcache.enable of date.timezone, worden door PHP wel gerespecteerd maar verschijnen niet in het paneelformulier. Als u er handmatig een instelt en later iets via het paneel wijzigt, controleer dan achteraf het bestand.
KapsuleHost webhosting draait op nginx, niet op Apache. .htaccess-bestanden worden door niemand gelezen. PHP-instructies in een .htaccess-bestand, zoals php_value memory_limit, doen hier helemaal niets. Gebruik in plaats daarvan .user.ini of het paneel. Zie WordPress en .htaccess.
Welke extensies beschikbaar zijn
De standaardbuild is breed en bevat alles wat WordPress, WooCommerce en de meeste PHP-toepassingen nodig hebben.
Databases: mysqli, pdo_mysql, sqlite3, pdo_sqlite
Afbeeldingen: gd, imagick, exif
Caching: Zend OPcache, redis, memcached
Tekst en taalinstellingen: mbstring, iconv, intl, gettext, ctype
XML en gegevens: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json
Netwerk: curl, soap, sockets, ftp, openssl
Wiskunde en cryptografie: bcmath, sodium, hash, random
Bestanden en systeem: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer
Eén versieverschil dat het weten waard is: de imap-extensie is aanwezig op 8.3 en eerder, maar niet op 8.4, omdat ze in die release uit PHP zelf is verwijderd. Als u een toepassing heeft die deze nog nodig heeft, blijf dan op 8.3 of verplaats die toepassing naar een moderne mailbibliotheek.
Niet geïnstalleerd: PostgreSQL-drivers, MongoDB, Xdebug, mcrypt, en commerciële codeladers zoals ionCube en SourceGuardian.
U kunt zelf geen extensies in- of uitschakelen vanuit het paneel. Als uw toepassing iets nodig heeft dat niet in de lijst staat, open dan een ticket en beschrijf wat u draait. Of het kan worden toegevoegd, hangt af van de extensie. Zie Een supportticket openen.
Controleren wat er daadwerkelijk geladen is
In plaats van te gissen:
- In WordPress: Gereedschap, dan Sitegezondheid, dan Info, dan Server. Hier staan de PHP-versie en de relevante limieten vermeld.
- Via SSH:
php -vvoor de versie enphp -mvoor de geladen extensies. Zie SSH-sleutels toevoegen.
Laat geen phpinfo()-bestand achter in uw webroot. Het publiceert uw paden, uw extensies en uw configuratie aan iedereen die het vindt, en geautomatiseerde scanners zoeken precies naar die bestandsnaam. Als u er een aanmaakt om iets te controleren, verwijder het dan direct daarna.