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

Que se passe-t-il lorsque nginx télécharge toujours des fichiers et ne peut pas ouvrir de pages Web lors de l'accès à localhost ?

La valeur par défaut dans le fichier nginx sites-available a modifié le chemin racine. Mais lors de l'accès à localhost, il télécharge toujours la page Web directement au lieu d'ouvrir l'URL, ce qui est très étrange.

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

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html/laravel/public;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html index.php;

    server_name 127.0.0.1;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
过去多啦不再A梦过去多啦不再A梦2713 Il y a quelques jours835

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

  • 巴扎黑

    巴扎黑2017-05-16 17:16:59

    En regardant la configuration de la question, il y a Laravel, cela semble être lié à PHP, alors le questionneur, vous devriez d'abord télécharger php5-fpm, car nginx lui-même n'exécute pas de programmes PHP comme Apache, mais le donne à l'exécution de php5-fpm.

    Donc, vos étapes devraient être les suivantes :

    • Téléchargez php5-fpm

    • Configurez nginx pour communiquer avec fpm. Il existe de nombreuses méthodes de configuration sur Internet, je ne les répéterai pas : il existe deux façons pour nginx de communiquer avec fpm, l'une via IP et l'autre via. socket.fpm et nginx. Configurez la même méthode de communication !!

    • .
    • Le test final a-t-il réussi ? Bien sûr, il est possible que la page consultée soit téléchargée lorsque vous arrivez ici. Si vous rencontrez cette situation, vous devez à nouveau dépanner, mais il est plus sûr pour la personne qui pose la question d'obtenir le fpm. d'abord.

    Afin de mieux résoudre le problème du sujet, j'ai sauvegardé une copie de la configuration que je viens de faire dans l'environnement ubuntu14.04

    server {
            listen 80 default_server;
            listen [::]:80 default_server ipv6only=on;
    
            root /var/www/html;
            index index.php index.html index.htm;
    
            # Make site accessible from http://localhost/
            server_name localhost;
    
            location / {
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ =404;
                    # Uncomment to enable naxsi on this location
                    # include /etc/nginx/naxsi.rules
            }
    
            # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
            #location /RequestDenied {
            #       proxy_pass http://127.0.0.1:8080;    
            #}
    
            #error_page 404 /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            #error_page 500 502 503 504 /50x.html;
            #location = /50x.html {
            #       root /usr/share/nginx/html;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
            ## NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    
                    # With php5-cgi alone:
            #       fastcgi_pass 127.0.0.1:9000;
            #       # With php5-fpm:
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #       deny all;
            #}
    }
    

    Peu de changements :

    • index Je mets index.php en première position

    • chemin racine, veuillez noter que le dernier chemin n'a pas / /

    • 去掉跟php有关的注释,我在fpm的 /etc/php5/fpm/pool.d/www.conf中找到listen = /var/run/php5-fpm.sock,说明fpm是开启了socket,所以nginx的fastcgi_pass

    Supprimez les commentaires liés à php, j'ai trouvé listen = /var/run/php5-fpm dans le /etc/php5/fpm/pool.d/www.conf de fpm. /code>, indiquant que fpm a activé socket, donc le paramètre fastcgi_pass de nginx est également socket.🎜🎜 🎜

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 17:16:59

    Par exemple, à la fin de php, vous devez utiliser le cgi de php pour l'analyser

    répondre
    0
  • 高洛峰

    高洛峰2017-05-16 17:16:59

    #location ~ \.php$ {
    #    include snippets/fastcgi-php.conf;
    #
    #    # With php7.0-cgi alone:
    #    fastcgi_pass 127.0.0.1:9000;
    #    # With php7.0-fpm:
    #    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    #}
    
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny all;
    #}
    这串代码我取消注释 nginx restart 会报错

    @chenjiayao

    répondre
    0
  • Annulerrépondre