Apache2 MPM-Worker, PHP-FPM, MySQL en Ubuntu
Escrito por: Guillermo Garron
Fecha: 2013-04-29 11:16:35 00:00
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