Ejecución de scripts
Ejecución de scripts PHP
1) Módulo php de Apache2
Módulo de apache: libapache2-mod-php5. No es compatible con worker.
2) CGI - FastCGI
La ejecución del código php se hace por un proceso independiente del servidor web. Vamos a usarlo con el módulo de procesamiento worker, para ello:
- Instalamos el paquete php5-cgi.
- Creamos un fichero de configuración en conf.d con las siguientes directivas:
ScriptAlias /local-bin /usr/bin
AddHandler aplication/x-httpd-php5 php
Action aplication/x-httpd-php5 /local-bin/php-cgi
FastCGI es un protocolo para interconectar programas interactivos con un servidor web. FastCGI es una variación de la ya conocida Common Gateway Interface (CGI ó Interfaz Común de Entrada). El principal objetivo de FastCGI es reducir la carga asociada con el hecho de interconectar el servidor web y los programas Common Gateway Interface, permitiéndole a un servidor atender más peticiones a la vez.
- http://imcosta.net/2013/07/apache-mpm-worker-fastcgi-php-fp/
- https://www.linode.com/docs/websites/apache/running-fastcgi-php-fpm-on-debian-7-with-apache
apt-get remove liabpache2-mod-php5
apt-get install libapache2-mod-fastcgi libapache2-mpm-worker php5-fpm
a2enmod actions fastcgi
/etc/apache2/mods-enabled/fastcgi.conf
<IfModule mod_fastcgi.c>
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</IfModule>
3) Aceleradores PHP
El objetivo principal de un acelerador PHP es guardar los scripts php ya compilando, obteniedno un mayor rendimiento en la respuesta del servidor. El acelerador se puede usar usando el módulo php de apache o usando fastcgi.
http://www.maestrosdelweb.com/editorial/aceleradores-de-php/
Nosotros vamos a utilizar el acelerador apc:
apt-get install php-apc
En el archivo de configuración /etc/php5/conf.d/20-apc.ini
apc.enabled=1
apc.shm_size=128M
apc.ttl=3600
apc.user_ttl=7200
apc.gc_ttl=3600
apc.max_file_size=1M
Para comprobar que apc está funcionando:
php -i |grep apc.enabled
Recuerda que si usas FPM, tienes que inicializar los dos procesos:
service apache2 restart
service php5-fpm restart
4) Varnish
Varnish es un acelerador HTTP que funciona como un proxy inverso. Se situa por delante del servidor web, cacheando la respuesta de dicho servidor web en memoria. La próxima vez que un visitante visite la misma URL, la página será servida desde Varnish en lugar de desde el servidor web, ahorrando recursos en el backend y permitiendo más conexiones simultáneas.
- Presentación Madrid DevOps (
- http://pabloroman.es/blog/2013/01/20/como-usar-varnish-para-acelerar-tu-sitio-web/
- http://pabloroman.es/blog/2013/05/20/varnish-3-trucos-y-consejos/
- https://scalr-wiki.atlassian.net/wiki/display/docs/Install+Varnish+HTTP+Accelerator+with+WordPress
- http://kontsu.wordpress.com/2012/10/10/apache-2-performance-boost-with-varnish-yslow/