Ver índice de contenidos del libro

9.2. nginx

Si empleas el servidor nginx, esta es la configuración mínima necesaria para ejecutar la aplicación:

server {
    server_name domain.tld www.domain.tld;
    root /var/www/project/web;
 
    location / {
        # intenta servir el archivo; si no se puede, usa el controlador frontal
        try_files $uri /index.php$is_args$args;
    }
 
    # si tienes dos controladores frontales (para dev y prod) descomenta la
    # siguiente línea
    # location ~ ^/(index|index_dev)\.php(/|$) {
    location ~ ^/index\.php(/|$) {
        # valor por defecto para Ubuntu
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        # valor por defecto para CentOS
        #fastcgi_pass   unix:/var/run/php-fpm/www.sock;
 
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
 
        # Prevents URIs that include the front controller. This will 404:
        # http://domain.tld/index.php/some-path
        # Enable the internal directive to disable URIs like this
        # internal;
    }
 
    # devuelve 404 para todos los archivos PHP porque ya no tenemos un
    # controlador frontal que sirva la petición
    location ~ \.php$ {
        return 404;
    }
 
    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}