Guide d'installation et de configuration de PHP, avec Apache et PHP-FPM, sur un serveur Debian.
Changer de version
Installez une nouvelle version de PHP, ici PHP 8.3, avec le module Apache et PHP-FPM :
sudo apt update
sudo apt install php8.3 php8.3-cli php8.3-fpm libapache2-mod-php8.3
Désactivez l'ancienne version et activez la nouvelle dans Apache si vous utilisez mod_php :
sudo a2dismod php7.2
sudo a2enmod php8.3
sudo systemctl restart apache2
php -v
Sélectionnez la version utilisée en ligne de commande :
sudo update-alternatives --display php
sudo update-alternatives --config php
Exécuter PHP en FastCGI (PHP-FPM)
À partir d'Apache 2.4.10, utilisez SetHandler pour exécuter PHP comme processus FastCGI :
<FilesMatch "\.php$">
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost"
</FilesMatch>
Démarrez le service PHP-FPM, puis rechargez Apache :
sudo systemctl start php8.3-fpm
sudo systemctl enable php8.3-fpm
sudo systemctl restart apache2
Directives supplémentaires PHP
max_input_vars = 1000 ; Limite le nombre maximal de variables que PHP accepte via des requêtes POST, GET ou COOKIE.
post_max_size = 8M ; Limite la taille maximale des données POST envoyées via un formulaire.
upload_max_filesize = 2M ; Limite la taille maximale des fichiers téléversés via un formulaire.
Directives supplémentaires Apache
LimitRequestFieldSize 8190 # Taille maximale d'un champ d'en-tête HTTP
LimitRequestFields 100
LimitRequestBody 0 # Limite la taille maximale du corps d'une requête (comme une requête POST).
LimitRequestLine 8190 # Limite la taille maximale de la ligne de requête HTTP (méthode, URI, version HTTP).
LimitRequestHeaderSize 8190 # Limite la taille maximale des en-têtes de la requête HTTP.
Vérifier les valeurs
php -i | less
apachectl -S