Services et serveurs

PHP : Configuration et sécurisation

Table des matières

logo-php



Introduction



Le principal fichier de configuration de php est php.ini.

Pour la configuration avec le serveur apache, il se trouve soit dans /etc/php.ini , /etc/php/X.Y/apache2/php.ini ou /etc/php/apache2-phpX.Y/php.ini (où X.Y est la version de PHP utilisée)
Pour la configuration si on appelle en ligne de commande php, il se trouve soit dans /etc/php.ini(le même que précédemment) , /etc/php/X.Y/cli/php.ini ou /etc/php/cli-phpX.Y/php.ini (où X.Y est la version de PHP utilisée)
Il y a le même genre pour CGI et FPM.

Par défaut, la configuration de PHP "fonctionne bien".

Néanmoins, il est possible de changer quelques informations dedans. Cela peut être utile dans certains cas.

Après chaque modification, si PHP est utilisé avec apache, il est évidemment nécessaire de recharger la configuration d'apache (ou httpd) pour prendre en compte les modifications (une des 3 commandes suivant la distribution) :

Code BASH :
/etc/init.d/apache2 reload

Code BASH :
systemctl reload httpd.service

Code BASH :
systemctl reload apache2.service



Gestion de plus gros fichiers



Si le site web installé est destiné à uploader des fichiers, il est possible que PHP vous refuse des fichiers au delà d'une limite.

Modifier dans ce cas les lignes
Code BASH :
# Total maximum envoyé par un POST
post_max_size = 8M
# Taille maximum autorisée pour l'envoi de fichiers
upload_max_file_size = 16M



Modifier le fuseau horaire



Il est important de définir le fuseau horaire du serveur, sinon, les fonctions traitant des dates peut devenir fausse :

Code BASH :
date.timezone = "Europe/Paris"



Ne pas afficher la version de PHP pour plus de sécurité



Pour renforcer la sécurité, on peut masquer le fait que PHP est installé sur le serveur (incluant la version de PHP dans les en-têtes HTTP de la réponse (X-Powered-By : PHP/5.3.7).
Pour cela, on passe à Off la variable expose_php

Code BASH :
expose_php = Off


Gestion des logs



Si on veut améliorer le débug, on peut activer les logs de PHP :

Code TEXT :
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log = /var/log/php/error.log
max_input_time = 30


Evidemment on créé le dossier de log PHP :

Code BASH :
mkdir /var/log/php
chown apache /var/log/php
Cette page a été vue 4696 fois