Nginx服务器某个目录无法执行PHP文件


服务器使用的LNMP 的配置,但是只能访问静态的HTML CSS JS,一访问PHP文件就下载了下来。
但是这个服务器上的其他项目,PHP文件是可以正常执行的。
请教各位大神怎么解决?

Nginx配置,域名是 mydomain.com


 user  www www;

worker_processes auto;

error_log  /home/wwwlogs/nginx_error.log  crit;

pid        /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
        {
                use epoll;
                worker_connections 51200;
                multi_accept on;
        }

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

                server_names_hash_bucket_size 128;
                client_header_buffer_size 32k;
                large_client_header_buffers 4 32k;
                client_max_body_size 50m;

                sendfile on;
                tcp_nopush     on;

                keepalive_timeout 60;

                tcp_nodelay on;

                fastcgi_connect_timeout 500;
                fastcgi_send_timeout 500;
                fastcgi_read_timeout 500;
                fastcgi_buffer_size 1024k;
                fastcgi_buffers 16 1024k;
                fastcgi_busy_buffers_size 1024k;
                fastcgi_temp_file_write_size 1024k;

                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;
                gzip_proxied        expired no-cache no-store private auth;
                gzip_disable        "MSIE [1-6]\.";

                #limit_conn_zone $binary_remote_addr zone=perip:10m;
                ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.

                server_tokens off;
                #log format
                log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';

server {
        listen       80;
        server_name  mydomain.com;
        #access_log    main; /home/wwwlogs/mydomain.log  mydomain
            root  /wwwroot/web/mydomain.com/web;
            index  index.html index.htm index.php;
        location ~ [^/]\.php(/|$)
        {
             try_files $uri =404;
             fastcgi_pass    unix:/tmp/php-cgi.sock;
             fastcgi_index   index.php;
             fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
             include fastcgi.conf;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

php nginx

solo同步帝 9 years, 4 months ago

我猜你的sever配置有点问题,和其他的配置比对一下

小輝輝思密達 answered 9 years, 4 months ago

提示下载,证明Nginx并没有把PHP文件交给后端的PHP-FPM执行而是作为一个普通资源返回给浏览器了.尝试把:
location ~ [^/]\.php(/|$) 改为 location ~ \.php$

逆袭D软妹 answered 9 years, 4 months ago

Your Answer