.. _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