欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2024-01-25 21:53:34
...

解决了,我将执行文件由info.php修改为i.php之后就ok了,我想,可能是浏览器缓存。。。。。

下面有两个sever块,第二个就是复制第一个sever,只是将目录位置由dev修改为test,出现了这样的结果:

  1. 第一个sever全部正常,能够解析html,也能解析php
  2. 第二个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;
    

    }

回复内容:

解决了,我将执行文件由info.php修改为i.php之后就ok了,我想,可能是浏览器缓存。。。。。

下面有两个sever块,第二个就是复制第一个sever,只是将目录位置由dev修改为test,出现了这样的结果:

  1. 第一个sever全部正常,能够解析html,也能解析php
  2. 第二个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;
    

    }

解决了,我将执行文件由info.php修改为i.php之后就ok了,我想,可能是浏览器缓存。。。。。

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

相关标签: nginx php