Changes between Version 2 and Version 3 of TracInstall


Ignore:
Timestamp:
Dec 25, 2018, 9:20:53 PM (6 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracInstall

    v2 v3  
    1 = Trac Installation Guide for 1.1
     1= Trac Installation Guide for 1.2
    22[[TracGuideToc]]
    33
     
    7575Alternatively you can configure Trac to run in any of the following environments:
    7676 * [http://httpd.apache.org/ Apache] with
    77    - [https://github.com/GrahamDumpleton/mod_wsgi mod_wsgi], see [wiki:TracModWSGI] and
    78      [http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac ModWSGI IntegrationWithTrac].
    79    - [http://modpython.org/ mod_python 3.5.0], see TracModPython
     77  * [https://github.com/GrahamDumpleton/mod_wsgi mod_wsgi], see [wiki:TracModWSGI] and [http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac ModWSGI IntegrationWithTrac].
     78  * [http://modpython.org/ mod_python 3.5.0], see TracModPython
    8079 * a [http://www.fastcgi.com/ FastCGI]-capable web server (see TracFastCgi)
    8180 * an [http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html AJP]-capable web
     
    138137Assuming you want to have your entire pip installation in `/opt/user/trac`
    139138
    140  -
    141139 {{{#!sh
    142 pip install trac psycopg2
     140$ pip install trac psycopg2
    143141}}}
    144142or
    145  -
    146143 {{{#!sh
    147 pip install trac mysql-python
     144$ pip install trac mysql-python
    148145}}}
    149146
     
    186183To install Trac to a custom location, or find out about other advanced installation options, run:
    187184{{{#!sh
    188 easy_install --help
     185$ easy_install --help
    189186}}}
    190187
     
    193190Specifically, you might be interested in:
    194191{{{#!sh
    195 easy_install --prefix=/path/to/installdir
     192$ easy_install --prefix=/path/to/installdir
    196193}}}
    197194or, if installing Trac on a Mac OS X system:
    198195{{{#!sh
    199 easy_install --prefix=/usr/local --install-dir=/Library/Python/2.6/site-packages
     196$ easy_install --prefix=/usr/local --install-dir=/Library/Python/2.6/site-packages
    200197}}}
    201198
     
    215212}}}
    216213
    217 [TracAdmin trac-admin] will prompt you for the information it needs to create the environment: the name of the project and the [TracEnvironment#DatabaseConnectionStrings database connection string]. If you're not sure what to specify for any of these options, just press `<Enter>` to use the default value.
     214You will be prompted for the information needed to create the environment: the name of the project and the [TracEnvironment#DatabaseConnectionStrings database connection string]. If you're not sure what to specify for any of these options, just press `<Enter>` to use the default value.
    218215
    219216Using the default database connection string will always work as long as you have SQLite installed. For the other [trac:DatabaseBackend database backends] you should plan ahead and already have a database ready to use at this point.
     
    274271 - [wiki:TracModWSGI Apache with mod_wsgi]
    275272 - [TracModPython Apache with mod_python]
    276  - //[TracCgi CGI] (should not be used, as the performance is far from optimal)//
     273 - [TracCgi CGI] //(should not be used, as the performance is far from optimal)//
    277274
    278275Trac also supports [trac:TracOnWindowsIisAjp AJP] which may be your choice if you want to connect to IIS. Other deployment scenarios are possible: [trac:TracNginxRecipe nginx], [http://projects.unbit.it/uwsgi/wiki/Example#Traconapacheinasub-uri uwsgi], [trac:TracOnWindowsIisIsapi Isapi-wsgi] etc.
     
    280277==== Generating the Trac cgi-bin directory #cgi-bin
    281278
    282 In order for Trac to function properly with FastCGI you need to have a `trac.fcgi` file and for mod_wsgi a `trac.wsgi` file. These are Python scripts which load the appropriate Python code. They can be generated using the `deploy` option of [TracAdmin trac-admin].
    283 
    284 There is, however, a bit of a chicken-and-egg problem. The [TracAdmin trac-admin] command requires an existing environment to function, but complains if the deploy directory already exists. This is a problem, because environments are often stored in a subdirectory of the deploy. The solution is to do something like this:
    285 {{{#!sh
    286 mkdir -p /usr/share/trac/projects/my-project
    287 trac-admin /usr/share/trac/projects/my-project initenv
    288 trac-admin /usr/share/trac/projects/my-project deploy /tmp/deploy
    289 mv /tmp/deploy/* /usr/share/trac
    290 }}}
    291 Don't forget to check that the web server has the execution right on scripts in the `/usr/share/trac/cgi-bin` directory.
     279Application scripts for CGI, FastCGI and mod-wsgi can be generated using the [TracAdmin trac-admin] `deploy` command:
     280[[TracAdminHelp(deploy)]]
     281
     282Grant the web server execution right on scripts in the `cgi-bin` directory.
     283
     284For example, the following yields a typical directory structure:
     285{{{#!sh
     286$ mkdir -p /var/trac
     287$ trac-admin /var/trac/<project> initenv
     288$ trac-admin /var/trac/<project> deploy /var/www
     289$ ls /var/www
     290cgi-bin htdocs
     291$ chmod ugo+x /var/www/cgi-bin/*
     292}}}
    292293
    293294==== Mapping Static Resources
     
    299300There are two primary URL paths for static resources: `/chrome/common` and `/chrome/site`. Plugins can add their own resources, usually accessible at the `/chrome/<plugin>` path.
    300301
    301 A single `/chrome` alias can used if the static resources are extracted for all plugins. This means that the `deploy` command must be executed after installing or updating a plugin that provides static resources, or after modifying resources in the `$env/htdocs` directory. This is probably appropriate for most installations but may not be what you want if, for example, you wish to upload plugins through the //Plugins// administration page.
    302 
    303 The resources are extracted using the [TracAdmin trac-admin]` <environment> deploy` command:
    304 [[TracAdminHelp(deploy)]]
    305 
    306 The target `<directory>` will contain an `htdocs` directory with:
     302A single `/chrome` alias can used if the static resources are extracted for all plugins. This means that the `deploy` command (discussed in the previous section) must be executed after installing or updating a plugin that provides static resources, or after modifying resources in the `$env/htdocs` directory. This is probably appropriate for most installations but may not be what you want if, for example, you wish to upload plugins through the //Plugins// administration page.
     303
     304The `deploy` command creates an `htdocs` directory with:
    307305 - `common/` - the static resources of Trac
    308306 - `site/` - a copy of the environment's `htdocs/` directory
     
    322320Assuming the deployment has been done this way:
    323321{{{#!sh
    324 $ trac-admin /var/trac/env deploy /path/to/shared/trac
     322$ trac-admin /var/trac/<project> deploy /var/www
    325323}}}
    326324
     
    366364}}}
    367365
    368 Another alternative to aliasing `/trac/chrome/common` is having Trac generate direct links for those static resources (and only those), using the [[TracIni#trac-section| [trac] htdocs_location]] configuration setting:
     366Another alternative to aliasing `/trac/chrome/common` is having Trac generate direct links for those static resources (and only those), using the [TracIni#trac-section htdocs_location] configuration setting:
    369367{{{#!ini
    370368[trac]
     
    379377}}}
    380378
    381 ==== Setting up the Plugin Cache
     379==== Setting up the Plugin Cache #egg-cache
    382380
    383381Some Python plugins need to be extracted to a cache directory. By default the cache resides in the home directory of the current user. When running Trac on a Web Server as a dedicated user (which is highly recommended) who has no home directory, this might prevent the plugins from starting. To override the cache location you can set the `PYTHON_EGG_CACHE` environment variable. Refer to your server documentation for detailed instructions on how to set environment variables.
     382
     383If you setup hook scripts that call Trac, such as the Subversion post-commit hook script provided in the `/contrib` directory, make sure you define the `PYTHON_EGG_CACHE` environment variable within these scripts as well.
    384384
    385385== Configuring Authentication