By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,921 Members | 1,471 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,921 IT Pros & Developers. It's quick & easy.

mod_python apache configuration issues

P: n/a
Hello all. I've been trying to get my linux server to run mod_python.
It's a Mandrake 10 linux box, and apache/mod_python are installed from rpms.
apache2-mod_python-2.0.48_3.1.3-1mdk
apache2-2.0.48-6mdk
The rpm installed the python module as:
/usr/lib/apache2-extramodules/mod_python.so

And added a config file for apache:
/etc/httpd/conf.d/16_mod_python.conf

The apache config files contained the following before my modifications:
<IfDefine HAVE_PYTHON>
<IfModule !mod_python.c>
LoadModule python_module extramodules/mod_python.so
</IfModule>
</IfDefine>
<IfModule mod_python.c>
</IfModule>

Now after reading the docs installed into /usr/share/doc for mod_python
and going through the directions at python.org, I've also changed the
config file to add a few lines to one of the directives:

<Directory /var/www/html>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
</Directory>

Now when I put the url into a browser:
http://myserver.mydomain.com/mptest.py

I get a popup from the browser because it doesn't know how to handle
mptest.py, and it asks what you want to do with the file (open it with
an application, save it to disk, etc). I can choose to open the file
with a text editor, and all it shows is the text "hello world".

That's the output of the mptest.py script.... apache isn't feeding the
browser the code from the mptest.py, only the output. (Otherwise when I
open it in a text editor I'd see the entire mptest.py script.

Contents of the mptest.py script:
from mod_python import apache

def handler(req):
req.write("Hello World!")
return apache.OK

I'm not a python developer, but have been working with Linux and Apache
for a number of years. I'm not sure where to go from here. It appears
that the script gets compiled - there is a mptest.pyc file in the
directory now. Why is it sending my browser the mptest.py file with the
stdout of the script?

Thanks in advance. Any help on this is appreciated.

Dave
Jul 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
digidalmation wrote:
Hello all. I've been trying to get my linux server to run mod_python.
It's a Mandrake 10 linux box, and apache/mod_python are installed from
rpms.
apache2-mod_python-2.0.48_3.1.3-1mdk
apache2-2.0.48-6mdk
The rpm installed the python module as:
/usr/lib/apache2-extramodules/mod_python.so

And added a config file for apache:
/etc/httpd/conf.d/16_mod_python.conf

The apache config files contained the following before my modifications:
<IfDefine HAVE_PYTHON>
<IfModule !mod_python.c>
LoadModule python_module extramodules/mod_python.so
</IfModule>
</IfDefine>
<IfModule mod_python.c>
</IfModule>

Now after reading the docs installed into /usr/share/doc for mod_python
and going through the directions at python.org, I've also changed the
config file to add a few lines to one of the directives:

<Directory /var/www/html>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
</Directory>

Now when I put the url into a browser:
http://myserver.mydomain.com/mptest.py

I get a popup from the browser because it doesn't know how to handle
mptest.py, and it asks what you want to do with the file (open it with
an application, save it to disk, etc). I can choose to open the file
with a text editor, and all it shows is the text "hello world".

That's the output of the mptest.py script.... apache isn't feeding the
browser the code from the mptest.py, only the output. (Otherwise when I
open it in a text editor I'd see the entire mptest.py script.

Contents of the mptest.py script:
from mod_python import apache

def handler(req):
req.write("Hello World!")
return apache.OK

I'm not a python developer, but have been working with Linux and Apache
for a number of years. I'm not sure where to go from here. It appears
that the script gets compiled - there is a mptest.pyc file in the
directory now. Why is it sending my browser the mptest.py file with the
stdout of the script?

Thanks in advance. Any help on this is appreciated.

Dave


This is working properly, all you want to do is set the content type so
that your browser can understand it:
req.content_type = "text/plain"
or something like that should do it.

David
Jul 18 '05 #2

P: n/a
David Fraser wrote:
digidalmation wrote:
Hello all. I've been trying to get my linux server to run mod_python.
It's a Mandrake 10 linux box, and apache/mod_python are installed from
rpms.
apache2-mod_python-2.0.48_3.1.3-1mdk
apache2-2.0.48-6mdk
The rpm installed the python module as:
/usr/lib/apache2-extramodules/mod_python.so

And added a config file for apache:
/etc/httpd/conf.d/16_mod_python.conf

The apache config files contained the following before my modifications:
<IfDefine HAVE_PYTHON>
<IfModule !mod_python.c>
LoadModule python_module extramodules/mod_python.so
</IfModule>
</IfDefine>
<IfModule mod_python.c>
</IfModule>

Now after reading the docs installed into /usr/share/doc for mod_python
and going through the directions at python.org, I've also changed the
config file to add a few lines to one of the directives:

<Directory /var/www/html>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
</Directory>

Now when I put the url into a browser:
http://myserver.mydomain.com/mptest.py

I get a popup from the browser because it doesn't know how to handle
mptest.py, and it asks what you want to do with the file (open it with
an application, save it to disk, etc). I can choose to open the file
with a text editor, and all it shows is the text "hello world".

That's the output of the mptest.py script.... apache isn't feeding the
browser the code from the mptest.py, only the output. (Otherwise when I
open it in a text editor I'd see the entire mptest.py script.

Contents of the mptest.py script:
from mod_python import apache

def handler(req):
req.write("Hello World!")
return apache.OK

I'm not a python developer, but have been working with Linux and Apache
for a number of years. I'm not sure where to go from here. It appears
that the script gets compiled - there is a mptest.pyc file in the
directory now. Why is it sending my browser the mptest.py file with the
stdout of the script?

Thanks in advance. Any help on this is appreciated.

Dave


This is working properly, all you want to do is set the content type so
that your browser can understand it:
req.content_type = "text/plain"
or something like that should do it.

David


David, you steered me in the right direction! I just added this to my
apache config file, and voila... it works.

AddType text/plain .py

Many thanks David.

Dave
Jul 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.