… 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>