π 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
phpkun 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:
βοΈ Installeren van php¶
PHP kan worden geΓ―nstalleerd via de standaard pakketmanager.
Installatie op Debian/Ubuntu (PHP 8.3):
Hieronder vind je enkele veelgebruikte voorbeelden van php:
php -vβ Toon de PHP-versiephp -mβ Toon alle geladen modulesphp -iβ Toon gedetailleerde configuratie (vergelijkbaar met phpinfo())php script.phpβ Voer een PHP-script uitphp -r 'echo "Hello World\n";'β Voer een enkele regel PHP-code uit
PHP Modules
Om alle geladen PHP-modules te bekijken via de CLI:
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:
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:
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
- Maak een bestand
info.phpaan in je webroot: - Open het in de browser:
http://jouwdomein/info.php - Zoek naar "Loaded Configuration File" β actieve php.ini
- 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:
π Handleiding¶
De ingebouwde handleiding is beschikbaar via:
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:
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.iniof installatie van modules, herstart de webserver of PHP-FPM: