Skip to content

Commit

Permalink
edit
Browse files Browse the repository at this point in the history
  • Loading branch information
ohsc authored and anandology committed Jan 5, 2011
1 parent bc0f2c3 commit d09d383
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions cookbook/cgi-apache.zh-cn.md
@@ -0,0 +1,45 @@
---
layout: default
title: CGI deployment on Apache
---

# CGI deployment on Apache

Here are the simple steps needed to create and run an web.py application.

* Install web.py and flups

* Create the application as documented

if __name__ == "__main__":
web.run(urls, globals())

For our example, let it be named `app.py`, located in `/www/app` and we need it accessible as `http://server/app/app.py`.

* Configure Apache (version 2.2 in this example)

ScriptAlias /app "/www/app/"
<Directory "/www/app/">
Options +ExecCGI +FollowSymLinks
Order allow,deny
Allow from all
</Directory>

That's it. Your application is accessible via `http://server/app/app.py/`. Additional URLs handled by the application are added to the end of the URL, for examples `http://server/app/app.py/myurl`.

* .htaccess configuration

Options +ExecCGI
AddHandler cgi-script .py
DirectoryIndex index.py
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/favicon.ico$
RewriteCond %{REQUEST_URI} !^(/.*)+index.py/
RewriteRule ^(.*)$ index.py/$1 [PT]
</IfModule>

Here it is assumed that your application is called index.py. The above htaccess checks if some static file/directory exists failing which it routes the data to your index.py. Change the Rewrite Base to a sub-directory if needed.

0 comments on commit d09d383

Please sign in to comment.