开发者社区> 问答> 正文

nginx配置,为何两个配置一模一样的server,一个能解析php,另一个不能?

下面有两个sever块,第二个就是复制第一个sever,只是将目录位置由dev修改为test,出现了这样的结果:
第一个sever全部正常,能够解析html,也能解析php
第二个sever只能解析html,遇到.php的页面弹出下载窗口

    http {
    include mime.types;
    default_type application/octet-stream;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  65;
    tcp_nodelay on;

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;

    gzip  on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    server {
        listen       80;
        server_name  dev.com;
        fastcgi_intercept_errors on;

        location / {
            index index.html index.htm index.php;
            root  /Library/WebServer/public_html/dev;
        }

        location ~ .*\.(php|php5)?$ {
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            include /usr/local/etc/nginx/fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  /Library/WebServer/public_html/dev/$fastcgi_script_name;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ {
            expires      30d;
        }

        location ~ .*\.(js|css)?$ {
            expires      1h;
        }

        error_page   400 401 402 403 404  /40x.html;
        location = /40x.html {
            root /Library/WebServer/public_html/dev/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            #root   html;
            root /Library/WebServer/public_html/dev/;
        }
    }

    server {
        listen       80;
        server_name  test.com;

        location / {
            index index.html index.htm index.php;
            root  /Library/WebServer/public_html/test;
        }

        location ~ .*\.(php|php5)?$ {
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            include /usr/local/etc/nginx/fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  /Library/WebServer/public_html/test/$fastcgi_script_name;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ {
            expires      30d;
        }

        location ~ .*\.(js|css)?$ {
            expires      1h;
        }

        error_page   400 401 402 403 404  /40x.html;
        location = /40x.html {
            root /Library/WebServer/public_html/dev/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            #root   html;
            root /Library/WebServer/public_html/dev/;
        }
    }


    log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" $http_x_forwarded_for';

    access_log  /usr/local/var/log/nginx/access.log  access;

    }

展开
收起
落地花开啦 2016-06-15 15:12:28 3084 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    应该是SCRIPTFILENAME 设置的问题
    你看include /usr/local/etc/nginx/fastcgiparams 这个文件里的SCRIPT_FILENAME是什么

    2019-07-17 19:39:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载