It works! However, I got two errors when doing your steps update-rc.d: warning: /etc/init.d/fastcgi-php missing LSB information and - /etc/init.d/fastcgi-php: line 1: !#/bin/bash: No such file or directory. Is there anything to worry about?
–
MacMacSep 30 '11 at 16:37

One another thing, if access to a PHP file that doesn't exist, I get this output in my browser: No input file specified.
–
MacMacSep 30 '11 at 16:39

Sorry my fault: The first line should be #!/bin/bash instead of !#/bin/bash I also corrected it in my answer.
–
George TasioulisSep 30 '11 at 16:41

You have fundamentally misunderstood how PHP works with Nginx. Your assumption that Apache == Nginx is incorrect. Nginx does not embed PHP within itself so if you try to access a PHP file then it's PHP throwing the 404 and not Nginx.

Sadly you have hidden your PHP configuration with include /etc/nginx/fastcgi_php; so I can't actually tell you if you've configured Nginx correctly, so please do provide your full configuration.

Meanwhile, you can verify that PHP is actually throwing the 404 by checking the returned headers and checking if you have X-Powered-By: PHP/5.3.8. If this is present then you need to verify that you're sending PHP the proper file path via the SCRIPT_FILENAME fastcgi_param. If that one is correct then PHP cannot read the file due to improper permissions, this can either be read access on the file itself or execute access on any of the parent directories.

Updated my post, sorry for not including the configuration file.
–
MacMacSep 30 '11 at 13:56

Remove the trailing slash from your root directive as $fastcgi_script_name; already starts with a /. Other than that the last paragraph with file permissions still apply.
–
Martin FjordvaldSep 30 '11 at 14:14