[mapserver-users] Internal Server Error / proxy.cgi

2010-09-23 Thread Simone Lella

 Hi,

I'm using MS4W with Windows 7.
When I call "http://localhost:8081/cgi-bin/proxy.cgi";, the response is:

/Internal Server Error
/

/The server encountered an internal error or misconfiguration and was 
unable to complete your request./


/Please contact the server administrator, ad...@local.domain and inform 
them of the time the error occurred, and anything you might have done 
that may have caused the error./


/More information about this error may be available in the server error log.
/


The "error.log" file contains:

/[Thu Sep 23 09:49:43 2010] [warn] PassEnv variable PYTHONPATH was undefined
[Thu Sep 23 09:49:43 2010] [notice] Apache/2.2.10 (Win32) configured -- 
resuming normal operations

[Thu Sep 23 09:49:43 2010] [notice] Server built: Oct 10 2008 12:39:04
[Thu Sep 23 09:49:43 2010] [notice] Parent: Created child process 2932
[Thu Sep 23 09:49:43 2010] [warn] PassEnv variable PYTHONPATH was undefined
[Thu Sep 23 09:49:44 2010] [warn] PassEnv variable PYTHONPATH was undefined
[Thu Sep 23 09:49:44 2010] [notice] Child 2932: Child process is running
[Thu Sep 23 09:49:44 2010] [notice] Child 2932: Acquired the start mutex.
[Thu Sep 23 09:49:44 2010] [notice] Child 2932: Starting 64 worker threads.
[Thu Sep 23 09:49:44 2010] [notice] Child 2932: Starting thread to 
listen on port 8081.
[Thu Sep 23 09:50:13 2010] [error] [client 127.0.0.1] (OS 2)Impossibile 
trovare il file specificato.  : couldn't create child process: 720002: 
proxy.cgi
[Thu Sep 23 09:50:13 2010] [error] [client 127.0.0.1] (OS 2)Impossibile 
trovare il file specificato.  : couldn't spawn child process: 
C:/ms4w/Apache/cgi-bin/proxy.cgi/



The "proxy.cgi" file was created in "C:/ms4w/Apache/cgi-bin/proxy.cgi" 
and I've copied into the following text:


/#!/usr/bin/env python

"""This is a blind proxy that we use to get around browser
restrictions that prevent the Javascript from loading pages not on the
same server as the Javascript.  This has several problems: it's less
efficient, it might break some sites, and it's a security risk because
people can use this proxy to browse the web and possibly do bad stuff
with it.  It only loads pages via http and https, but it can load any
content type. It supports GET and POST requests."""

import urllib2
import cgi
import sys, os

# Designed to prevent Open Proxy type stuff.

allowedHosts = ['www.openlayers.org', 'openlayers.org',
'labs.metacarta.com', 'world.freemap.in',
'prototype.openmnnd.org', 'geo.openplans.org',
'sigma.openplans.org', 'demo.opengeo.org',
'www.openstreetmap.org', 'sample.azavea.com',
'v-swe.uni-muenster.de:8080',
'vmap0.tiles.osgeo.org','localhost:8081']

method = os.environ["REQUEST_METHOD"]

if method == "POST":
qs = os.environ["QUERY_STRING"]
d = cgi.parse_qs(qs)
if d.has_key("url"):
url = d["url"][0]
else:
url = "http://www.openlayers.org";
else:
fs = cgi.FieldStorage()
url = fs.getvalue('url', "http://www.openlayers.org";)

try:
host = url.split("/")[2]
if allowedHosts and not host in allowedHosts:
print "Status: 502 Bad Gateway"
print "Content-Type: text/plain"
print
print "This proxy does not allow you to access that location 
(%s)." % (host,)

print
print os.environ

elif url.startswith("http://";) or url.startswith("https://";):

if method == "POST":
length = int(os.environ["CONTENT_LENGTH"])
headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
body = sys.stdin.read(length)
r = urllib2.Request(url, body, headers)
y = urllib2.urlopen(r)
else:
y = urllib2.urlopen(url)

# print content type header
i = y.info()
if i.has_key("Content-Type"):
print "Content-Type: %s" % (i["Content-Type"])
else:
print "Content-Type: text/plain"
print

print y.read()

y.close()
else:
print "Content-Type: text/plain"
print
print "Illegal request."

except Exception, E:
print "Status: 500 Unexpected Error"
print "Content-Type: text/plain"
print
print "Some unexpected error occurred. Error text was:", E/


I've modified "proxy.cgi" file at "allowedHosts" by adding "localhost:8081".

I must modify the first row of "proxy.cgi" file?
Can this issue related to the Windows 7 OS?


Thanks

Simone


 *_
 _*



--
Simone Lella
Istituto per il Rilevamento Elettromagnetico dell'Ambiente
IREA - CNR (http://www.irea.cnr.it)
Via Bassini, 15
Tel. +39 02-23699299
Milano

___
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users


Re: [mapserver-users] Internal Server Error / proxy.cgi Fixed

2010-09-30 Thread Simone Lella
 I've installed Python 2.7 and I've changed the first row of 
"Proxy.cgi" file with "#! C:/Python27/python.exe -u"


Simone

Simone Lella
Istituto per il Rilevamento Elettromagnetico dell'Ambiente
IREA - CNR (http://www.irea.cnr.it)
Via Bassini, 15
Tel. +39 02-23699299
Milano


Il 23/09/2010 11:13, Simone Lella ha scritto:

Hi,

I'm using MS4W with Windows 7.
When I call "http://localhost:8081/cgi-bin/proxy.cgi";, the response is:

/Internal Server Error
/

/The server encountered an internal error or misconfiguration and was 
unable to complete your request./


/Please contact the server administrator, ad...@local.domain and 
inform them of the time the error occurred, and anything you might 
have done that may have caused the error./


/More information about this error may be available in the server 
error log.

/


The "error.log" file contains:

/[Thu Sep 23 09:49:43 2010] [warn] PassEnv variable PYTHONPATH was 
undefined
[Thu Sep 23 09:49:43 2010] [notice] Apache/2.2.10 (Win32) configured 
-- resuming normal operations

[Thu Sep 23 09:49:43 2010] [notice] Server built: Oct 10 2008 12:39:04
[Thu Sep 23 09:49:43 2010] [notice] Parent: Created child process 2932
[Thu Sep 23 09:49:43 2010] [warn] PassEnv variable PYTHONPATH was 
undefined
[Thu Sep 23 09:49:44 2010] [warn] PassEnv variable PYTHONPATH was 
undefined

[Thu Sep 23 09:49:44 2010] [notice] Child 2932: Child process is running
[Thu Sep 23 09:49:44 2010] [notice] Child 2932: Acquired the start mutex.
[Thu Sep 23 09:49:44 2010] [notice] Child 2932: Starting 64 worker 
threads.
[Thu Sep 23 09:49:44 2010] [notice] Child 2932: Starting thread to 
listen on port 8081.
[Thu Sep 23 09:50:13 2010] [error] [client 127.0.0.1] (OS 
2)Impossibile trovare il file specificato.  : couldn't create child 
process: 720002: proxy.cgi
[Thu Sep 23 09:50:13 2010] [error] [client 127.0.0.1] (OS 
2)Impossibile trovare il file specificato.  : couldn't spawn child 
process: C:/ms4w/Apache/cgi-bin/proxy.cgi/



The "proxy.cgi" file was created in "C:/ms4w/Apache/cgi-bin/proxy.cgi" 
and I've copied into the following text:


/#!/usr/bin/env python

"""This is a blind proxy that we use to get around browser
restrictions that prevent the Javascript from loading pages not on the
same server as the Javascript.  This has several problems: it's less
efficient, it might break some sites, and it's a security risk because
people can use this proxy to browse the web and possibly do bad stuff
with it.  It only loads pages via http and https, but it can load any
content type. It supports GET and POST requests."""

import urllib2
import cgi
import sys, os

# Designed to prevent Open Proxy type stuff.

allowedHosts = ['www.openlayers.org', 'openlayers.org',
'labs.metacarta.com', 'world.freemap.in',
'prototype.openmnnd.org', 'geo.openplans.org',
'sigma.openplans.org', 'demo.opengeo.org',
'www.openstreetmap.org', 'sample.azavea.com',
'v-swe.uni-muenster.de:8080',
'vmap0.tiles.osgeo.org','localhost:8081']

method = os.environ["REQUEST_METHOD"]

if method == "POST":
qs = os.environ["QUERY_STRING"]
d = cgi.parse_qs(qs)
if d.has_key("url"):
url = d["url"][0]
else:
url = "http://www.openlayers.org";
else:
fs = cgi.FieldStorage()
url = fs.getvalue('url', "http://www.openlayers.org";)

try:
host = url.split("/")[2]
if allowedHosts and not host in allowedHosts:
print "Status: 502 Bad Gateway"
print "Content-Type: text/plain"
print
print "This proxy does not allow you to access that location 
(%s)." % (host,)

print
print os.environ

elif url.startswith("http://";) or url.startswith("https://";):

if method == "POST":
length = int(os.environ["CONTENT_LENGTH"])
headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
body = sys.stdin.read(length)
r = urllib2.Request(url, body, headers)
y = urllib2.urlopen(r)
else:
y = urllib2.urlopen(url)

# print content type header
i = y.info()
if i.has_key("Content-Type"):
print "Content-Type: %s" % (i["Content-Type"])
else:
print "Content-Type: text/plain"
print

print y.read()

y.close()
else:
print "Content-Type: text/plain"
print
print "Illegal request."

except Exception, E:
print "Status: 500 Unexpected Error"
print "Content-Type: text/plain"
print
print "Some unexpected error occurred. Error text was:", E/


I've modified "proxy.cgi" file at "allowedHosts" by adding 
"localhost:8081".


I must modify the first row of "proxy.cgi" file?
Can this issue related to the Windows 7 OS?


Thanks

Simone


  *_
  _*



--
Simone Lella
Istituto per il Rilevamento Elettromagnetico dell'Ambiente
IREA - CNR (http://www.irea.cnr.it)
Via Bassini, 15
Tel. +39 02-23699299
Mi