3.1 Installing mod_python
To install mod_python, we simply run:
yum install mod_python
3.2 Configuring Apache
Now we must configure Apache so that it can handle Python files. There are
two ways of doing so. The first (and default) one is to use the Publisher Handler. It allows you to write pure Python
scripts with the extension .py that will be interpreted by Apache. The second
way is the PSP Handler. PSP stands for Python
Server Pages. It allows you to embed Python code directly in HTML code, similar
to PHP. PSP files have the extension .psp.
3.2.1 The Publisher Handler
To enable the Publisher Handler, we must edit the mod_python configuration
which you can find in /etc/httpd/conf.d/python.conf. This file contains many
examples - we make a backup of it and create that file again from scratch. I‘m
using the default Fedora/CentOS document root /var/www/html here in the<Directory> directive - adjust this to your
needs. The important lines are AddHandler mod_python
.py and PythonHandler
mod_python.publisher:
cp /etc/httpd/conf.d/python.conf
/etc/httpd/conf.d/python.conf_orig
cat /dev/null >
/etc/httpd/conf.d/python.conf
vi /etc/httpd/conf.d/python.conf
LoadModule python_module modules/mod_python.so |
Please note: if you use ISPConfig (from version 2.2.24 on)
on the server, please leave out the <Directory ...>...</Directory>
part in the above file since that would enable mod_python globally for the
directory in question. In ISPConfig you can enable mod_python on a per-website
basis instead which gives you more control whether a website can use mod_python
or not.
Restart Apache afterwards:
/etc/init.d/httpd restart
Now we create a little Python test script (e.g. /var/www/html/test.py) with pure Python code in it...
vi /var/www/html/test.py
def index(req): |
... and call it in a browser (e.g. http://192.168.0.100/test.py). If all goes well, it should
display Test successful in your
browser.
3.2.2 The PSP Handler
To enable the PSP Handler, we must edit the mod_python configuration which
you can find in /etc/httpd/conf.d/python.conf.
This file contains many examples - we make a backup of it and create that file
again from scratch. I‘m using the default Fedora/CentOS document root /var/www/html here in the <Directory>directive - adjust this to your needs.
The important lines are AddHandler mod_python
.py and PythonHandler
mod_python.psp:
cp /etc/httpd/conf.d/python.conf
/etc/httpd/conf.d/python.conf_orig
cat /dev/null >
/etc/httpd/conf.d/python.conf
vi /etc/httpd/conf.d/python.conf
LoadModule python_module modules/mod_python.so |
Please note: if you use ISPConfig (from version
2.2.24 on) on the server, please leave out the <Directory
...>...</Directory> part in the above file since that would enable
mod_python globally for the directory in question. In ISPConfig you can enable
mod_python on a per-website basis instead which gives you more control whether a
website can use mod_python or not. Also note that ISPConfig does not support the
PSP Handler - it uses the Publisher Handler.
Restart Apache afterwards:
/etc/init.d/httpd restart
Now we create a little PSP test script (e.g. /var/www/html/test.psp) with HTML and Python code in
it...
vi /var/www/html/test.psp
<html> |
... and call it in a browser (e.g. http://192.168.0.100/test.psp). If all goes well, it
should display Hello! in your
browser.
fedora安装mod_python,布布扣,bubuko.com