Browse Source

Update mod_wsgi.rst

Added deploying information to a shared hosting
pull/2844/head
Ofen 7 years ago committed by GitHub
parent
commit
fc20f584dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 55
      docs/deploying/mod_wsgi.rst

55
docs/deploying/mod_wsgi.rst

@ -215,3 +215,58 @@ For Python 3 add the following lines to the top of your ``.wsgi`` file::
This sets up the load paths according to the settings of the virtual This sets up the load paths according to the settings of the virtual
environment. Keep in mind that the path has to be absolute. environment. Keep in mind that the path has to be absolute.
Deploying to shared hosting
---------------------------------
You can deploy flask application to shared hosting.
`Requirements:`
1. Shared hosting with ``SSH`` and ``mod_wsgi`` support
2. Python with pip and virtualenv module (pre-installed or compiled from source to ``~/.local/``)
3. Virtual enviroment with flask application dependencies
4. Flask application inside your ``/public_html`` folder
5. ``.htaccess`` file and ``wsgi-script`` (e.g. ``wsgi.py``)
Content of ``.htaccess`` file:
.. sourcecode:: apache
AddDefaultCharset utf-8
AddHandler wsgi-script .py
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /wsgi.py/$1 [QSA,L]
Content of ``wsgi.py`` file:
.. sourcecode:: python
#!/home/u/username/.local/bin/python
# -*- coding: utf-8 -*-
import logging
import sys
# Adding dependencies for flask application to $PATH
sys.path.insert(0, '/home/u/username/public_html/venv/lib/python3.6/site-packages/')
# Adding flask application folder to $PATH
sys.path.insert(0, '/home/u/username/public_html/')
# Importing flask application
from app import app
# Removing wsgi.py file name from url
class ScriptNameStripper(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
environ['SCRIPT_NAME'] = ''
return self.app(environ, start_response)
application = ScriptNameStripper(app)

Loading…
Cancel
Save