Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

45 lines (33 sloc) 1.661 kb
layout title
default
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.

Jump to Line
Something went wrong with that request. Please try again.