diff options
author | Rob Landley <rob@landley.net> | 2005-09-01 09:38:32 +0000 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2005-09-01 09:38:32 +0000 |
commit | 344ea471ef63d54436f296c140e7f86c67237545 (patch) | |
tree | d37862b158a16824edc9e580ee9f0ed8eb58342d /networking | |
parent | f815469a767d0e5e53970136e0f7279f8d4140cf (diff) |
Tracking system but #4: php needs the environment variable SCRIPT_FILENAME.
Diffstat (limited to 'networking')
-rw-r--r-- | networking/httpd.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index e3f4027dc..191a316a1 100644 --- a/networking/httpd.c +++ b/networking/httpd.c @@ -1146,6 +1146,11 @@ static int sendCgi(const char *url, } if(script != NULL) *script = '\0'; /* reduce /PATH_INFO */ + /* SCRIPT_FILENAME required by PHP in CGI mode */ + if(realpath(purl + 1, realpath_buff)) + addEnv("SCRIPT", "FILENAME", realpath_buff); + else + *realpath_buff = 0; /* set SCRIPT_NAME as full path: /cgi-bin/dirs/script.cgi */ addEnv("SCRIPT_NAME", "", purl); addEnv("QUERY_STRING", "", config->query); @@ -1178,7 +1183,7 @@ static int sendCgi(const char *url, /* set execve argp[0] without path */ argp[0] = strrchr( purl, '/' ) + 1; /* but script argp[0] must have absolute path and chdiring to this */ - if(realpath(purl + 1, realpath_buff) != NULL) { + if(*realpath_buff) { script = strrchr(realpath_buff, '/'); if(script) { *script = '\0'; |