Browse Source

Update mod_wsgi.rst

Added deploying information to a shared hosting
pull/2844/head
Ofen 6 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
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