Nginx找不到symfony2文件

时间:2015-07-18 17:59:14

标签: symfony nginx

我正在使用nginx配置虚拟主机。当我把我的地址,页面返回给我这个错误:找不到文件。 我的配置是下一个:

server {
listen 80;
server_name vcarlos.lan;

root /home/tfc_dev/tfc/web;

access_log /var/log/nginx/access.log;
error_log  /var/log/nginx/error.log error;

index app.php index.html index.htm;

try_files $uri $uri/ @rewrite;

location @rewrite {
    rewrite ^/(.*)$ /app.php/$1;
}

location ~ \.php(/|$) {
    # try_files $uri =404;

    fastcgi_index app.php;
    fastcgi_pass unix:/var/run/php5-fpm.sock;

    include fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_buffer_size   1280k;
    fastcgi_buffers   4 2560k;
    fastcgi_busy_buffers_size   2560k;
}

location ~ /\.ht {
    deny all;
}

}

编辑#1 我修改了代码,然后我把下一个:

    server {
    server_name vcarlos.lan;
    root /home/sierra/tfc_dev/tfc/web;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }
    # DEV
    # This rule should only be placed on your development environment
    # In production, don't include this and don't deploy app_dev.php or config.php
    location ~ ^/(app_dev|config)\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }
    # PROD
    location ~ ^/app\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fasserver {
    server_name vcarlos.lan;
    root /home/sierra/tfc_dev/tfc/web;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /app.php$is_args$args;
    }
    # DEV
    # This rule should only be placed on your development environment
    # In production, don't include this and don't deploy app_dev.php or config.php
    location ~ ^/(app_dev|config)\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }
    # PROD
    location ~ ^/app\.php(/|$) {
        fastcgi_pass unix:/var/run/php5-fpm.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/app.php/some-path
        # Remove the internal directive to allow URIs like this
        internal;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}tcgi_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/app.php/some-path
        # Remove the internal directive to allow URIs like this
        internal;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}

现在它识别Symfony2但它返回了这个错误:

糟糕!发生错误 服务器返回" 404 Not Found"。 有些东西坏了。发生此错误时,请告诉我们您在做什么。我们会尽快修复它。很抱歉给您带来不便。*

1 个答案:

答案 0 :(得分:0)

请替换:

rewrite ^/(.*)$ /app.php/$1;

使用:

rewrite ^/(.*)$ /app.php?query_string;

UPD:试试这个:

server {
        listen 0.0.0.0:80;
        server_name vcarlos.lan;
        root /home/tfc_dev/tfc/web;

        index app.php;
        try_files $uri $uri/ /app.php?$query_string;

        location ~ \.php$ {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_pass php-fpm;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}