Apache2 MPM-Worker, PHP-FPM, MySQL en Ubuntu

Escrito por:
Fecha: 2013-04-29 11:16:35 00:00

Version en ingles

En el último artículo, que hablo sobre las ventajas de Apache MPM-Worker, vimos precisamente el porque convendria instalarlo. Ahora veremos como hacerlo en Ubuntu.

Lo que se va a instalar en este tutorial:

  • Apache 2.2 MPM-Worker
  • PHP-FPM
  • MySQL server

Vamos a suponer que Ubuntu ya esta instalado y funcionando en tu máquina.

Apache

Cuando se instala Apache directamente, Ubuntu por defecto instala le binario, con la opción MPM-Worker.

   sudo apt-get install apache2

Ahora bien, es mejor estar seguro y usar este comando en su lugar.

  sudo apt-get install apache2-mpm-worker

Con eso tendremos apache instalado, si lo que quieren servir con Apache son archivos estáticos, aqui concluye la instalación.

Es solo configurar y su eficiencia sera bastante parecida a la de Nginx, pero para aquellos acostumbrados a Apache, esta es una mejor opción.

PHP

Ahora bien, hoy en dia casi nadie tiene páginas estáticas únicamente, y la mayoria utiliza algún tipo de CMS. Para poder utilizar estos, es necesario que Apache pueda interpretar PHP. Dada la configuracion de arriba esto no será posible usando mod_php. Por lo que usaremos mod_cgi y un interprete externo de PHP. En este caso PHP-FPM.

  sudo apt-get install libapache2-mod-fastcgi php5-fpm php5 php5-curl php5-gd php5-imagick php-apc php5-mysql

Este comando instala algunos paquetes que pueden no ser necesarios para tu aplicación, pero que para Wordpress si lo son. Estos son: php5-curl php5-gd php5-imagick php-apc, puedes omitirlos si no los requieres.

Ahora debemos iniciar algunos modulos en Apache.

  sudo a2enmod actions fastcgi alias

Y finalmente re-iniciar Apache.

  sudo service apache2 restart

MySQL

  sudo apt-get install mysql-server mysql-client

Configurar Apache para PHP

Debemos ahora indicar a Apache como hacer uso del interprete externo para PHP.

Lo único necesario es editar la sección <VirtualHost> y agregar lo siguiente:

 <IfModule mod_fastcgi.c>
  AddHandler php5-fcgi .php
  Action php5-fcgi /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>

Para activarlo para todos los hosts virtuales, debes agregar un archivo en /etc/apache2/conf.d/ y colocar las lineas arriba en ese archivo, que puedes llamar php-fpm.conf

Conclusión

Ahora estas listo para instalar tus aplicaciones PHP en un Apache capaz de soportar cargas similares a Nginx. Claro está, aún debes ver la forma de minizar el uso de PHP y MySQL, con APC or Memcache. Pues ahora esos serán tus cuellos de botella.

Finalmente, si comienzas a recibir errores de PHP fijate que este archivo /etc/php5/fpm/pool.d/www.conf contenga esta línea:

 listen = /var/run/php5-fpm.sock