PHP and CGI on UserDir

Aleksandar Lazic al-nginx at none.at
Sun Nov 29 09:41:33 UTC 2015


Hi Smart Goldman.

Am 29-11-2015 09:04, schrieb Smart Goldman:
> Hello. I am new here.
> 
> 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.
> Here's my configurations. What is wrong with my configurations?

Try to use nested locations.

http://nginx.org/en/docs/http/ngx_http_core_module.html#location

> OS: Linux 3.10.0 / CentOS 7 64bit
> nginx version: 1.8.0
> 
> ----------------------------------------------
> /etc/nginx/conf.d/default.conf:
> server {
>     listen       80;
>     server_name  localhost;
>     access_log  /var/log/nginx/access.log;
>     error_log   /var/log/nginx/error.log;
> 
>     #charset koi8-r;
>     #access_log  /var/log/nginx/log/host.access.log  main;
> 
>     location / {
>         root   /var/www/html;
>         index  index.html index.htm;
>     }
> 
>     location ~ ^/~(.+?)(/.*)?$ {
>         alias /home/$1/public_html$2;
>         index  index.html index.htm;
>         autoindex on;

include my_php_config.conf;

include my_cgi_config.conf;


>     }
> 
>     #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   /var/www/html;
>     }
> 
>     # proxy the PHP scripts to Apache listening on 127.0.0.1:80 [1]
>     #
>     #location ~ \.php$ {
>     #    proxy_pass   http://127.0.0.1;
>     #}
> 
>     # pass the PHP scripts to FastCGI server listening on 
> 127.0.0.1:9000
> [2]
>     #
>     #location ~ \.php$ {
>     #    root           html;
>     #    fastcgi_pass   127.0.0.1:9000 [2];
>     #    fastcgi_index  index.php;
>     #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
>     #    include        fastcgi_params;
>     #}
> 
>     location ~ (^~)*\.php$ {
>         root           /var/www/html;
>         fastcgi_pass   127.0.0.1:9000 [2];
>         fastcgi_index  index.php;
>         fastcgi_param  SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
>         include        /etc/nginx/fastcgi_params;
>     }
>     location ~ (^~)*\.pl|cgi$ {
>         root           /var/www/html;
>         fastcgi_pass   127.0.0.1:8999 [3];
>         fastcgi_index  index.cgi;
>         fastcgi_param  SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
>         include        /etc/nginx/fastcgi_params;
>     }

This block into "my_php_config.conf"

>     location ~ .*~.*\.php$ {
>         alias /home/$1/public_html$2;
>         fastcgi_pass   127.0.0.1:9000 [2];
>         fastcgi_index  index.php;
>         fastcgi_param  SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
>         include        /etc/nginx/fastcgi_params;
>     }
END

This block into "my_cgi_config.conf"

>     location ~ .*~.*\.pl|cgi$ {
>         alias /home/$1/public_html$2;
>         fastcgi_pass   127.0.0.1:8999 [3];
>         fastcgi_index  index.cgi;
>         fastcgi_param  SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
>         include        /etc/nginx/fastcgi_params;
>     }

END

>     # deny access to .htaccess files, if Apache's document root
>     # concurs with nginx's one

BR Aleks



More information about the nginx mailing list