Skip to main content

phpValue et phpIni
sont dans un bateau …

… Php.ini tombe à l’eau… que reste-t-il de vos « values » ?

Dès lors que l’on a besoin de modifier la configuration, on a tous pris l’habitude de modifier notre fichier php.ini. Et puis, toujours penser à mettre à jour les deux versions du fichier de conf. PHP, celui d’Apache et celui de l’interface de commande.

C’est une très mauvaise habitude tout ça et l’on va changer cette façon de faire. Car à chaque mise à jour de PHP, par exemple, vous allez perdre Nous allons utiliser le principe des VirtualHost ou des .htaccess

Tout d’abord, un petit retour d’optimisation sur la configuration d’Apache

Le fichier .htaccess est très utile & flexible, il fonctionne partout et les modifications sont traitées instantanément. Mais l’inconvénient est que les règles écrites ne peuvent pas être mis en cache par Apache, le serveur analyse le fichier pour chaque requête.

Si vous déplacez les règles de votre fichier .htaccess à votre fichier de VirtualHost, les règles seront mises en cache et les performances d’Apache vont s’améliorer grandement. Malheureusement, vous ne pouvez pas accéder aux fichiers de configuration d’Apache sur les serveurs mutualisés.

Modification de valeurs PHP dans un VirtualHost

Nous utiliserons principalement deux instructions pour modifier notre configuration de PHP, php_value pour modifier une valeur & php_flag pour activer ou désactiver une option.
Sur le site de PHP, vous trouverez plus d’informations sur ces instructions.
Comment modifier la configuration de PHP

Maintenant voyons pour finir, une configuration pour Symfony2, sur un serveur de développement :

<VirtualHost *:80>
  ServerName www.projet.loc
  DocumentRoot /home/user/dev/projet/web
 
  <Directory /home/user/dev/projet/web/>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
  </Directory>
 
  DirectoryIndex app_dev.php
  <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
    RewriteRule ^ /app_dev.php [L]
  </IfModule>
  
  <IfModule mod_php5.c>
    php_flag html_errors on
    php_flag display_errors on
    php_flag short_open_tag off
    php_value date.timezone "Europe/Paris"
    php_value xdebug.max_nesting_level "250"
  </IfModule>
  
  # VARIABLE ENVIRONNEMENT ------------------------------------
 
  # / VARIABLE ENVIRONNEMENT ----------------------------------
 
  <ifModule mod_headers.c>
    <filesMatch "\.(ico|jpe?g|png|gif|swf)$">
      Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    <filesMatch "\.(css)$">
      Header set Cache-Control "max-age=604800, public"
    </filesMatch>
    <filesMatch "\.(js)$">
      Header set Cache-Control "max-age=604800, public"
    </filesMatch>
  </ifModule>
 
  Header set X-UA-Compatible "IE=edge,chrome=1"
 
</VirtualHost>

Ludovic BERLEMONT

Développeur Web spécialisé PHP5 depuis le début des années 2000, passionné des technologies du web et totalement autodidacte, ma soif de connaissance me pousse à progresser continuellement et découvrir de nouvelles fonctionnalités. Retrouvez moi sur Twitter/@OctenFr.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *