我正在安装一个网站在一个液滴(数字海洋)。我有一个问题安装NGINX与PHP正确。我做了一个教程https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04,但当我试图运行一些。php文件,它只是下载它… 例如……http://5.101.99.123/info.php它正在工作,但是……如果我访问主http://5.101.99.123,它会下载index.php:/

任何想法?

-rw-r--r--  1 agitar_user www-data   418 Jul 31 18:27 index.php
-rw-r--r--  1 agitar_user www-data    21 Aug 31 11:20 info.php

My /etc/nginx/sites-available/default

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/html;
        index index.html index.htm index.php;

        # Make site accessible from http://localhost/
        server_name agitarycompartir.com;

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

              location / {
                    
                    try_files $uri $uri/ =404;
                    # Uncomment to enable naxsi on this location
                    # include /etc/nginx/naxsi.rules
            }

...

其他“地点”被评论为……

.


当前回答

检查你的nginx配置文件扩展名为*.conf。 例如:/etc/nginx/conf.d/myfoo.conf

我也遇到了同样的情况。在我将我的配置文件从myfoo重命名为myfoo.conf后,它修复了。 不要忘记在重命名nginx后重新启动它。

其他回答

为了记录,我发现我的php-fpm没有运行,我用服务php7.2-fpm start修复了它。

我现在用这段代码解决了我的问题(改变你的IP):

location / {
access_log off;
    log_not_found  off;
    client_max_body_size    2000m;
    client_body_buffer_size 512k;
    proxy_buffering on;
    proxy_send_timeout 300s;
    proxy_read_timeout 300s;
    proxy_buffer_size 64k;
    proxy_buffers 32 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    proxy_connect_timeout 300s;
    proxy_http_version 1.1;
    proxy_set_header Range "";
    proxy_pass   https://123.123.123.123:444;
    proxy_set_header   Host   $host;
    proxy_set_header   X-Real-IP  $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_redirect     off;
}

我要去精神试图解决这个问题,对我来说,问题是Cloudflare已经缓存了php文件,并一直让我下载它。

对我来说,解决办法是清除Cloudflare上的缓存。

检查你的nginx配置文件扩展名为*.conf。 例如:/etc/nginx/conf.d/myfoo.conf

我也遇到了同样的情况。在我将我的配置文件从myfoo重命名为myfoo.conf后,它修复了。 不要忘记在重命名nginx后重新启动它。

所以这就是最终在我的案例中起作用的重写规则,罪魁祸首 我修改nginx重写规则如下。

   location /vendors { rewrite ^/vendors/?$ /vendors.php break; } 

变得……

  location /vendors { rewrite ^/vendors/?$ /vendors.php last; }

显然,如果没有last关键字,请求就不会重新启动,因此它永远不会到达.php位置段,而是简单地解释为下载-