diff --git a/docs/docs/extras/deployment.rst b/docs/docs/extras/deployment.rst index 2aa53c6..b2c19e8 100644 --- a/docs/docs/extras/deployment.rst +++ b/docs/docs/extras/deployment.rst @@ -98,28 +98,45 @@ To execute Isso, use a command similar to: `mod_wsgi `__ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -First, create a startup script, called `isso.wsgi`. If Isso is in your system module -search path, then the script is quite simple: +First, create a startup script, called `isso.wsgi`. If Isso is in your system module +search path, then the script is quite simple. This script is included in the +isso distribution as `run.py`: .. code-block:: python + from __future__ import unicode_literals + + import os + from isso import make_app - from isso.core import Config + from isso import dist, config - application = make_app(Config.load("/path/to/isso.cfg")) + application = make_app( + config.load( + os.path.join(dist.location, dist.project_name, "defaults.ini"), + "/path/to/isso.cfg"), + multiprocessing=True) If you have installed Isso in a virtual environment, then you will have to add the path of the virtualenv to the site-specific paths of Python: .. code-block:: python - + + from __future__ import unicode_literals + import site site.addsitedir("/path/to/isso_virtualenv") + import os + from isso import make_app - from isso.core import Config + from isso import dist, config - application = make_app(Config.load("/path/to/isso.cfg")) + application = make_app( + config.load( + os.path.join(dist.location, dist.project_name, "defaults.ini"), + "/path/to/isso.cfg", + multiprocessing=True) Using the aforementioned script will load system modules when available and modules from the virtualenv otherwise. Should you want the opposite behavior, where modules from @@ -127,32 +144,39 @@ the virtualenv have priority over system modules, the following script does the .. code-block:: python - import site - import sys + from __future__ import unicode_literals + + import os + import site + import sys # Remember original sys.path. - prev_sys_path = list(sys.path) + prev_sys_path = list(sys.path) # Add the new site-packages directory. site.addsitedir("/path/to/isso_virtualenv") # Reorder sys.path so new directories at the front. - new_sys_path = [] - for item in list(sys.path): - if item not in prev_sys_path: - new_sys_path.append(item) - sys.path.remove(item) - sys.path[:0] = new_sys_path - + new_sys_path = [] + for item in list(sys.path): + if item not in prev_sys_path: + new_sys_path.append(item) + sys.path.remove(item) + sys.path[:0] = new_sys_path + from isso import make_app - from isso.core import Config + from isso import dist, config - application = make_app(Config.load("/path/to/isso.cfg")) + application = make_app( + config.load( + os.path.join(dist.location, dist.project_name, "defaults.ini"), + "/path/to/isso.cfg", + multiprocessing=True) -The last two scripts are based on those given by +The last two scripts are based on those given by `mod_wsgi documentation `_. -The Apache configuration will then be similar to the following: +The Apache configuration will then be similar to the following: .. code-block:: apache @@ -163,9 +187,9 @@ The Apache configuration will then be similar to the following: WSGIScriptAlias /mounted_isso_path /path/to/isso.wsgi -You will need to adjust the user and group according to your Apache installation and +You will need to adjust the user and group according to your Apache installation and security policy. Be also aware that the directory containing the comments database must -be writable by the user or group running the WSGI daemon process: having a writable +be writable by the user or group running the WSGI daemon process: having a writable database only is not enough, since SQLite will need to create a lock file in the same directory.