Probleemoplossing

PHP-extensies en -instellingen

Which PHP versions and extensions KapsuleHost web hosting provides, which settings you can change yourself, and why a change can take up to five minutes to appear.

Welke PHP-versies en extensies KapsuleHost webhosting biedt, welke instellingen u zelf kunt wijzigen, en waarom een wijziging tot vijf minuten kan duren voordat deze zichtbaar is.

Alles wat te maken heeft met PHP voor een site bevindt zich op één plek: Websites, klik op de site, Geavanceerd, vervolgens PHP. Die pagina bevat de versiekeuzzer, de instellingen die u kunt wijzigen, een Composer-runner en het PHP-foutenlogboek.

Het PHP-tabblad voor een site in KPanel

Een PHP-versie kiezen

Vier versies zijn selecteerbaar: 8.4, 8.3, 8.2 en 8.1. Nieuwe sites hebben standaard versie 8.3.

Kies de nieuwste versie die uw software daadwerkelijk ondersteunt. Nieuwere PHP is aanzienlijk sneller en wordt langer ondersteund met beveiligingsupdates. De reden om niet direct naar de nieuwste versie over te gaan is compatibiliteit: een oude plugin of aangepaste code die jaren geleden is geschreven, kan volledig mislukken op een versie waartegen deze nooit is getest.

Om dit te wijzigen, selecteert u de versie en klikt u op Versie toepassen. De wijziging wordt onmiddellijk van kracht, zonder dat u iets hoeft op te starten en zonder downtime.

Wijzig eerst de PHP-versie op staging, klik door de site heen, en wijzig deze pas daarna op production. Als u het live moet doen, doe het wanneer u kunt toekijken, en weet dat terugschakelen naar de vorige versie slechts één klik is. Zie Staging-omgevingen.

Als een versieverandering de site beschadigt, schakel dan terug naar de vorige versie en lees het logboek. De fout zal het bestand noemen dat niet kon worden uitgevoerd. Zie PHP-versie wijzigen en Foutenlogboeken.

Instellingen die u kunt wijzigen

De PHP-pagina stelt vijf instellingen beschikbaar als vervolgkeuzelijsten. Dit zijn de instellingen die in de praktijk werkelijk problemen veroorzaken, en daarom worden deze weergegeven.

InstellingStandaardBeschikbare waardenWat dit regelt
memory_limit256M128M, 256M, 512M, 1024M, 2048MHoeveel geheugen één verzoek mag gebruiken
max_execution_time3030, 60, 120, 300, 600Hoeveel seconden één verzoek mag duren
upload_max_filesize64M16M, 32M, 64M, 128M, 256MHet grootste bestand dat kan worden geüpload
post_max_size65M17M, 33M, 65M, 129M, 257MDe grootste totale formulierinzending
max_input_vars30001000, 3000, 5000, 10000Hoeveel velden één inzending mag bevatten

Welke u nodig hebt:

  • Uploads mislukken boven een bepaalde grootte: verhoog upload_max_filesize en post_max_size ervan.
  • Een groot formulier of een paginabouwer verliest velden bij het opslaan: verhoog max_input_vars. Dit is onzichtbaar en irritant, omdat er geen fout optreedt. De extra velden worden stilzwijgend verwijderd.
  • Een pagina stopt halverwege zonder fout: verhoog memory_limit. Zie WordPress-geheugengelimi.
  • Een lange import of export loopt uit: verhoog max_execution_time en overweeg om de taak in plaats daarvan vanaf de opdrachtregel uit te voeren. Zie WP-CLI.

post_max_size moet groter zijn dan upload_max_filesize, omdat de upload in het bericht reist. Als u een combinatie kiest waarbij dit niet het geval is, corrigeert het platform post_max_size voor u. Daarom kunt u een waarde zien die u niet hebt gekozen.

Waarom een wijziging tot vijf minuten duurt

Dit is de meest voorkomende verwarring op deze pagina, dus het is het waard om precies te zijn.

Uw instellingen worden geschreven naar een .user.ini-bestand in de documenthoofdmap van uw site. PHP leest dat bestand en plaatst het vervolgens 300 seconden lang in cache, wat vijf minuten is. Totdat die cache verloopt, blijft PHP de vorige waarden gebruiken.

Dus na het opslaan van een wijziging:

  • De pagina rapporteert nog tot vijf minuten de oude limiet.
  • phpinfo() rapporteert nog tot vijf minuten de oude limiet.
  • Een harde vernieuwing helpt niet. Het wissen van uw browsercache ook niet.
  • U hoeft niets opnieuw op te starten, en dat kunt u ook niet doen. Wacht gewoon.

Als meer dan vijf minuten zijn verstreken en de waarde is niet veranderd, klopt er iets niet en is het de moeite waard om een ticket in te dienen.

.user.ini zelf bewerken

U kunt .user.ini rechtstreeks bewerken via SFTP of SSH als u dat liever doet, of als u een richtlijn nodig hebt die het paneel niet weergeeft. Het bevindt zich in de documenthoofdmap van uw site. Zie SFTP-toegang.

Indeling: één richtlijn per regel:

memory_limit = 512M
max_execution_time = 120

Twee belangrijke beperkingen op wat .user.ini kan doen:

Het werkt alleen voor richtlijnen die PHP per map of per gebruiker mag instellen. De vijf bovenstaande kwalificeren allemaal. Richtlijnen 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 fout, ze doen eenvoudig niets, daarom besteden mensen er een middag aan.

Het paneel leest alleen eenvoudige sleutels terug. Richtlijnen met een punt erin, zoals opcache.enable of date.timezone, worden door PHP gerespecteerd maar verschijnen niet in het paneelformulier. Als u er een handmatig instelt en later iets wijzigt via het paneel, controleer het bestand daarna.

Kapsule webhosting gebruikt nginx, niet Apache. .htaccess-bestanden worden door niemand gelezen. PHP-richtlijnen in een .htaccess-bestand, zoals php_value memory_limit, doen hier absoluut niets. Gebruik .user.ini of het paneel. Zie WordPress en .htaccess.

Welke extensies zijn beschikbaar

De standaardversie is uitgebreid en bevat alles wat WordPress, WooCommerce en de meeste PHP-toepassingen vragen.

Databases: mysqli, pdo_mysql, sqlite3, pdo_sqlite Afbeeldingen: gd, imagick, exif Caching: Zend OPcache, redis, memcached Tekst en taal: mbstring, iconv, intl, gettext, ctype XML en gegevens: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json Netwerk: curl, soap, sockets, ftp, openssl Wiskunde en crypto: bcmath, sodium, hash, random Bestanden en systeem: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer

Een versieverschil dat de moeite waard is om te weten: de extensie imap is aanwezig op 8.3 en eerder, maar niet op 8.4, omdat deze uit PHP zelf in die release is verwijderd. Als u een toepassing hebt die dit nog nodig heeft, blijf op 8.3 of zet die toepassing over naar een moderne e-mailbibliotheek.

Niet geïnstalleerd: PostgreSQL-stuurprogramma's, MongoDB, Xdebug, mcrypt en commerciële codeloaders zoals ionCube en SourceGuardian.

U kunt extensies niet zelf inschakelen of uitschakelen vanuit het paneel. Als uw toepassing iets nodig heeft dat niet in de lijst staat, dient u een ticket in en beschrijft u wat u gebruikt. Of dit kan worden toegevoegd, hangt af van de extensie. Zie Een ondersteuningsticket openen.

Controleren wat werkelijk is geladen

In plaats van gissen:

  • Op WordPress: Tools, vervolgens Site Health, vervolgens Info, vervolgens Server. Het geeft de PHP-versie en de relevante limieten weer.
  • Via SSH: php -v voor de versie en php -m voor de geladen extensies. Zie SSH-sleutels toevoegen.

Laat geen phpinfo()-bestand in uw webroot achter. Het publiceert uw paden, extensies en configuratie naar iedereen die het vindt, en geautomatiseerde scanners zoeken naar precies die bestandsnaam. Als u er een maakt om iets te controleren, verwijder het onmiddellijk daarna.

Gerelateerde handleidingen

Nog steeds hulp nodig?

Stuur ons een e-mail op support@kapsulehost.com of open een chat in KPanel.

KPanel openen
PHP-extensies en -instellingen