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