imagen

Nginx on Debian 8

Instalar Nginx en Debian 8 junto a apache

# stop apache
service apache2 stop

# Update y upgrade
apt-get update
apt-get upgrade

# Install FPM
apt-get install php5-fpm

# Install Nginx
apt-get install nginx-full

Configure php.ini for work MongoDB

en la ruta /etc/php5/fpm/php.ini agregar

[mongo]
extension=mongo.so

Al hacer cambios en php.ini debemos reiniciar el servicio php5-fpm

service php5-fpm restart

Configurar el HOST

El archivo de configuración se encuentra en /etc/nginx/sites-available/, en este directorio viene por defecto un archivo default el cual contiene la configuración basica.

Le cambiaremos en nombre, por que no lo utilizaremos, pero no lo eliminaremos, por si lo necesitamos mas adelante.

mv default default.backup

luego creamos un nuevo archivo default haciendo

nano /etc/nginx/site-available/default

se abrira nano, y pondremos la siguiente configuración:

Dominio: default

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  root /var/www/;
  index index.php index.html index.htm index.nginx-debian.html;

  server_name _;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param ENVIRONMENT production;
  }
  location ~ /\.ht {
    deny all;
  }
}

luego, copiamos el archivo

cp default blog.cristofer.io

esto hara que se cree una copia del archivo pero con el nomre blog.cristofer.io

lo abrimos y lo editamos con nano blog.cristofer.io

Dominio: blog.cristofer.io

server {
  listen 80;
  listen [::]:80;

  root /var/www/blog.cristofer.io;
  index index.php index.html index.htm index.nginx-debian.html;

  server_name blog.cristofer.io;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param ENVIRONMENT production;
  }
  location ~ /\.ht {
    deny all;
  }
}

Seteando variables de entorno para PHP

LINEA 21: fastcgi_param APP_ENV production;
donde:
APP_ENV es el nombre de la variable
production es el valor de la variable

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/api.cristofer.com;

	index index.php index.html index.htm index.nginx-debian.html;

	server_name api.cristofer.com;

	location / {
		try_files $uri $uri/ /index.php;
	}

	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_buffers 16 16k;
		fastcgi_buffer_size 32k;
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_param APP_ENV production;
	}
	location ~ /\.ht {
		deny all;
	}
}

Habilitando Puertos

#Habilitando el HOST en el puerto '8080'

server {
	listen 8080 default_server;
	listen [::]:8080 default_server;
...
...
}
Comandos Utiles
Iniciar
Detener
Recargar configuración
Reinicia el servicio
Estado del servicio