On Sun, Nov 29, 2015 at 05:04:50PM +0900, Smart Goldman wrote: Hi there,
> I try to enable PHP and CGI(Perl) on UserDir (/home/user/public_html) with > nginx. > But on my Chrome, PHP script is downloaded and CGI script shows me "404 Not > Found" page. In nginx, one requests is handled in one location. http://nginx.org/r/location describes how the one location is chosen for a particular request. You have: > location / { > location ~ ^/~(.+?)(/.*)?$ { > location = /50x.html { > location ~ (^~)*\.php$ { > location ~ (^~)*\.pl|cgi$ { > location ~ .*~.*\.php$ { > location ~ .*~.*\.pl|cgi$ { According to the description, the requests /~user/index.cgi and /~user/index.php are both handled in the second location there, which says: > location ~ ^/~(.+?)(/.*)?$ { > alias /home/$1/public_html$2; > index index.html index.htm; > autoindex on; which says "serve the file /home/user/public_html/index.cgi (or index.php) from the filesystem, with no further processing". And that is what you see -- one file does not exist, do you get 404; the other file does exist, so you get it. To make things work, you will need to arrange your location{} blocks so that the one that you want nginx to use to process a request, is the one that nginx does choose to process a request. And then make sure that you know what mapping you want nginx to use for *this* request should be handled by processing *this* file through *that* fastcgi server (or whatever is appropriate). Good luck with it, f -- Francis Daly [email protected] _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
