Let op! Deze informatie is bedoeld voor de meer technisch gevorderde lezer. Byte kan hierbij geen technische support leveren. Ben je zelf niet zo technisch? Neem dan contact op met één van onze partners, te vinden op onze Partnerpagina.

PHP is een scripttaal die bedoeld is om op webservers dynamische webpagina’s te creëren. Wanneer je een CMS als Joomla, WordPress en Magento gebruikt, bestaat deze scripttaal uit diverse verschillende PHP bestanden waaruit de websites zijn opgemaakt. PHP kent ook ook meerdere instellingen waar je als developer je websites efficiënter mee kan inrichten.

Op deze pagina leggen we uit welke PHP extensies/instellingen je kunt aanpassen en wat deze precies betekenen.

Beheer PHP instellingen via het Service Panel

Via ons Service Panel kun je kiezen welke extensies en instellingen van PHP je wilt gebruiken. Gebruik hiervoor de volgende stappen:

  • Log in op het Service Panel.
  • Klik op je domein in het Domeinnamen overzicht.
  • Ga naar het tabblad Instellingenen klik op PHP.

Je kunt nu een aantal zaken beheren omtrent PHP. De gekozen instellingen kunnen invloed hebben op het functioneren van je website. Wees er dus zeker van wat je doet en lees de uitleg bij elke instelling!

Alle opties, versies en modules van PHP op onze servers zijn in dit versie overzicht te vinden..

Let op!: De configuratie van de webserver wordt periodiek bijgewerkt en het kan tot 10 minuten duren voordat wijzigingen die je maakt bij PHP Instellingen zichtbaar zijn in je website.

Kies welke PHP versie je wilt gebruiken

Op de servers van Byte kun je gebruik maken van versies PHP 5.5 tot PHP 7. Overstappen naar een recentere versie van PHP? Lees hoe je dit doet in het artikel Overstappen naar een nieuwere PHP versie.

Kies welke extensie je wilt gebruiken

Op onze servers bieden wij een aantal extensies aan. Deze extensies behandelen we hieronder.

Ioncube

Deze extensie heb je alleen nodig als je PHP bestanden met de Ioncube Encoder zijn geëncodeerd.

Zend Guard Loader 5.5.0

Deze extensie heb je alleen nodig als je PHP bestanden met de PHP Zend Optimizer zijn geëncodeerd.

Zend Guard Loader 5.1.0EA

Dit is praktisch hetzelfde als hetgeen dat hierboven vermeld staat. Het enige verschil is dat dit een oudere versie is en vooral gebruikt wordt voor bestanden die zijn geëncodeerd met een oudere versie van Zend Guard.

Pas je PHP instellingen aan

Onder het kopje Kies uw PHP instellingen vind je een lijst met PHP instellingen. Indien je hier een instelling mist (dat noodzakelijk is voor je applicatie), dan kun je contact opnemen met support@byte.nl. We zullen dan bekijken of die instelling toegevoegd kan worden.

Voor een volledige lijst met configuratieopties zie http://www.php.net/manual/en/ini.php

allow_call_time_pass_reference (default: On)

Indien deze optie uit staat, zal een waarschuwing gegenereerd worden als er argumenten by referenceaan functies meegegeven worden. Het meegeven van argumenten by referencewordt door PHP niet aanbevolen en zal in komende versies van PHP verdwijnen. Je kunt deze optie dus uitzetten om te kijken of je code hier gebruik van maakt.

allow_url_fopen (default: On)

Byte adviseert om deze op ‘Off’ te zetten

Dit zorgt ervoor dat met behulp van fopen() (en dus ook met include, require, etc. ) bestanden geopend kunnen worden via HTTP of FTP. Als een website niet goed geprogrammeerd is, kan een eventuele aanvaller hiermee zijn eigen code uitvoeren als onderdeel van de site, met alle gevolgen van dien.

allow_url_include (default: Off)

Deze instelling doet vrijwel hetzelfde als allow_url_fopen, maar dan alleen voor de functies include, include_once, requireen require_once. Indien dit aanstaat vormt het een groot beveiligingsrisico. Om allow_url_includete kunnen gebruiken, moet ook allow_url_fopenaanstaan.

apc.enabled (default: On)

Let op! Deze optie is alleen beschikbaar voor Dedicated pakketten
APC is een opcode cache voor PHP. Hiermee zal je PHP code gecached en geoptimaliseerd worden. De PHP code hoeft dan niet elke keer opnieuw berekend te worden.

apc.stat (default: Off)

Let op! Deze optie is alleen beschikbaar voor Dedicated pakketten
Met deze instelling aan zal APC bij elk bezoek aan de website kijken of er recent nog aanpassingen zijn gemaakt. Deze optie is vooral handig wanneer je nog wijzigingen maakt aan de webshop. Het niet gebruiken van deze optie levert een behoorlijke performancewinst op.

display_errors (default: On)

Dit bepaalt of fouten die door de PHP parser opgemerkt worden, in een pagina weergegeven worden aan de gebruiker. Voor een productie website kun je dit uitzetten, maar het wordt dan wel lastiger om eventuele fouten op te sporen.

log_errors (default: Off)

Dit bepaalt of fouten die in de PHP code van je website optreden, opgeslagen worden. Indien je deze optie aanzet vind je in je homedirectory een map /logs/php/met daarin de logfiles.

magic_quotes_runtime (default: Off)

Deze instelling zorgt ervoor dat de karakters , en / in data uit een externe bron, zoals een database of een bestand, automatisch gequote worden. Hierdoor kan de site minder makkelijk gebruikt worden voor Injection. Het nodigt echter ook uit tot ‘lui programmeren’.

register_globals (default: Off)

Deze optie zorgt ervoor dat de EGPCS-variabelen (Environment, Get, Post, Cookie, Server) automatisch geregistreerd worden als globale variabelen. Het aan hebben staan van Register Globals is echter ‘zeer gevaarlijk’ en vormt een vrijwel open deur tot je website voor kwaadwillenden. Er is echter software op internet te vinden die niet werkt zonder Register Globals.

Byte adviseert ‘met klem’ om deze software links te laten liggen en Register Globals niet te gebruiken.

register_long_arrays (default: Off)

Deze instelling zorgt ervoor dat de $HTTP_GET_VARS, $HTTP_POST_VARS variabelen in PHP5 beschikbaar zijn.

Let op! Deze functie is vanaf PHP 5.4 niet meer bruikbaar!.

session.use_trans_sid (default: Off)

Deze instelling zorgt ervoor dat een sessie-id automatisch meegestuurd wordt in de URL als Cookies niet ingeschakeld zijn. Dit vormt een mogelijk risico, omdat sessies op deze manier makkelijker te kapen zijn. Het kan echter wel handig zijn om browsers die cookies uit hebben staan, toch gebruik te laten maken van sessies.

zlib.output_compression (default: Off)

Wanneer dit op Onstaat, worden pagina’s gecomprimeerd als de browser een Accept-Encoding: gzipof deflateheader meestuurt. Content-Encoding: gzip(respectievelijk deflate) headers worden toegevoegd aan de uitvoer.

auto_append_file (default: )

Geef een pad naar een PHP bestand op dat uitgevoerd zal worden na elke PHP pagina dat aangeroepen wordt op je domein. Geef hier het volledige pad op naar het bestand (dus beginnend met ‘/home/users/domeiftp/domein.nl/’). Er wordt hier niet gecontroleerd of het bestand bestaat, maar je site zal het niet meer doen als dit bestand niet bestaat.

error_reporting (default: E_ALL | E_STRICT)

Hiermee kun je instellen op welk niveau fouten gerapporteerd worden. De default waarde houdt in dat alle fouten gerapporteerd worden. Door extra niveaus aan te vinken kun je rapportering voor deze niveaus uitschakelen. De volgende error reporting niveaus kunnen uitgeschakeld worden:

  • E_NOTICE: dit is een waarschuwing die bijvoorbeeld gegenereerd wordt als je script een variabele gebruikt die niet geïnitialiseerd is.
  • E_STRICT: dit zijn waarschuwingen dat je code op een verkeerde of verouderde manier van PHP gebruik maakt. In een toekomstige PHP versie zal je code misschien niet meer zal werken.
  • E_DEPRECATED: dit zijn waarschuwingen dat je code gebruik maakt van verouderde PHP functies. In een toekomstige versie van PHP zal je code niet meer werken.
  • E_WARNING: dit zijn niet-fatale run-time waarschuwingen.

auto_prepend_file (default: )

Geef een pad naar een PHP bestand op dat uitgevoerd zal worden voor elke php-pagina dat aangeroepen wordt op je domein. Er wordt hier niet gecontroleerd of het bestand bestaat, maar je site zal het niet meer doen als dit bestand niet bestaat.

include_path (default: .:/usr/share/php)

Geef directories op, gescheiden door dubbele punten (:), waarin PHP zal zoeken naar bestanden die ge-include of op een andere manier geopend worden door je website.

mbstring.func_overload (default: 0)

Deze optie zorgt ervoor dat verscheidene PHP-functies zoals strlen(), substr() en split() zich bewust worden van multibyte-karakters. Als je problemen hebt met multibyte karakters of karaktersets (zoals UTF8) hoef je de code niet te veranderen, maar hoef je alleen deze functie aan te zetten.

Raadpleeg onderstaande tabel of php.net. Het is mogelijk om een subset van functies te overloaden. Gebruik deze functie alleen als je weet wat je doet, want het kan voor onverwachte resultaten zorgen!

Waarde Ge-overloade functies
0
1 mail
2 strlen, strpos, strrpos, substr, strtolower, strtoupper, substr_count
3 mail, strlen, strpos, strrpos, substr, strtolower, strtoupper, substr_count
4 ereg, eregi, ereg_replace, eregi_replace, split
5 mail, ereg, eregi, ereg_replace, eregi_replace, split
6 strlen, strpos, strrpos, substr, strtolower, strtoupper, substr_count, ereg, eregi, ereg_replace, eregi_replace, split
7 mail, strlen, strpos, strrpos, substr, strtolower, strtoupper, substr_count, ereg, eregi, ereg_replace, eregi_replace, split

Pas je PHP instellingen aan met een .user.ini bestand

Wanneer je iets wilt aanpassen qua PHP settings kun je hiervoor een .user.ini bestand aanmaken en deze op de webruimte plaatsen. Hierbij moet je rekening houden dat je enkel PHP instellingen kunt aanpassen die gelden voor de user (PHP_INI_USER) en voor een specifieke map op de webruimte (PHP_INI_PERDIR). Kijk op php.net om te zien welke instellingen je precies met een .user.ini bestand kan overrulen.

31