OVH Guides

Activer l'optimisation PHP sur son Hébergement Mutualisé OVH

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 de votre site.

Comment faire profiter votre site de PHP-FPM ?

Qu'est-ce que PHP-FPM ?

PHP-FPM est une implémentation alternative à PHP FastCGI avec quelques fonctionnalités additionnelles particulièrement utiles pour les environnements à haute charge.

Nous avons adapté PHP-FPM à notre infrastructure Web dans le but d'accélérer la vitesse d'exécution des scripts PHP.

Concrètement, l'usage de PHP-FPM nous offre un gain en performance important, jusqu'à 7 fois plus rapide par rapport à PHP-CGI.

Vous trouverez dans ce guide comment activer PHP-FPM et définir la version de PHP grâce au fichier .ovhconfig. Si vous le souhaitez vous pouvez réaliser ces modifications depuis votre espace client en vous aidant de ce guide.

Il est conseillé d'utiliser les versions les plus récentes de PHP (5.6 ou 7.0) pour profiter des meilleures performances et d'une sécurité renforcée.

L'usage des versions obsolètes de PHP (5.4, ou 5.5) est fortement déconseillé et vous expose à des possibles 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 ou SFTP.

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.

Sachez également que le fichier n'est pas ajouté automatiquement sur les anciens Plans ainsi que et lors d'un changement d'offre, car certains paramètres peuvent ne pas être compatibles selon la version PHP que vous utilisez

Enfin, le fichier 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 multisite).

Le fichier .ovhconfig possède la structure suivante:

1
2
3
4
5
app.engine=php
app.engine.version=7.0
http.firewall=none
environment=production
container.image=stable

Comment désactiver PHP-FPM ?

Il suffit de modifier le fichier .ovhconfig comme suit:

1
2
app.engine=phpcgi
app.engine.version=AUTO

Quelles versions de PHP sont disponibles ?

Vous pouvez utiliser les versions PHP suivantes:

  • PHP 7.0 (version par défaut, meilleures performances)
  • PHP 5.6 (supportée jusqu'au 31-12-2018)
  • PHP 5.5 (obsolète, non recommandée)

Questions fréquentes (FAQ)

IonCube est-il disponible avec PHP-FPM ?

Oui, IonCube est disponible avec les versions suivantes:

  • PHP 5.6
  • PHP 5.5 (obsolète, et non recommandée)

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

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 fichier .ovhconfig n'existe pas. N'hésitez pas à regarder le fichier error.log de votre site afin d'avoir plus d'information sur l'erreur.

Que signifie la directive "http.firewall" ?

Cette directive vous permet d'activer un pare-feu applicatif de type mod_security.

Pour l'activer:

1
http.firewall=security

Pour le désactiver (par défaut):

1
http.firewall=none

Que signifie la directive "environment" ?

Cette directive permet de spécifier le comportement du cache des fichiers statiques ainsi que du traitement des erreurs PHP.

En mode "development" :

  • Aucun cache n'est appliqué
  • Les erreurs 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 date d'expiration plus grande, ce qui maximise la mise en cache des fichiers sur les navigateurs.
  • Les erreurs PHP n'apparaissent pas sur votre site (display_errors=Off)

Pour activer le mode "development":

1
environment=development

Pour activer le mode "production" (par défaut):

1
environment=production

Que signifie la directive "container.image" ?

Cette directive définit la version du système (Linux) utilisée pour l'environnement d’exécution de PHP.

Concrètement, elle vous permet soit de bénéficier d'une configuration stable sur le long terme (valeur stable), soit de bénéficier des dernières mises à jour sur les logiciels fournis par OVH (valeur latest).

Retrouvez plus d'information à ce sujet dans ce guide.

Détails sur le fichier .ovhconfig

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
; 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: 7.0
; for phpcgi:
;   this options is ignored (= fallback in AUTO)
;
app.engine.version=7.0

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

; __container.image__
;
; values: legacy | stable | jessie.i386 | testing
;
container.image=stable