recherche

Maison  >  Questions et réponses  >  le corps du texte

Symfony2 ne fonctionne pas correctement après avoir été installé sous nginx

Après l'installation, accédez directement à http://localhost/Symfony/web/app_dev.... La page d'accueil apparaîtra, mais une invite apparaîtra

Une erreur s'est produite lors du chargement de la barre d'outils de débogage Web (404 : introuvable). Voulez-vous ouvrir le profileur ?

Mais accéder à http://localhost/Symfony/web/app_dev.... et http://localhost/Symfony/web/app_dev.... renverra tous deux 404, veuillez résoudre
symfony2

阿神阿神2824 Il y a quelques jours475

répondre à tous(3)je répondrai

  • ringa_lee

    ringa_lee2017-05-16 16:47:20

    Le problème a été résolu car nginx ne connaît pas le mode pathinfo par défaut.

    répondre
    0
  • 给我你的怀抱

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

    La réponse est peut-être incorrecte, je suis vraiment désolé, vous devez la vérifier

    nginx ne configure pas pathinfo, tout ira bien après l'avoir configuré

    Ouvrez le fichier de configuration Nginx nginx.conf
    Ajoutez la configuration suivante au serveur :

    Modifier l'emplacement ~ .php# en : ^/(app|app_dev|config).php(/|$)

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

    Ajoutez le code d'analyse pathinfo, qui correspond en fait à une correspondance régulière, puis ajoutez le code suivant

    
    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 ;
        set $path_info ;
    } 
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info; 
    }
    

    La configuration est complétée comme suit

    
    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 ;
        set $path_info ;
    } 
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info; 
    }
    
    
    • Notez que les parenthèses if ( ) doivent être séparées par des espaces des deux côtés.

    Après modification, pathinfo peut être reconnu mais symfony signale toujours une erreur. Pas encore résolu.

    répondre
    0
  • 怪我咯

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

    On dirait qu'il est temps d'élargir vos compétences~ Les niveaux 4 et 6 sont garantis, hahaha

    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/;
        }
    
        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;
         }
    }
    

    répondre
    0
  • Annulerrépondre