codecamp

mod_wsgi (Apache)

mod_wsgi (Apache)

If you are using the Apache [http://httpd.apache.org/] webserver you should consider using mod_wsgi [http://code.google.com/p/modwsgi/].

Installing mod_wsgi

If you don't have mod_wsgi installed yet you have to either install it usinga package manager or compile it yourself.

The mod_wsgi installation instructions [http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide] cover installation instructions forsource installations on UNIX systems.

If you are using ubuntu / debian you can apt-get it and activate it as follows:

# apt-get install libapache2-mod-wsgi

On FreeBSD install mod_wsgi by compiling the www/mod_wsgi port or by usingpkg_add:

# pkg_add -r mod_wsgi

If you are using pkgsrc you can install mod_wsgi by compiling thewww/ap2-wsgi package.

If you encounter segfaulting child processes after the first apache reload youcan safely ignore them. Just restart the server.

Creating a .wsgi file

To run your application you need a yourapplication.wsgi file. This filecontains the code mod_wsgi is executing on startup to get the applicationobject. The object called application in that file is then used asapplication.

For most applications the following file should be sufficient:

from yourapplication import make_app
application = make_app()

If you don't have a factory function for application creation but a singletoninstance you can directly import that one as application.

Store that file somewhere where you will find it again (eg:/var/www/yourapplication) and make sure that yourapplication and allthe libraries that are in use are on the python load path. If you don'twant to install it system wide consider using a virtual python [http://pypi.python.org/pypi/virtualenv] instance.

Configuring Apache

The last thing you have to do is to create an Apache configuration file foryour application. In this example we are telling mod_wsgi to execute theapplication under a different user for security reasons:

<VirtualHost *>
    ServerName example.com

    WSGIDaemonProcess yourapplication user=user1 group=group1 processes=2 threads=5
    WSGIScriptAlias / /var/www/yourapplication/yourapplication.wsgi

    <Directory /var/www/yourapplication>
        WSGIProcessGroup yourapplication
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

For more information consult the mod_wsgi wiki [http://code.google.com/p/modwsgi/wiki/].

CGI
FastCGI
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }