- 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.