- 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 +FollowSymLinksOrder allow,denyAllow 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.
.htaccessconfiguration
Options +ExecCGIAddHandler cgi-script .pyDirectoryIndex index.py<IfModule mod_rewrite.c>RewriteEngine onRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{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.
