title: File not found with nginx and php
body: <p>I try to run node js and php on the same domain with nginx. However the location for php ("/ajax") does not work. I always get the message "File not found.". The nginx logs print </p>
  
  <p>The URL is <a href="http://localhost:8085/ajax" rel="nofollow noreferrer">http://localhost:8085/ajax</a> so far, the scripts are located at /var/www/public
  The folder /ajax does NOT exist (none of the paths do, as everthing shall be redirected to /var/www/public/index.php)</p>
  
  <blockquote>
    <p>nginx             | 2017/08/27 20:47:48 [error] 6#6: *6 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 172.23.0.1, server: localhost, request: "GET /ajax HTTP/1.1", upstream: "fastcgi://172.23.0.4:9000", host: "localhost:8085"</p>
    
    <p>nginx             | 172.23.0.1 - - [27/Aug/2017:20:47:48 +0000] "GET /ajax HTTP/1.1" 404 27 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" "-"</p>
  </blockquote>
  
  <p>This is my configuration, what do I have to change?</p>
  
  <pre><code>upstream react {
      server react:3000;
      keepalive 8;
  }
  
  server {
      listen 0.0.0.0:80;
  
      server_name  localhost;
  
      location / {
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
  
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host;
          proxy_set_header X-NginX-Proxy true;
  
          proxy_pass http://react;
          proxy_redirect off;
      }
  
      location /ajax {
          index index.php index.html;
          root /var/www/public;
  
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          fastcgi_pass app:9000;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_param PATH_INFO $fastcgi_path_info;
      }
  
      client_max_body_size 5m;
  }
  </code></pre>
  
  <p>I tried </p>
  
  <blockquote>
    <p>fastcgi_param SCRIPT_FILENAME /var/www/public$fastcgi_script_name;</p>
  </blockquote>
  
  <p>as suggested in some threads, but that does not work</p>