[Grok-dev] Grok newbie - is it possible to call cgi prog without Apache?
faassen at startifact.com
Thu Nov 19 08:51:37 EST 2009
Kathy Manwaring wrote:
> I want to use Grok for software I am developing and need to know whether
> the following is possible. I would prefer to use Grok standalone, rather
> than with Apache.
Apache is still one of the best ways to work with CGI, but I can imagine
it's annoying to have to develop stand-alone. You could perhaps
partition your application so you have difficult deployment scenarios,
one for development where you can skip the CGI.
Alternatively you could host the CGI script on some URL somewhere (using
Apache) and then use Python's "urllib2" to just load that URL from
within your Grok application. I'm not sure whether that's possible with
this particular CGI script.
> I need to check that a system and user is licensed when they access the
> home page. So I need to call a CGI program, as having the licensing
> process present in plain code seems a little dumb...
Why does it seem dumb? I mean, if it's possible to call some API to
check whether the system and user is licensed that'd be the easiest,
right? But I think I don't understand something.
> I tried putting the
> CGI into /static/ directory in my Grok area, but get a 404 error when
> accessing it (probably because static is intended for css, images etc).
Yes, static isn't going to process CGI. It's only meant to publish
static resources and not process anything.
> Is it possible to do this? If so, where does the CGI program live?
I don't have experience with this myself, so I'm only going to be able
to give you a pointer.
Grok (in more recent versions) uses Paste Deploy:
This includes a WSGI server and a way to use WSGI infrastructure. In
Grok, you'd modify various .ini templates that are in 'etc' and run
"bin/buildout" to install them into parts/etc/ to include WSGI middleware.
Tere are solutions to integrate CGI with WSGI. A quick google comes up
with this, though this looks positively ancient (2005):
This looks more recent (Paste, which includes this, should already be
included when you install Grok, so you can just import it):
More information about the Grok-dev