Instalar un servidor web desde 0: ubuntu 12.04, nginx, varnish y mysql
Acabo de reinstalar mi servidor web, y a continuación voy a detallar cuales son los pasos necesarios que he ido ejecutando para dejar el servidor tal y como quería.
Opciones de configuración básicas
Lo primero de todo es actualizar los repositorios y los paquetes por si el sistema no está a la última versión.
apt-get update
apt-get upgrade
Cambiar la contraseña que viene por defecto en el equipo.
passwd
El siguiente paso es instalar algunas utilidades sin las cuales no me encuentro cómodo.
apt-get install vim
El servidor se encontraba en el timezone UTC, y prefiero tenerlo en el mismo que en el horario local en el que voy a trabajar, esto evitará algunos problemas de fechas, puedes ver cual es el timezone de tu equipo ejecutando.
cat /etc/timezone
Y puedes configurar el timezone local.
echo 'Europe/Madrid' > /etc/timezone
Instalé el demonio ntpd para mantener la hora del servidor actualizada.
apt-get install ntpd
apt-get remove ntpdate
Creamos un alias para el buzon de correo del usuario root, para que el sistema pueda enviarnos mensajes.
#/etc/aliases
# Other aliases
root: daniel.gonzalez@mi-dominio.es
Mysql
Instalamos los paquetes.
apt-get install mysql-server mysql-client
La instalación por defecto de mysql puede venir sin contraseña de root, como es mi caso.
USE mysql;
UPDATE user SET password=PASSWORD('nuevo_pass') WHERE user='root';
Me gusta poder conectarme de forma remota a MySQL, para ejecutar scritps, backups, ect, por lo que tengo que realizar algunos ajustes.
USE mysql;
UPDATE user set host = '%' where user = 'root' and host = 'ubuntu-12';
Edito el fichero de configuración de mysql y comento la siguiente linea.
#/etc/mysql/my.conf
#bind-address = 127.0.0.1
Reinicio el servicio.
/etc/init.d/mysql restart
Nginx y php-fpm
Nginx no interactua exactamente igual que apache con php, php-fpm es un servio igual que nginx, al que este enviará las peticiones que le indiquemos para que sean evaluadas por el interprete.
Instalamos nginx, y php y desinstalamos apache.
apt-get remove apache2
apt-get install nginx php5-fpm php5-cli php5-suhosin php5-myqsql
Seguramente quieras instalar más módulos de apache, puedes ver cuales hay disponibles.
apt-cache search php | grep php
Además si piensas utilizar composer, tendrás que editar lo siguiente en el fichero de configuración de suhosin.
;/etc/php5/conf.d/suhosin.ini
suhosin.executor.disable_eval = On
Vamos ahora a conectar ambos servicios a traves de web sockets. Editamos el fichero /etc/nginx/sites-enabled/default para que nos quede de esta manera.
server {
root /var/www/tu_sitio_por_defecto/current/web;
index app.php index.php index.html;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
Indicandole a Varnish que es lo que tiene que derivar a php-fmp y donde se encuentra. Nos aseguramos que php-fpm tiene la misma configuración de socket en /etc/php5/fpm/pool.d/www.conf.
;listen = 127.0.0.1:9000
listen = /var/run/php5-fpm.sock
Y reiniciamos los dos servicios.
/etc/init.d/nginx restart
/etc/init.d/php5-fpm restart
Continuará en los próximos días ...
Publicado el
Actualizado por última vez el