Nginx提供php文件,因为找不到'

时间:2016-12-08 21:35:16

标签: php nginx

我正在尝试配置我的nginx服务器来提供php文件。

我已经使用brew安装了php 7.1(使用fpm)。 php -vphpfpm -v为我提供了良好的版本。

我的nginx配置如下所示:

server {
  listen       80;
  server_name  localhost;

  access_log  /Library/Logs/nginx/access.log  main;

  location / {
      root   /Users/tomek/Sites;
      index  index.html index.htm index.php;
      try_files $uri $uri/ /index.php?$args;
  }

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

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;

    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
  }
}

我该怎么办?

1 个答案:

答案 0 :(得分:2)

问题可能是因为:

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

以下是我在服务器上使用的示例nginx配置文件,它也适用于您:

server {
    listen 80;
    server_name  _ default_server;

    root /usr/share/nginx/html/;

    # Main Settings
    location / {
        root   /usr/share/nginx/YOUR_PHP_FOLDER;
        index  index.php;

        try_files $uri $uri/ /index.php$is_args$args;

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_read_timeout 300; 
        }

        location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 365d;
            gzip_vary on; 
        }
    }

    # Handle Not Found Page
    error_page  404              /404.html;

    # Handle Server Errors
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # Disable Apache .htaccess
    location ~ /\.ht {
        deny  all;
    }
}