We proberen de kwaliteit van onze kennisbank voortdurend te verbeteren.
Geef de informatie op deze pagina een waardering met de slider hierboven.
Php Opties
Inhoud |
PHP Versies en Opties
Het is bij Byte mogelijk om via het Service Panel in een eenvoudige interface te kiezen welke versie van PHP u wilt gebruiken. Tevens kunt u gemakkelijk een aantal instellingen aanpassen.
Alle opties, versies en modules van PHP op onze servers is in dit versie overzicht te vinden.
Let op!: PHP instellingen hebben grote invloed op de werking van de website. Alleen voor gevorderde gebruikers.
Let op!: omdat de configuratie van de webserver periodiek bijgewerkt wordt kan het tot 10 minuten duren voordat wijzigingen die u maakt bij PHP Instellingen zichtbaar zijn in uw website.
Versies
- U kunt bij Byte kiezen uit de volgende versies van PHP
- PHP 5 CGI (aangeraden!)
- De CGI versies van PHP worden bij elke hit op uw website als een losstaand proces gestart, en zijn daarom iets trager dan PHP als Apache-module (mod_php). In de praktijk is dit echter nauwelijks merkbaar. Daarnaast biedt PHP in CGI Mode een heleboel voordelen boven PHP als module: safe_mode staat gewoon uit, geheugenlimieten liggen hoger en u hoeft u geen zorgen te maken over bestandsrechten, zoals bij het uploaden van bestanden.
- PHP 5 CGI Zend
- Bij deze versie van PHP is de Zend Optimizer module voor PHP5 ingeladen. Deze versie heeft u alleen nodig als uw PHP bestanden met de PHP Zend Optimizer zijn ge-encodeerd.
- PHP 5 CGI Ioncube
- Bij deze versie van PHP is de Ioncube loader ingeladen. Deze versie heeft u alleen nodig als uw PHP bestanden met de Ioncube Encoder zijn ge-encodeerd.
- PHP 5 Safe Mode (mod_php5)
- Per augustus 2008 is mod_php5 beschikbaar. Deze versie van PHP is als module ingeladen in de webserver. Dat betekent onder andere dat het heel erg snel is, maar het brengt wat veiligheidsrisico's met zich mee. Daarom draait deze versie van PHP5 bij Byte met de optie safe_mode op 'On'. De kans is groot dat dit voor uw site geen belemmering vormt.
Doet u in uw site echter zaken met het uploaden van bestanden (bijvoorbeeld foto's), dan is deze versie van PHP niet geschikt, en moet u uw site in een CGI versie van PHP draaien. Ook als u Joomla gebruikt op uw site kunt u uw site het beste in CGI mode draaien.
- Per augustus 2008 is mod_php5 beschikbaar. Deze versie van PHP is als module ingeladen in de webserver. Dat betekent onder andere dat het heel erg snel is, maar het brengt wat veiligheidsrisico's met zich mee. Daarom draait deze versie van PHP5 bij Byte met de optie safe_mode op 'On'. De kans is groot dat dit voor uw site geen belemmering vormt.
Opties
Indien u PHP 5 Safe Mode geselecteerd hebt op het Service Panel kunt u de meeste opties van PHP aanpassen met een .htaccess file. Zie hiervoor Website Htaccess.
Indien u uw site echter in CGI Mode draait, wat Byte adviseert, dan kunt u geen gebruik maken van bovenstaande methode. Daarom heeft Byte een mogelijkheid ontwikkeld om op het Service Panel een aantal veelgebruikte opties van PHP aan te passen.
Let op: Instellingen die u op het Service Panel maakt gelden voor alle versies van PHP. Als u in uw website dus verschillende versies van PHP gebruikt, dan gelden voor al die versies de instellingen van het Service Panel.
U vindt hieronder de lijst met opties die u aan kunt passen via het Service Panel. Indien u hier een optie mist die noodzakelijk is voor uw applicatie, dan kunt u contact opnemen met support@byte.nl. We zullen dan bekijken of die optie toegevoegd kan worden.
Voor een volledige lijst met configuratieopties lijst 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 reference aan functies meegegeven worden. Het meegeven van argumenten by reference wordt door PHP niet aanbevolen en zal in komende versies van PHP verdwijnen. U kunt deze optie dus uitzetten om te kijken of uw code hier gebruik van maakt.
- allow_url_fopen (default: On)
(Byte adviseert echter om deze op 'Off' te zetten)- php.net
- Deze optie zorgt ervoor dat met behulp van fopen() (en dus ook met include, require, etc. ) bestanden geopend kunnen worden via het http- of ftp-protocol. Als een website niet goed geprogrammeerd is, kan een aanvaller hiermee zijn eigen code uitvoeren als onderdeel van de site, met alle gevolgen van dien.
- allow_url_include (default: Off)
- php.net
- Deze optie doet vrijwel hetzelfde als allow_url_fopen, maar dan alleen voor de functies include, include_once, require en require_once. Indien dit aanstaat vormt het een groot beveiligingsrisico, maar er zijn webapplicaties die dit nodig hebben. Om allow_url_include te kunnen gebruiken, moet ook allow_url_fopen aanstaan.
- display_errors (default: On)
- php.net
- Deze opties bepaalt of fouten die door de PHP parser opgemerkt worden in een pagina weergegeven worden aan de gebruiker. Dit kunnen bijvoorbeeld de bekende 'Headers already sent'-fouten zijn, maar ook programmeerfouten (parse-errors). Voor een productiewebsite kunt u dit uitzetten, maar het wordt dan wel lastiger om eventuele fouten op te sporen.
- log_errors (default: Off)
- php.net
- Deze optie bepaalt of fouten die in PHP-code van uw website optreden opgeslagen worden. Indien u deze optie aanzet vindt u in uw homedirectory een map /logs/php/ met daarin de logfiles.
- magic_quotes_gpc (default: On)
- php.net
- Deze optie zorgt ervoor dat de karakters ' , " en / in data uit GET-, POST- en COOKIE-variabelen automatisch gequote worden. Hierdoor kan de site minder makkelijk gebruikt worden voor Injection. Het nodigt echter ook uit tot 'lui programmeren'. Zie ook Php Magic Quotes.
- magic_quotes_runtime (default: Off)
- php.net
- Deze optie 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)
- php.net
- 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 uw 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)
- php.net
- Deze optie zorgt ervoor dat de $HTTP_GET_VARS, $HTTP_POST_VARS, enzovoort variabelen in PHP5 beschikbaar zijn. In PHP4 zijn deze variabelen altijd beschikbaar, in PHP6 zullen ze volledig uitgefaseerd zijn.
- session.use_trans_sid (default: Off)
- php.net
- Deze optie 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)
- php.net
- De uitvoer van pagina's comprimeren. Wanneer deze optie op On staat, worden pagina's gecomprimeerd als de browser een Accept-Encoding: gzip of deflate header meestuurt. Content-Encoding: gzip (respectievelijk deflate) headers worden toegevoegd aan de uitvoer.
- auto_append_file (default: )
- php.net
- Geef een pad naar een php-bestand op dat uitgevoerd zal worden na elke php-pagina die aangeroepen wordt op uw 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 uw site zal het niet meer doen als dit bestand niet bestaat.
- error_reporting (default: E_ALL | E_STRICT)
- Hiermee kunt u instellen op welk niveau fouten gerapporteerd worden. De default waarde houdt in dat alle fouten gerapporteerd worden. Door extra niveaus aan te vinken kunt u rapportering voor deze niveaus uitschakelen. De volgende error reporting niveaus kunnen uitgeschakeld worden:
- E_NOTICE: dit is een waarschuwing die bijvoorbeeld gegenereerd wordt als uw script een variabele gebruikt die niet ge-initialiseerd is.
- E_STRICT: dit zijn waarschuwingen dat uw code op een verkeerde of verouderde manier van PHP gebruik maakt en in een toekomstige PHP versie misschien niet meer zal werken.
- E_DEPRECATED: dit zijn waarschuwingen dat uw code gebruik maakt van verouderde PHP functies. In een toekomstige versie van PHP zal uw code niet meer werken.
- E_WARNING: dit zijn niet-fatale run-time waarschuwingen.
- auto_prepend_file (default: )
- php.net
- Geef een pad naar een php-bestand op dat uitgevoerd zal worden voor elke php-pagina die aangeroepen wordt op uw 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 uw site zal het niet meer doen als dit bestand niet bestaat.
- include_path (default: .:/usr/share/php)
- php.net
- Geef directories op, gescheiden door dubbele punten (:), waarin PHP zal zoeken naar bestanden die ge-include of op een andere manier geopend worden door uw website. Geef hier het volledige pad op naar de directory, dus beginnend met '/home/users/domeiftp/'
- mbstring.func_overload (default: 0)
- php.net
- Deze optie zorgt ervoor dat verscheidene PHP-functies zoals strlen(), substr() en split() zich bewust worden van multibyte-karakters. Als u problemen heeft met multibyte karakters of karaktersets zoals UTF8 hoeft u uw code niet te veranderen, maar hoeft u alleen deze functie aan te zetten.
Raadpleeg onderstaande tabel of php.net om uit te zoeken welke optie u hier moet kiezen. Het is namelijk mogelijk om een subset van functies te overloaden. Gebruik deze functie alleen als u weet wat u doet, want het kan voor onverwachte resultaten zorgen!
| Waarde | Ge-overloade functies |
|---|---|
| 0 | - |
| 1 | |
| 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 |
Opcode cache
Op dit moment is het nog niet mogelijk om APC, xcache of een andere opcode cache te gebruiken. We zijn aan het onderzoeken hoe we dit als optie aan kunnen bieden.
Nog niemand heeft een waardering kenbaar gemaakt voor dit artikel