Ga naar inhoud

🐘 Het php Commando in Linux

In deze handleiding leer je hoe je php gebruikt op een Linux-systeem.

Het commando php wordt gebruikt om PHP-scripts uit te voeren via de command-line, de versie te controleren, configuraties te bekijken en modules te beheren.
PHP is een populaire scripttaal voor webontwikkeling en wordt vaak gebruikt in combinatie met webservers zoals Apache en Nginx.

Achtergrondinformatie

PHP staat voor "Hypertext Preprocessor".

  • Het kan zowel via de command-line als via webservers (mod_php, php-fpm) draaien.
  • Met php kun je snel scripts testen, configuraties controleren en modules bekijken.
  • PHP 8.3 wordt als voorbeeld gebruikt in deze handleiding.

Controleren of php aanwezig is

Controleer de aanwezigheid en versie van PHP:

php -v
Voorbeeldoutput
PHP 8.3.0 (cli) (built: Sep 10 2025 12:00:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.3.0, Copyright (c) Zend Technologies

βš™οΈ Installeren van php

PHP kan worden geΓ―nstalleerd via de standaard pakketmanager.

Installatie op Debian/Ubuntu (PHP 8.3):

sudo apt update
sudo apt install php8.3 php8.3-cli php8.3-common

Voorbeeldoutput
php8.3-cli is already the newest version (8.3.0-1ubuntu1).

Hieronder vind je enkele veelgebruikte voorbeelden van php:

  • php -v β†’ Toon de PHP-versie
  • php -m β†’ Toon alle geladen modules
  • php -i β†’ Toon gedetailleerde configuratie (vergelijkbaar met phpinfo())
  • php script.php β†’ Voer een PHP-script uit
  • php -r 'echo "Hello World\n";' β†’ Voer een enkele regel PHP-code uit
Voorbeeld

php -v
Output:
PHP 8.3.0 (cli) (built: Sep 10 2025 12:00:00) ( NTS )

PHP Modules

Om alle geladen PHP-modules te bekijken via de CLI:

php -m

Voorbeeldoutput van populaire modules:

[PHP Modules]
bcmath
calendar
ctype
curl
date
dom
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
SimpleXML
soap
sockets
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]
Zend OPcache

Op Debian/Ubuntu heeft elke module meestal een pakketnaam met php8.3-.

Voorbeelden van veelgebruikte modules:

sudo apt install php8.3-curl
sudo apt install php8.3-mbstring
sudo apt install php8.3-xml
sudo apt install php8.3-mysql
sudo apt install php8.3-gd
sudo apt install php8.3-intl
sudo apt install php8.3-zip
sudo apt install php8.3-soap
sudo apt install php8.3-bcmath
sudo apt install php8.3-readline

Tip

Na installatie van nieuwe modules is het nodig om de webserver of PHP-FPM opnieuw te starten:

sudo systemctl restart apache2
sudo systemctl restart php8.3-fpm

Belangrijke PHP-configuratiebestanden:

  • /etc/php/8.3/cli/php.ini β†’ CLI-configuratie
  • /etc/php/8.3/apache2/php.ini β†’ Apache module-configuratie
  • /etc/php/8.3/fpm/php.ini β†’ PHP-FPM-configuratie voor Nginx of andere servers

Controleren actief php.ini

Gebruik het commando:

php --ini

Voorbeeldoutput:

Configuration File (php.ini) Path: /etc/php/8.3/cli
Loaded Configuration File:         /etc/php/8.3/cli/php.ini
Scan for additional .ini files in: /etc/php/8.3/cli/conf.d
Additional .ini files parsed:      /etc/php/8.3/cli/conf.d/10-mysqlnd.ini,
                               /etc/php/8.3/cli/conf.d/20-curl.ini

  • Loaded Configuration File β†’ Actief php.ini bestand
  • Scan for additional .ini files β†’ Extra configuraties die geladen worden
  1. Maak een bestand info.php aan in je webroot:
    <?php
    phpinfo();
     ?>
    
  2. Open het in de browser: http://jouwdomein/info.php
  3. Zoek naar "Loaded Configuration File" β†’ actieve php.ini
  4. Bekijk ook Additional .ini files parsed voor extra configuraties

⚠️ Verwijder of beveilig dit bestand na gebruik, want het toont gevoelige serverinformatie.

Updaten van PHP

Update PHP en modules via de pakketmanager:

sudo apt update
sudo apt install --only-upgrade php8.3 php8.3-*

Verwijderen van PHP

Verwijder PHP indien nodig:

sudo apt remove php8.3 php8.3-cli php8.3-common

Verwijder ook modules:

sudo apt purge php8.3-*

πŸ“– Handleiding

De ingebouwde handleiding is beschikbaar via:

man php
Voorbeeld
PHP(1)                     User Commands                     PHP(1)

NAME
       php - command line interpreter for the PHP scripting language

SYNOPSIS
       php [options] [-f] <file> [--] [args...]

PHP Veiligheid en aanbevolen instellingen

Bij het draaien van PHP op een server is het belangrijk om bepaalde functies uit te schakelen en instellingen aan te passen voor veiligheid en stabiliteit.

πŸ”’ Functies uitschakelen

Sommige PHP-functies kunnen misbruikt worden om shell-commando’s uit te voeren of code op afstand te laden. Voeg deze toe aan php.ini:

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,eval,assert

Functies die vaak worden uitgeschakeld:

Functie Risico
exec, shell_exec, system, passthru, proc_open, popen Kunnen shell-commando’s uitvoeren
eval, assert Kunnen PHP-code uitvoeren
allow_url_fopen, allow_url_include Remote bestanden openen/includen (veiligheidsrisico)

βš™οΈ Aanbevolen PHP-instellingen

Instelling Aanbevolen waarde Toelichting
display_errors Off Verberg fouten op productie
log_errors On Log fouten voor debugging
error_log /var/log/php_errors.log Logbestand voor fouten
expose_php Off Verberg PHP-versie in headers
allow_url_fopen Off Voorkomt ophalen externe bestanden
allow_url_include Off Voorkomt includen van externe bestanden
session.cookie_httponly On Bescherm sessie-cookies tegen JavaScript
session.cookie_secure On (bij HTTPS) Bescherm cookies tijdens transport
open_basedir /var/www/html Beperk bestandsaccess tot specifieke directories
max_execution_time 30 Beperk runtime per script
memory_limit 128M Beperk geheugen per script

πŸ”§ Extra tips

  • Gebruik PHP-FPM of suPHP voor gebruikersisolatie.
  • Houd PHP en modules up-to-date.
  • Installeer alleen de modules die je nodig hebt (mysqli, pdo_mysql, gd, etc.).
  • Na wijzigingen in php.ini of installatie van modules, herstart de webserver of PHP-FPM:
    sudo systemctl restart apache2
    sudo systemctl restart php8.3-fpm