Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/app/static/doc/flask-docs/_sources/deploying/mod_wsgi.txt
diff options
context:
space:
mode:
Diffstat (limited to 'app/static/doc/flask-docs/_sources/deploying/mod_wsgi.txt')
-rw-r--r--app/static/doc/flask-docs/_sources/deploying/mod_wsgi.txt167
1 files changed, 0 insertions, 167 deletions
diff --git a/app/static/doc/flask-docs/_sources/deploying/mod_wsgi.txt b/app/static/doc/flask-docs/_sources/deploying/mod_wsgi.txt
deleted file mode 100644
index c85ed64..0000000
--- a/app/static/doc/flask-docs/_sources/deploying/mod_wsgi.txt
+++ /dev/null
@@ -1,167 +0,0 @@
-.. _mod_wsgi-deployment:
-
-mod_wsgi (Apache)
-=================
-
-If you are using the `Apache`_ webserver, consider using `mod_wsgi`_.
-
-.. admonition:: Watch Out
-
- Please make sure in advance that any ``app.run()`` calls you might
- have in your application file are inside an ``if __name__ ==
- '__main__':`` block or moved to a separate file. Just make sure it's
- not called because this will always start a local WSGI server which
- we do not want if we deploy that application to mod_wsgi.
-
-.. _Apache: http://httpd.apache.org/
-
-Installing `mod_wsgi`
----------------------
-
-If you don't have `mod_wsgi` installed yet you have to either install it
-using a package manager or compile it yourself. The mod_wsgi
-`installation instructions`_ cover source installations on UNIX systems.
-
-If you are using Ubuntu/Debian you can apt-get it and activate it as
-follows:
-
-.. sourcecode:: text
-
- # apt-get install libapache2-mod-wsgi
-
-On FreeBSD install `mod_wsgi` by compiling the `www/mod_wsgi` port or by
-using pkg_add:
-
-.. sourcecode:: text
-
- # pkg_add -r mod_wsgi
-
-If you are using pkgsrc you can install `mod_wsgi` by compiling the
-`www/ap2-wsgi` package.
-
-If you encounter segfaulting child processes after the first apache
-reload you can safely ignore them. Just restart the server.
-
-Creating a `.wsgi` file
------------------------
-
-To run your application you need a `yourapplication.wsgi` file. This file
-contains the code `mod_wsgi` is executing on startup to get the application
-object. The object called `application` in that file is then used as
-application.
-
-For most applications the following file should be sufficient::
-
- from yourapplication import app as application
-
-If you don't have a factory function for application creation but a singleton
-instance you can directly import that one as `application`.
-
-Store that file somewhere that you will find it again (e.g.:
-`/var/www/yourapplication`) and make sure that `yourapplication` and all
-the libraries that are in use are on the python load path. If you don't
-want to install it system wide consider using a `virtual python`_
-instance.
-
-Configuring Apache
-------------------
-
-The last thing you have to do is to create an Apache configuration file
-for your application. In this example we are telling `mod_wsgi` to
-execute the application under a different user for security reasons:
-
-.. sourcecode:: apache
-
- <VirtualHost *>
- ServerName example.com
-
- WSGIDaemonProcess yourapplication user=user1 group=group1 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`_.
-
-.. _mod_wsgi: http://code.google.com/p/modwsgi/
-.. _installation instructions: http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide
-.. _virtual python: http://pypi.python.org/pypi/virtualenv
-.. _mod_wsgi wiki: http://code.google.com/p/modwsgi/wiki/
-
-Troubleshooting
----------------
-
-If your application does not run, follow this guide to troubleshoot:
-
-**Problem:** application does not run, errorlog shows SystemExit ignored
- You have a ``app.run()`` call in your application file that is not
- guarded by an ``if __name__ == '__main__':`` condition. Either
- remove that :meth:`~flask.Flask.run` call from the file and move it
- into a separate `run.py` file or put it into such an if block.
-
-**Problem:** application gives permission errors
- Probably caused by your application running as the wrong user. Make
- sure the folders the application needs access to have the proper
- privileges set and the application runs as the correct user
- (``user`` and ``group`` parameter to the `WSGIDaemonProcess`
- directive)
-
-**Problem:** application dies with an error on print
- Keep in mind that mod_wsgi disallows doing anything with
- :data:`sys.stdout` and :data:`sys.stderr`. You can disable this
- protection from the config by setting the `WSGIRestrictStdout` to
- ``off``:
-
- .. sourcecode:: apache
-
- WSGIRestrictStdout Off
-
- Alternatively you can also replace the standard out in the .wsgi file
- with a different stream::
-
- import sys
- sys.stdout = sys.stderr
-
-**Problem:** accessing resources gives IO errors
- Your application probably is a single .py file you symlinked into
- the site-packages folder. Please be aware that this does not work,
- instead you either have to put the folder into the pythonpath the
- file is stored in, or convert your application into a package.
-
- The reason for this is that for non-installed packages, the module
- filename is used to locate the resources and for symlinks the wrong
- filename is picked up.
-
-Support for Automatic Reloading
--------------------------------
-
-To help deployment tools you can activate support for automatic
-reloading. Whenever something changes the `.wsgi` file, `mod_wsgi` will
-reload all the daemon processes for us.
-
-For that, just add the following directive to your `Directory` section:
-
-.. sourcecode:: apache
-
- WSGIScriptReloading On
-
-Working with Virtual Environments
----------------------------------
-
-Virtual environments have the advantage that they never install the
-required dependencies system wide so you have a better control over what
-is used where. If you want to use a virtual environment with mod_wsgi
-you have to modify your `.wsgi` file slightly.
-
-Add the following lines to the top of your `.wsgi` file::
-
- activate_this = '/path/to/env/bin/activate_this.py'
- execfile(activate_this, dict(__file__=activate_this))
-
-This sets up the load paths according to the settings of the virtual
-environment. Keep in mind that the path has to be absolute.