Welcome! Log In Create A New Profile

Advanced

Re: PHP and CGI on UserDir

Smart Goldman
December 01, 2015 11:54AM
Hi Francis Daly and Aleksandar Lazic,
I am sorry I am late.

2015-11-29 20:10 GMT+09:00 Francis Daly <francis@daoine.org>:
> 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,

Thank you for great help!
I did not understand /~user/index.cgi and /~user/index.php are handled on
"location ~ ^/~(.+?)(/.*)?$ {".
I remade /etc/nginx/conf.d/default.conf as the following:

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 ~ ^/~(.+?)(/.*)?\.(php)$ {
alias /home/$1/public_html$2.$3;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

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

location ~ ^/~(.+?)(/.*)?$ {
alias /home/$1/public_html$2;
index index.html index.htm;
autoindex on;
}

#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
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# 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;
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;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

After that, I restarted nginx. Looks like PHP (/~user/index.php) finally
works!
But CGI (/~user/index.cgi) says "Error: No such CGI app -
/home/user/public_html/index.cgi/~user/index.cgi may not exist or is not
executable by this process." though I don't know why.

2015-12-01 1:47 GMT+09:00 Aleksandar Lazic <al-nginx@none.at>:
> Hi.
>
> Am 29-11-2015 12:02, schrieb Smart Goldman:
>>
>> Hi, thank you for great help, Aleksandar Lazic.
>> I tried it.
>
>
> How looks now your config?

I remade as above config.

>> PHP script shows me "File not found." and outputs the following log:
>> 2015/11/29 05:50:15 [error] 5048#0: *6 FastCGI sent in stderr: "Primary
>> script unknown" while reading response header from upstream, client:
>> 119.105.136.26, server: localhost, request: "GET /~user/index.php
>> HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000 [2]", host:
>> "host.domain.com [4]"
>>
>> - I do not know how to fix it...
>>
>> CGI script shows me "Error: No such CGI app -
>> /home//public_html/~user/index.cgi may not exist or is not executable by
>> this process." and outputs nothing to error.log.
>>
>> - /home//public_html/~user/... I think this path is wrong and I tried to
>> fix this path but I could not. /home/user/public_html/ should be correct
>> path..
>
>
> Please run the debug log to see more.
>
> http://nginx.org/en/docs/debugging_log.html
>
> Due to the fact that I don't know if you use the centos packes or the
nginx
> package I suggest to install the following packages
>
> http://nginx.org/en/linux_packages.html#mainline
>
> and the nginx-debug and run the debug instance with the suggested settings
> in
>
> http://nginx.org/en/docs/debugging_log.html

I installed nginx with rpm -Uvh
http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
and yum -y install nginx.
Do I need to reinstall nginx for the debug?
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

PHP and CGI on UserDir

Smart Goldman November 29, 2015 03:06AM

Re: PHP and CGI on UserDir

Anoop Alias November 29, 2015 03:30AM

Re: PHP and CGI on UserDir

Smart Goldman November 29, 2015 04:14AM

Re: PHP and CGI on UserDir

Aleksandar Lazic November 29, 2015 04:42AM

Re: PHP and CGI on UserDir

Smart Goldman November 29, 2015 06:04AM

Re: PHP and CGI on UserDir

Aleksandar Lazic November 30, 2015 11:48AM

Re: PHP and CGI on UserDir

Francis Daly November 29, 2015 06:12AM

Re: PHP and CGI on UserDir

Smart Goldman December 01, 2015 11:54AM

Re: PHP and CGI on UserDir

Francis Daly December 01, 2015 03:52PM

Re: PHP and CGI on UserDir

Smart Goldman December 02, 2015 08:06AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 316
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready