Lad wrote:
[color=blue]
> How can I set up Apache web server to use Python for CGI processing( for
> file *.py). Thanks for help[/color]
A simple method would be to include the line:
AddHandler cgi-script .py
in your httpd.conf. This should work fine so long as your .py files start
with a proper invocation of the python interpreter (i.e.,
#!/usr/bin/python). You might also want to look at mod_python
(http://www.modpython.org/).
In article <81a41dd.040809 0447.7f27a092@p osting.google.c om>, Lad wrote:[color=blue]
> How can I set up Apache web server to use Python for CGI processing( for file *.py).
> Thanks for help
> Lad[/color]
I will assume you have cgi working in apache in cgi-bin. I will also assume
that you want to use it on *NIX. You didn't tell and I don't know how to do
it on windows ;-)
The simplest thing that should work is sth like this:
Jeffrey Froman <jeffrey@I.slac k> wrote in message news:<10hf2ugjn gver5e@corp.sup ernews.com>...[color=blue]
> Lad wrote:
>[color=green]
> > How can I set up Apache web server to use Python for CGI processing( for
> > file *.py). Thanks for help[/color]
>
> A simple method would be to include the line:
>
> AddHandler cgi-script .py
>
> in your httpd.conf. This should work fine so long as your .py files start
> with a proper invocation of the python interpreter (i.e.,
> #!/usr/bin/python). You might also want to look at mod_python
> (http://www.modpython.org/).
>
> Jeffrey[/color]
Thank you Jeffrey and Peter for help.
I added AddHandler cgi-script .py to httpd.conf
I also tried to run the test script as Peter suggested but the Apache
says( in error log)
[Tue Aug 10 08:51:32 2004] [error] [client 127.0.0.1] (2)No such file
or directory: script not found or unable to stat: c:/program
files/apache group/apache/cgi-bintest.py
The name of script is test.py and is in cgi-bin (Apache subdirectory).
I tried to run the script from IE browser with the command
In article <81a41dd.040809 2306.264beed@po sting.google.co m>, Lad wrote:[color=blue]
> [Tue Aug 10 08:51:32 2004] [error] [client 127.0.0.1] (2)No such file
> or directory: script not found or unable to stat: c:/program
> files/apache group/apache/cgi-bintest.py
>
> The name of script is test.py and is in cgi-bin (Apache subdirectory).[/color]
In my experience cgi-bin is rarely just a subdir of apache's www-root. The
name cgi-bin is in itself not some magical name that 'turns CGI on'. You
have to configure it on your httpd.conf. Here's a relevant bit of mine:
#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#
# "/usr/lib/cgi-bin" could be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory /usr/lib/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Also just to be sure the first line of test.py should be sth like this on
windows:
#! c:\path\to\pyth on.exe
[color=blue]
> BTW, how can I set up a different directory for cgi scripts? For
> example I would like to have all my scripts in
> C:\Scripts\MySc ripts[/color]
This is probably clear by now...
Hth,
PterK
--
Peter van Kampen
pterk -- at -- datatailors.com
Peter van Kampen <news@woody.dat atailors.com> wrote in message news:<slrnchhcv 5.mtn.news@wood y.datatailors.c om>...[color=blue]
> In article <81a41dd.040809 2306.264beed@po sting.google.co m>, Lad wrote:[color=green]
> > [Tue Aug 10 08:51:32 2004] [error] [client 127.0.0.1] (2)No such file
> > or directory: script not found or unable to stat: c:/program
> > files/apache group/apache/cgi-bintest.py
> >
> > The name of script is test.py and is in cgi-bin (Apache subdirectory).[/color]
>
> In my experience cgi-bin is rarely just a subdir of apache's www-root. The
> name cgi-bin is in itself not some magical name that 'turns CGI on'. You
> have to configure it on your httpd.conf. Here's a relevant bit of mine:
>
> #
> # ScriptAlias: This controls which directories contain server scripts.
> # ScriptAliases are essentially the same as Aliases, except that
> # documents in the realname directory are treated as applications and
> # run by the server when requested rather than as documents sent to the client.
> # The same rules about trailing "/" apply to ScriptAlias directives as to
> # Alias.
> #
> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
>
> #
> # "/usr/lib/cgi-bin" could be changed to whatever your ScriptAliased
> # CGI directory exists, if you have that configured.
> #
> <Directory /usr/lib/cgi-bin/>
> AllowOverride None
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
>
> Also just to be sure the first line of test.py should be sth like this on
> windows:
>
> #! c:\path\to\pyth on.exe
>[color=green]
> > BTW, how can I set up a different directory for cgi scripts? For
> > example I would like to have all my scripts in
> > C:\Scripts\MySc ripts[/color]
>
> This is probably clear by now...
>
> Hth,
>
> PterK[/color]
Thanks Peter for help. Now I can run cgi scripts in default
c:/program files/apache group/apache/cgi-bin/
directory.
The problem was that there was not last "/"
But how can I forced the Apache to allowed to run scripts in a
different directory for example C:\Test\MyScrip ts\
Thanks for help
Lad
In article <81a41dd.040810 1143.43fea836@p osting.google.c om>, Lad wrote:
[color=blue][color=green]
>>[/color][/color]
[color=blue][color=green]
>> <Directory /usr/lib/cgi-bin/>
>> AllowOverride None
>> Options ExecCGI
>> Order allow,deny
>> Allow from all
>> </Directory>[/color][/color]
[color=blue]
> Thanks Peter for help. Now I can run cgi scripts in default
> c:/program files/apache group/apache/cgi-bin/
> directory.
> The problem was that there was not last "/"
>
> But how can I forced the Apache to allowed to run scripts in a
> different directory for example C:\Test\MyScrip ts\[/color]
I would guess you have something like the above in your httpd.conf
Peter van Kampen <news@woody.dat atailors.com> wrote in message news:<slrnchk87 5.p2u.news@wood y.datatailors.c om>...[color=blue]
> In article <81a41dd.040810 1143.43fea836@p osting.google.c om>, Lad wrote:
>[color=green][color=darkred]
> >>[/color][/color]
>[color=green][color=darkred]
> >> <Directory /usr/lib/cgi-bin/>
> >> AllowOverride None
> >> Options ExecCGI
> >> Order allow,deny
> >> Allow from all
> >> </Directory>[/color][/color]
>[color=green]
> > Thanks Peter for help. Now I can run cgi scripts in default
> > c:/program files/apache group/apache/cgi-bin/
> > directory.
> > The problem was that there was not last "/"
> >
> > But how can I forced the Apache to allowed to run scripts in a
> > different directory for example C:\Test\MyScrip ts\[/color]
>
> I would guess you have something like the above in your httpd.conf
>
> ScriptAlias /cgi-bin/ c:/program files/apache group/apache/cgi-bin/
>
> <Directory c:/program files/apache group/apache/cgi-bin/>
> AllowOverride None
> Options ExecCGI
> Order allow,deny
> Allow from all
> </Directory>
>
> Simply replace c:/program files/apache group/apache/cgi-bin/ with
> C:\Test\MyScrip ts
>
> Hth,
>
> PterK[/color]
Peter, Thanks a lot. Now it works, but the scripts must be still
started as http://localhost/cgi-bin/test2.py eventhough the scripts are not
/cgi-bin/ directory but in MyScripts directory. I think that Apache
maps MyScripts directory to /cgi-bin/ directory.
Thanks again for help
Lad
Comment