Instalar Nginx en Centos
Nginx es un servidor web moderno que esta teniendo un gran éxito últimamente. En nuestro caso lo necesitábamos coexistiendo en un servidor con Plesk junto a Apache, pero en otro puerto. Si además queremos que pueda ejecutar php es necesario añadir un módulo llamado php-fpm.
Para instalar nginx en centos utilizaremos los repositorios atomic y epel que lo tienen disponible. Estos repositorios necesitan ser instalados con sus respectivos scripts:
wget -q -O - http://www.atomicorp.com/installers/atomic | sh rpm -Uvh http://mirror.uv.es/mirror/fedora-epel/6/i386/epel-release-6-7.noarch.rpm
Una vez instalados para utilizarlos debemos activarlos o bien en el fichero .repo o bien directamente en el gestor de paquetes yum:
yum --enablerepo=atomic --enablerepo=epel install nginx php-fpm
Si va todo bien solo nos quedará configurarlos. Primero necesitamos saber el hostname de la máquina, podemos averiguarlo con:
hostname
Con este nombre hay que modificar el fichero /etc/nginx/conf.d/default.conf.
vim /etc/nginx/conf.d/default.conf
Aquí dentro debemos cambiar el puerto, si es queremos hacerlo, el server_name, y añadir los parámetros para la conexión con php-fpm. En nuestro caso queda tal que así pero cambiando el hostname:
server { listen 81; server_name hostname; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.php index.html index.htm; location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index Find Out More.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Una vez modificado es necesario además cambiar el parámetro cgi.fix_pathinfo a 0 en nuestra configuración php existente, esto se hace en el php.ini general:
vim /etc/php.ini
Modificamos:
cgi.fix_pathinfo=0
Ahora pasamos a configurar el php-fpm, es necesario modificar el usuario y grupo por nginx:
vim /etc/php-fpm.d/www.conf
; RPM: apache Choosed to be able to access some dir as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx
Ahora añadimos los dos nuevos demonios al arranque automatico utilizando la herramienta chkconfig:
chkconfig nginx --add chkconfig nginx on --level 235 chkconfig nginx --list nginx 0:desactivado 1:desactivado 2:activo 3:activo 4:desactivado 5:activo 6:desactivado
chkconfig php-fpm --add chkconfig php-fpm on --level 235 chkconfig php-fpm --list php-fpm 0:desactivado 1:desactivado 2:activo 3:activo 4:desactivado 5:activo 6:desactivado
Y los activamos:
service php-fpm start service nginx start
Si todo ha ido bien tendremos los servicios corriendo en sus respectivos puertos, el 9000 para php-fpm:
]#lsof -i :9000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME php-fpm 17986 root 7u IPv4 462059545 0t0 TCP localhost.localdomain:cslistener (LISTEN) php-fpm 17987 nginx 0u IPv4 462059545 0t0 TCP localhost.localdomain:cslistener (LISTEN) php-fpm 17988 nginx 0u IPv4 462059545 0t0 TCP localhost.localdomain:cslistener (LISTEN) php-fpm 17989 nginx 0u IPv4 462059545 0t0 TCP localhost.localdomain:cslistener (LISTEN) php-fpm 17990 nginx 0u IPv4 462059545 0t0 TCP localhost.localdomain:cslistener (LISTEN) php-fpm 17991 nginx 0u IPv4 462059545 0t0 TCP localhost.localdomain:cslistener (LISTEN)
Y el 81 en nuestro caso para nginx.
]# lsof -i :81 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 10496 root 6u IPv4 462010368 0t0 TCP *:81 (LISTEN) nginx 10497 nginx 6u IPv4 462010368 0t0 TCP *:81 (LISTEN)
Y con esto ya damos por concluida la entrada de instalar nginx en centos.
Un saludo!