Version et configuration PHP pour les projets open-source

Documentation et tutoriels

  • webo-facto
  • Projets

Sommaire

Introduction

Avec le webo-facto, vous pouvez configurer la version et les options php de votre projet open-source. Vous disposez des versions php 5.4 et php 5.6. La configuration des options concernente les variables suivantes :  

  • session.cache_limiter
  • date.timezone
  • session.auto_start
  • default_charset
  • expose_php
  • max_file_uploads
  • allow_url_fopen
  • upload_max_file_size
  • display_errors
  • post_max_size
  • memory_limit
  • max_input_vars

documentation php pour la configuration

Choix de la version PHP

la création d’un projet

Il faut noter que le choix de version n’est pas toujours permis. C’est le cas pour les projets WordPress avec l’installation automatique où la dernière version php est installée par défaut.

Configuration PHP

La configuration de la version PHP pour votre site se fait depuis sa fiche détaillée. Rendez-vous dans l’onglet “Projet” à partir du menu général, et accédez à la liste de vos projets. Cliquez sur le nom de votre projet pour accéder à sa fiche.

Sur la fiche détaillée, cliquez sur le lien “Modifier” dans la rubrique “Réglages PHP” ; ou bien cliquez sur “Modifier”, ou bien sur “Réglages PHP” dans le cadre “Actions” à gauche de l’écran.

Vous pouvez modifier la version et la configuration PHP depuis le formulaire. En cliquant sur le bouton “Réinitialiser”, vous retrouvez la configuration PHP par défaut. Sauvegardez votre configuration en cliquant sur le bouton “Enregistrer”.

Etat de la configuration PHP

Suite aux modifications des options de configuration PHP, vous pouvez constater un changement de l’état sur la fiche détaillée du projet. Lorsque la configuration n’a pas été modifiée, elle est notée “Par défaut”. Lorsqu’elle a été modifiée, elle est notée “Personnalisée”.

Détails des variables pour la configuration PHP

session.cache_limiter

Le session.cache_limiter modifie la méthode de cache navigateur en adaptant les entêtes HTTP envoyés au client, lors de l’utilisation d’une session PHP :

- nocache : le cache navigateur client est désactivé.

- public : le cache navigateur client est activé.

- private : le cache navigateur client est activé et le cache proxy est désactivé.

- private_no_expire : les caches du navigateur et du proxy sont désactivés et la suppression de l’entête HTTP expire.

Le mode de gestion du cache peut impacter les performances du site. Certains navigateurs comme Mozilla supportent mal la valeur "private". Dans ce cas il est préférable de choisir la valeur "private_no_expire”.

session.auto_start

Le session.auto_start crée ou récupère automatiquement une session existante sur le serveur. C’est l’équivalent de la méthode session_start().

La formule $_SESSION se retrouve remplit à cette issue.

expose_php

Le expose_php active l’affichage de la version de PHP dans les entêtes HTTP.

Cette option est utile sur les sites en développement. Elle est généralement désactivée sur un site en production (à but statistique).

allow_url_fopen

Le allow_url_fopen active l’ouverture de fichier distant via les protocoles http et ftp, avec des méthodes telle que fopen().

Il est recommandé de la conserver désactivée tant qu'elle n'est pas nécessaire, car cette option peut ouvrir des failles de sécurité qui pourraient compromettre le projet.

display_errors

Le display_errors  active ou non l’affichage des erreurs à l’écran. :

- stderr n’affiche pas les erreurs.

- stdout affiche les erreurs.

Cette option est utile pour un site en développement. Elle doit être désactivée pour les sites en production car les détails fournis dans les messages d’erreurs pourraient faire apparaître des informations sensibles.

memory_limit

Le memory_limit permet de définir la mémoire maximum que peut consommer une page lors de son chargement.

La valeur memory_limit doit être plus élevée que la valeur de post_max_size, sinon la mémoire pourrait saturer avant le traitement complet des données $_POST.

Augmenter la mémoire disponible permet de générer des pages plus complexes et protège de l'échec de l'affichage du site complet par manque de mémoire

date.timezone

Le date.timezone définit le fuseau horaire utilisé par défaut sur les fonctions date et heure de votre site.

La valeur Europe/Paris est généralement utilisée pour un site en France.

default_charset

Le default_charset définit le jeu de caractères par défaut. Cette valeur est utilisée par les méthodes htmlentities(), htmlspecialchars(), html_entity_decode() et pour les fonctions telles que iconv et mbstring.

C’est aussi la valeur que prendra l’entête "HTTP Content-Type" si cette dernière n’est pas personnalisée via "header()". C’est généralement la valeur UTF-8 qui est utilisée.

max_file_uploads

Le max_file_uploads permet de définir le nombre de fichiers pouvant être envoyés simultanément au serveur au sein d’une même requête.

Il est intéressant de limiter ce paramètre à une faible valeur et de l’augmenter en cas de besoin. En effet, une valeur trop importante peut créer une attaque par déni de service et saturer le site de requêtes à gérer.

upload_max_file_size

Le upload_max_file_size définit la taille maximum autorisée pour un fichier envoyé sur le serveur.

Attention, une valeur élevée peut rapidement saturer le quota disque du site, pouvant produire une perte de données par défaut d’écriture.

post_max_size

Le post_max_size définit le poids maximum des données postées. Cette valeur inclut le poids des fichiers envoyés sur le serveur.

La valeur de "post_max_size" devra donc être supérieure à la valeur de "upload_max_file_size".

Si la valeur est dépassée lors d’un envoi POST, alors les superglobales "$_POST" et "$_FILE" seront vides.

max_input_vars

Le max_input_var permet de définir le nombre maximum de variables pour les entrées "$_GET", "$_POST" et "$_COOKIE". Les éléments supplémentaires seront ignorés.

Un nombre de valeur trop important peut  créer une attaque par déni de service et saturer le site avec un trop grand nombre de de requêtes à gérer.