Buscar


imprimir pdf

Activar la optimización de PHP en un alojamiento compartido OVH


Esta guía explica cómo activar PHP-FPM en un alojamiento de OVH para mejorar los tiempos de respuesta de PHP.


¿Qué es PHP-FPM?


Hemos adaptado PHP-FPM a nuestra infraestructura web para que todos nuestros clientes puedan disfrutar de él, acelerando la respuesta de PHP.
PHP-FPM está compilado con un sistema de opcode cache, lo que permite minimizar las peticiones a los discos y el procesamiento del código PHP.
Esto permite obtener un rendimiento hasta 7 veces más rápido que el anterior mecanismo en nuestros laboratorios de prueba.

Atención: Por motivos de seguridad, con PHP-FPM se desactivan las siguientes opciones (deprecadas por PHP):

register_globals
magic_quotes_gpc


Ciertas variables del servidor se modificarán si utilliza la optimización de PHP-FPM :


Variable
max_execution_time 120s -> 300s
max_input_vars 2000 -> 16000
memory_limit 128M -> 512M




¿Cómo activar PHP-FPM?


Lo único que debe hacer es subir un archivo .ovhconfig a la raíz de su cuenta (HOME) o de su sitio web (también llamada DOCUMENT_ROOT, normalmente en la carpeta «www»).
Dicho archivo .ovhconfig deberá contener el siguiente código:

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

Si PHP-FPM deja de funcionar, el motor utilizará en su lugar el antiguo motor de PHP.


¿Cuáles son las versiones de PHP compatibles?


Atención, una vez haya subido el archivo .ovhconfig, la versión de PHP utilizada será la que indique app.engine.version, ignorando las directivas del .htaccess de OVH como SetEnv PHP_VER...


Puede utilizar las siguientes versiones de PHP:
  • 5.5
  • 5.4 (versión por defecto)
  • 5.3

Para versiones anteriores deberá desactivar PHP-FPM y utilizar el .htaccess.
Más adelante se explica cómo desactivar el PHP-FPM.


He creado mi .ovhconfig y me aparece el error «Not Implemented»


Ese error significa que el motor o la versión indicados en el .ovhconfig no existen.
No dude en consultar el error.log de su sitio web para conocer los detalles del error.


¿Qué significa la directiva environment?


Permite especificar la caché de los archivos estáticos y el comportamiento de los errores de PHP.
En modo «development»:
  • no se aplica ninguna caché,
  • los logs de PHP aparecen en el sitio web (display_errors=On).

En modo «production» (opción por defecto):
  • los archivos estáticos como imágenes, vídeo o audio tienen un período de expiración mayor, lo que maximiza el cacheado de los archivos en los navegadores.
  • los logs de PHP no aparecen en el sitio web (display_errors=Off).


¿Qué significa la directiva http.firewall?


Esta directiva permite activar un firewall de aplicaciones web de tipo mod_security.
Por defecto, http.firewall está en «none». Para activarlo, cámbielo por «security».


¿IonCube está disponible con PHP-FPM?


Sí, IonCube ya está disponible con las versiones 5.4 y 5.3 (en el momento de la redacción de esta guía, aún no es compatible con la versión 5.5).


¿Cómo desactivar PHP-FPM?


Solo tiene que escribir lo siguiente en el archivo .ovhconfig:

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


La versión de PHP en este modo es la versión indicada en el .htaccess

Consulte la guía Opciones de PHP en alojamiento compartido.


Detalles sobre el archivo .ovhconfig


A continuación se ofrece un ejemplo explicado del archivo de configuración:


; 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 or 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 or 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=production