A. Windows Installation
Keywords: modpython

#
A. Windows Installation

Notes originally created by Enrique Vaamonde evaamo@loquesea.com

Your mileage may vary with these instructions

You need to have the following packages properly installed and configured in your system:

- Python 1.5.2 or 2.0
- Apache 1.3
- Winzip 6.x or later.

You need to download both the mod_python.dll and the mod_python-x.tgz (where x is the version number) files from the main page. Once you have all the things above mentioned we're good to go.

1. Installing mod_python libraries

   - Use Winzip to extract the distribution file (mod_python-x.tgz) into a temporary folder (i.e `C:\temp`):

   - NOTE: If Winzip shows this warning "Archive contains one file, should Winzip decompress it to a temporary folder?" just click on Yes, the content of the file should appear in Winzip right after.

   - Select all the files in Winzip and click on the Extract button, then type-in the path or just browse your way to the temporary folder and click extract.

   - Open your Windows Explorer and locate the temporary folder where you extracted the distribution file, you should have a new folder in your temporary folder (`C:\temp\mod_python-x`).

   - Move (or just drag & drop) the mod_python-x folder into the Python lib folder (i.e `C:\Program Files\Python\lib`).

   - Move the files in the folder lib inside the mod_python folder (`C:\Program Files\Python\lib\mod_python-x\lib\mod_python`) to the `C:\Program Files\Python\lib\mod_python` folder. It's safe to delete these folders we just emptied.

2. Integrating it with Apache

   Once the distribution file is correctly extracted and later moved into the Python directory, it's time to modify your Apache configuration (httpd.conf) and integrate the server with mod_python. These are a few steps we must do first:

   - Locate the file mod_python.dll that you downloaded before and move it to Apache's modules folder (i.e `C:\Program Files\Apache Group\Apache\modules`).

   - Go to the Apache configuration folder (i.e `C:\Program Files\Apache Group\Apache\conf\`) and edit the httpd.conf file.

     Add the following line in the section "Dynamic Shared Object (DSO) Support" of the httpd.conf file:

           LoadModule python_module modules/mod_python.dll

   - Add the following lines in the section ScriptAlias and CGI of the httpd.conf:

           <Directory "<Your Document Root>/python">
              AddHandler python-program .py
              PythonHandler mptest
              PythonDebug on
           </Directory>

     NOTE: Replace the <Your Document Root> above with the Document Root you specified on the DocumentRoot directive in the Apache's httpd.conf file.

   - Last, create a folder under your Document Root called python.

3. Testing

   - Create a text file in the folder we created above and call it mptest.py (you can use Notepad for this).

   - Insert the following lines and save the file (Make sure it gets saved with the .py extension):

           from mod_python import apache

           def handler(req):
              req.content_type = "text/plain"
              req.send_http_header()
              req.write("Hello World!")
              return apache.OK

   - Make sure Apache is running (or launch it!) and then point your browser to the URL referring to the mptest.py, you should see "Hello World!".

That's it, you're ready to roll!! If you don't see the "Hello World!" message, the next section is for you.