.. _cmd:
******************************
Command Line Tool - mod_python
******************************
.. _cmd-overview:
Overview of mod_python command
==============================
mod_python includes a command-line tool named ``mod_python``. The
``mod_python`` command exists to facilitate tasks related to
configuration and management of mod_python.
The general syntax for the command is ``mod_python ``
where ```` is a separate tool with its own argument requirements.
.. _cmd-subcommands:
mod_python command line tool sub-commands
=========================================
create
------
``create`` sub-command creates a simple Apache configuration and a
skeleton directory structure necessary for placement of configuration,
logs and content. It is meant to be executed only once per lifetime of
a project.
The configuration generated by ``create`` consists of an
:mod:`httpdconf` based version (in Python) which can then be used to
generate an actual Apache configuration (by using the ``genconfig``
subcommand or simply executing the config files itself). The idea is
that the Apache configuration is always generated and the Python
version is the one meant for editing/adjustments.
The ``create`` subcommand will create the necessary files and
directories if they do not exist, but will not overwrite any existing
files or directories only producing a warning when a file or directory
already exists. It will abort if the Python version of the
configuration file already exists.
``create`` requires a single argument: the distination directory,
Apache ``ServerRoot``.
``create`` has the following command options:
.. cmdoption:: --listen
A string describing the port and optional IP address on which the
server is to listen for incoming requests in the form
``[ip_address:]port`` The argument will be applied to the Apache
``Listen`` directive as is and therefore must be syntactically
compatible with it.
.. cmdoption:: --pythonpath
A colon (``":"``) separate list of paths to be applied to the
:ref:`dir-other-pp` directive.
.. cmdoption:: --pythonhandler
The name of the Python handler to use. Applied to the
:ref:`dir-handlers-ph` directive.
.. cmdoption:: --pythonoption
An option to be specified in the configuration. Multiple options
are alowed. Applied to the :ref:`dir-other-po` directive.
.. _cmd-sub-create-example:
genconfig
---------
This sub-command exists to facilitate re-generation of an Apache
configuration from a Python-based one. All it does is run the script,
but its use is recommended because the mod_python command will execute
the correct version of Python under which mod_python was initially
compiled. Example::
mod_python genconfig /path/to/server_root/httpd_conf.py > /path/to/server_root/httpd.conf
start
-----
Starts an Apache instance. Requires a single argument, the path to
Apache configuration file.
stop
----
Stops an Apache instance (using graceful-stop). Requires a single
argument, the path to Apache configuration file.
restart
-------
Stops an Apache instance (using graceful). Requires a single argument,
the path to Apache configuration file.
version
-------
This sub-command prints out version and location information about
this mod_python installation, the Apache HTTP Server and Python used
when building this mod_python instance.
Example
-------
To create an Apache instance with all the required directories for a
WSGI application which is located in ``/path/to/myapp`` and defined in
``/path/to/myapp/myapp/myapp/wsgi.py``, run the following::
mod_python create /path/to/new/server_root \
--pythonpath=/path/to/my/app \
--pythonhandler=mod_python.wsgi \
--pythonoption="mod_python.wsgi.application myapp.wsgi::application"
The above example will create a Python-based configuration in
``/path/to/new/server_root/conf/http_conf.py`` which is a simple
Pythong script. When executed, the output of the script becomes an
Apache configuration (``create`` will take care of generating the
first Apache config for you).
You should be able to run this Apache instance by executing::
mod_python start /path/to/new/server_root/conf/httpd.conf