PHP and CGI on UserDir
Francis Daly
francis at daoine.org
Sun Nov 29 11:10:19 UTC 2015
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 francis at daoine.org
More information about the nginx
mailing list