Ce guide vous aidera à activer PHP-FPM sur votre hébergement web mutualisé chez OVH, en vue d'améliorer les temps de réponse PHP.

Comment faire profiter votre site de PHP-FPM ?


 
Qu'est-ce que PHP-FPM ?

Nous avons adapté PHP-FPM à notre infrastructure Web, afin que vous puissiez en tirer profit, dans le but d'accélèrer les réponses PHP.

En effet il est compilé avec l'opcode-caching ce qui permet de minimiser les appels disques ainsi que le processing de votre code PHP.

Nous obtenons ainsi des performances jusqu'à 7 fois plus rapides dans nos laboratoires de tests, par rapport à l'ancien mécanisme.


Attention : à partir de PHP-FPM, et pour des raisons de sécurité, les options suivantes sont désactivées (dépréciées par PHP) :

register_globals
magic_quotes_gpc


Concernant magic_quote_gpc :

    • Sans PHP-FPM :

PHP 5.2 : magic_quotes_gpc activé
PHP 5.3 : magic_quotes_gpc activé
PHP 5.4 : magic_quotes_gpc désactivé

    • Avec PHP-FPM :

PHP 5.3 : magic_quotes_gpc activé
PHP 5.4 : magic_quotes_gpc désactivé
PHP 5.5 : magic_quotes_gpc désactivé

Il est conseillé d'utiliser les versions les plus récentes de PHP (5.5 ou 5.6) car les anciennes versions ne sont plus maintenues à jour par l'éditeur et peuvent comporter des failles de sécurité.
 
 

Comment activer PHP-FPM ?


Il vous suffit de déposer le fichier .ovhconfig à la racine de votre espace disque, via FTP.

ATTENTION : Le fichier .ovhconfig est présent par défaut depuis les Hébergements Web 2014. Sur les offres antérieures, il faudra le créer et le placer à la racine de votre espace disque.
Il n'est pas ajouté automatiquement sur les anciens Plans et lors d'un changement d'offre, car certains paramètres peuvent ne pas être compatibles selon la version PHP que vous utilisez.

NB : Le fichier .ovhconfig ne peut être placé qu'à la racine ou dans un répertoire de premier niveau, il n'est pas possible d'utiliser plusieurs fichiers pour faire cohabiter des configurations PHP différentes sur un même hébergement (sauf multi-domaine correctement déclaré).

Ce fichier .ovhconfig devra contenir le code :

app.engine=php
app.engine.version=5.4
http.firewall=none
environment=production

Si PHP-FPM plante, le moteur utilisera en secours l'ancien moteur PHP.
 

Quelles versions de PHP sont disponibles ?


Vous pouvez utiliser les versions PHP :
    • PHP 5.6 (ioncube non disponible pour le moment)
    • PHP 5.5
    • PHP 5.4
    • PHP 5.3 (version obsolète non recommandée)

    • ionCube est également disponible

Attention, une fois le .ovhconfig en place, la version PHP utilisée est celle définie par app.engine.version les directives de votre .htaccess comme SetEnv PHP_VER ... sont alors ignorées
 
 

J'ai créé mon .ovhconfig et j'ai une erreur "Not Implemented"


Cela signifie que le moteur ou la version spécifiée dans votre .ovhconfig n'existe pas
N'hésitez pas à regarder l'error.log de votre site afin d'avoir plus d'information sur l'erreur.
 
 

Que signifie la directive environment ?


Elle permet de spécifier le cache des fichiers statiques ainsi que le comportement des erreurs PHP
en mode development:
- aucun cache n'est appliqué
- les logs PHP apparaissent sur votre site (display_errors=On)

en mode production: (option par défaut)
- les fichiers statiques tels que images, vidéo, audio ont une expiration plus grande ce qui maximise la mise en cache des fichiers sur les navigateurs.
- les logs PHP n'apparaissent pas sur votre site (display_errors=Off)
 
 

Que signifie la directive http.firewall ?


Cette directive vous permet d'activer un firewall applicatif de type mod_security,
pour cela mettez security

http.firewall est par défaut à none
 
 

IonCube est-il disponible avec PHP-FPM ?


Oui, IonCube est désormais disponible avec les versions
  • 5.5
  • 5.4
  • 5.3
 

Comment désactiver PHP-FPM ?


Il suffit de mettre dans votre .ovhconfig:

app.engine=phpcgi
app.engine.version=AUTO
 

Détails sur le fichier .ovhconfig


Voici le détail d'application du fichier de config :


; ovhconfig
;
; this file must be placed in $HOME/.ovhconfig or in $DOCUMENT_ROOT/.ovhconfig

; __app.engine__
;
; values: php (php engine + opcache accelerator)
; notice: if php, a phpcgi engine will be activated as fallback (if previous engine crash)
;
;   php:
;       IMPORTANT: register_globals and magic_quotes_gpc are off for security
;       php optiones .htaccess (like php version) are ignored
;   phpcgi:
;       IMPORTANT this is a fallback to previous system
;       in this case __app.engine.version__ will be considerated as AUTO and php version will be old system
;       (meaning depending .htaccess or .phpX extension)
;
app.engine=php

; __app.engine.version__ specify version of your engine
;
; for php:
;   default: 5.4
; for phpcgi:
;   this options is ignored (= fallback in AUTO)
;
app.engine.version=5.4

; __http.firewall__ used to add application firewall  (filter http requests)
;
; values: none | security
; default: none
;
http.firewall=none

; __environment__
;
; values: production | development
;
;   production:
;       apache will maximise local cache
;       mod_expires will grow up TTL of js, css, pdf, images, video, audio
;       you can override it changing expiration explicitly in your .htaccess
;       feel free to look on our guide.
;   development:
;       no expiration is added, files are not locally in cache,
;       will speed up tests but decrease performances
;
; choosen environment will also be available in your variable ENVIRONMENT unix env
;
; default: production
;
environment=development