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.
Dans votre espace client
Vous trouverez dans ce guide comment activer le PHP FPM et définir la version de PHP grâce au fichier .ovhconfig, vous pouvez si vous le souhaitez réaliser cela plus simplement depuis votre espace client en vous aidant de ce guide : Mutualisé : Configurer la version de PHP depuis votre espace client

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.4 : magic_quotes_gpc désactivé

  • Avec PHP-FPM :

PHP 5.4 : magic_quotes_gpc désactivé
PHP 5.5 : magic_quotes_gpc désactivé
Attention
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.6
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 7.0
  • PHP 5.6 (version par défaut)
  • PHP 5.5 (bientôt obsolète non recommandée)
  • PHP 5.4 (obsolète)
  • PHP 5.3 (obsolète)

  • 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.6
  • 5.5
  • 5.4
Pour l'utiliser, il faudra se servir de l'encodeur IonCube pour encoder vos scripts PHP, ceux-ci pourront ainsi fonctionner sur votre hébergement mutualisé. Pour plus d'informations, vous pouvez vous rendre sur la FAQ IonCube : FAQ IonCube
.

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.6
; for phpcgi:
;   this options is ignored (= fallback in AUTO)
;
app.engine.version=5.6

; __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