suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Symfony2 läuft nach der Installation unter Nginx nicht richtig

Greifen Sie nach der Installation direkt auf http://localhost/Symfony/web/app_dev.... zu. Die Begrüßungsseite wird angezeigt, aber es erscheint eine Eingabeaufforderung

Beim Laden der Web-Debug-Symbolleiste ist ein Fehler aufgetreten (404: Nicht gefunden). Möchten Sie den Profiler öffnen?

Aber der Zugriff auf http://localhost/Symfony/web/app_dev.... und http://localhost/Symfony/web/app_dev.... wird beide 404 zurückgeben, bitte lösen Sie
symfony2

阿神阿神2825 Tage vor477

Antworte allen(3)Ich werde antworten

  • ringa_lee

    ringa_lee2017-05-16 16:47:20

    问题已经解决,是因为nginx 默认不知从pathinfo模式, 配置一下就好了。

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 16:47:20

    答案可能不正确,非常抱歉,还需验证一下

    nginx没有配置pathinfo,配置后就可以了

    打开Nginx的配置文件nginx.conf
    在server中加入一下配置:

    修改 location ~ .php# 为:^/(app|app_dev|config).php(/|$)

    ^/(app|app_dev|config)\.php(/|$)
    

    添加pathinfo解析代码,其实就是正则匹配,后面接着添加如下代码

    
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    set $real_script_name $fastcgi_script_name;
    set $path_info ””;
    if ( $fastcgi_script_name ~ “^(.+?.php)(/.+)$”)
    {
        set $real_script_name $1;
        set $path_info $2;
    } 
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info; 
    }
    

    配置为完成如下

    
    location ~ .php {  
    root /www/;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9090;
    fastcgi_index index.php;
    include fastcgi_params; 
    
    set $real_script_name $fastcgi_script_name;
    set $path_info ””;
    if ( $fastcgi_script_name ~ “^(.+?.php)(/.+)$”)
    {
        set $real_script_name $1;
        set $path_info $2;
    } 
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info; 
    }
    
    
    • 注意if ( ) 括号两边需要有空格隔开。

    修改以后以后可以识别pathinfo但是symfony 仍然报错。暂时没解决。

    Antwort
    0
  • 怪我咯

    怪我咯2017-05-16 16:47:20

    看来是时候放大招了~ 四六级包过啊 哈哈哈

    server {
        listen         80;
        server_name    192.168.1.120;
    
        root  /data/nginx/htdocs/cwz;
        location / {
            index index.php index.html;
            root /data/nginx/htdocs/cwz;
        }
    
        index app.php index.html index.htm;
    
        try_files $uri $uri/ @rewrite;
    
        location @rewrite {
            rewrite ^/(.*)$ /app_dev.php/$1;
        }
    
        location ~ \.php(/|$) {
            # try_files $uri =404;
    
            fastcgi_index app_dev.php;
            fastcgi_pass unix:/dev/shm/php-cgi.sock;
    
            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;
            include fastcgi_params;
         }
    }
    

    Antwort
    0
  • StornierenAntwort