summaryrefslogtreecommitdiff
path: root/docs/install.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/install.rst')
-rw-r--r--docs/install.rst156
1 files changed, 156 insertions, 0 deletions
diff --git a/docs/install.rst b/docs/install.rst
new file mode 100644
index 00000000..68dd9692
--- /dev/null
+++ b/docs/install.rst
@@ -0,0 +1,156 @@
+
+Installation
+------------
+
+CherryPy is a pure Python library. This has various consequences:
+
+ - It can run anywhere Python runs
+ - It does not require a C compiler
+ - It can run on various implementations of the Python language: `CPython <http://python.org/>`_,
+ `IronPython <http://ironpython.net/>`_, `Jython <http://www.jython.org/>`_ and `PyPy <http://pypy.org/>`_
+
+.. contents::
+ :depth: 4
+
+Requirements
+############
+
+CherryPy does not have any mandatory requirements. However certain features it comes with
+will require you install certain packages.
+
+- `routes <http://routes.readthedocs.org/en/latest/>`_ for declarative URL mapping dispatcher
+- `psycopg2 <http://pythonhosted.org//psycopg2/>`_ for PostgreSQL backend session
+- `pywin32 <http://sourceforge.net/projects/pywin32/>`_ for Windows services
+- `python-memcached <https://github.com/linsomniac/python-memcached>`_ for memcached backend session
+- `simplejson <https://github.com/simplejson/simplejson>`_ for a better JSON support
+- `pyOpenSSL <https://github.com/pyca/pyopenssl>`_ if your Python environment does not have the builtin :mod:`ssl` module
+
+Supported python version
+########################
+
+CherryPy supports Python 2.3 through to 3.4.
+
+
+Installing
+##########
+
+CherryPy can be easily installed via common Python package managers such as setuptools or pip.
+
+.. code-block:: bash
+
+ $ easy_install cherrypy
+
+
+.. code-block:: bash
+
+ $ pip install cherrypy
+
+You may also get the latest CherryPy version by grabbing the source code from BitBucket:
+
+.. code-block:: bash
+
+ $ hg clone https://bitbucket.org/cherrypy/cherrypy
+ $ cd cherrypy
+ $ python setup.py install
+
+Test your installation
+^^^^^^^^^^^^^^^^^^^^^^
+
+CherryPy comes with a set of simple tutorials that can be executed
+once you have deployed the package.
+
+.. code-block:: bash
+
+ $ python -m cherrypy.tutorial.tut01_helloworld
+
+Point your browser at http://127.0.0.1:8080 and enjoy the magic.
+
+Once started the above command shows the following logs:
+
+.. code-block:: bash
+
+ [15/Feb/2014:21:51:22] ENGINE Listening for SIGHUP.
+ [15/Feb/2014:21:51:22] ENGINE Listening for SIGTERM.
+ [15/Feb/2014:21:51:22] ENGINE Listening for SIGUSR1.
+ [15/Feb/2014:21:51:22] ENGINE Bus STARTING
+ [15/Feb/2014:21:51:22] ENGINE Started monitor thread 'Autoreloader'.
+ [15/Feb/2014:21:51:22] ENGINE Started monitor thread '_TimeoutMonitor'.
+ [15/Feb/2014:21:51:22] ENGINE Serving on http://127.0.0.1:8080
+ [15/Feb/2014:21:51:23] ENGINE Bus STARTED
+
+We will explain what all those lines mean later on, but suffice
+to know that once you see the last two lines, your server
+is listening and ready to receive requests.
+
+Run it
+######
+
+During development, the easiest path is to run your application as
+follow:
+
+.. code-block:: bash
+
+ $ python myapp.py
+
+As long as `myapp.py` defines a `"__main__"` section, it will
+run just fine.
+
+cherryd
+^^^^^^^
+
+Another way to run the application is through the ``cherryd`` script
+which is installed along side CherryPy.
+
+.. note::
+
+ This utility command will not concern you if you embed your
+ application with another framework.
+
+Command-Line Options
+~~~~~~~~~~~~~~~~~~~~
+
+.. program:: cherryd
+
+.. cmdoption:: -c, --config
+
+ Specify config file(s)
+
+.. cmdoption:: -d
+
+ Run the server as a daemon
+
+.. cmdoption:: -e, --environment
+
+ Apply the given config environment (defaults to None)
+
+
+.. index:: FastCGI
+
+.. cmdoption:: -f
+
+ Start a :ref:`FastCGI <fastcgi>` server instead of the default HTTP server
+
+
+.. index:: SCGI
+
+.. cmdoption:: -s
+
+ Start a SCGI server instead of the default HTTP server
+
+
+.. cmdoption:: -i, --import
+
+ Specify modules to import
+
+
+.. index:: PID file
+
+.. cmdoption:: -p, --pidfile
+
+ Store the process id in the given file (defaults to None)
+
+
+.. cmdoption:: -P, --Path
+
+ Add the given paths to sys.path
+