Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Changes between Version 4 and Version 5 of TracCgi


Ignore:
Timestamp:
Nov 23, 2019, 8:07:28 PM (4 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracCgi

    v4 v5  
    11= Installing Trac as CGI
     2[[TracGuideToc]]
     3[[PageOutline]]
    24
    35{{{#!div class=important
    4   ''Please note that using Trac via CGI is the slowest deployment method available. It is slower than [TracModPython mod_python], [TracFastCgi FastCGI] and even [trac:TracOnWindowsIisAjp IIS/AJP] on Windows.''
     6 ''Please note that using Trac via CGI is the slowest deployment method available. It is slower than [wiki:TracModWSGI mod_wsgi], [TracModPython mod_python], [TracFastCgi FastCGI] and even [trac:TracOnWindowsIisAjp IIS/AJP] on Windows.''
    57}}}
    68
    7 CGI script is the entrypoint that web-server calls when a web-request to an application is made. To generate the `trac.cgi` script run:
    8 {{{#!sh
    9 trac-admin /path/to/env deploy /path/to/www/trac
    10 }}}
    11 `trac.cgi` will be in the `cgi-bin` folder inside the given path. ''Make sure it is executable by your web server''. This command also copies `static resource` files to a `htdocs` directory of a given destination.
     9CGI script is the entrypoint that web-server calls when a web-request to an application is made. The `trac.cgi` script can be created using the `trac-admin <env> deploy <dir>` command which automatically substitutes the required paths, see TracInstall#cgi-bin. Make sure the script is executable by your web server.
    1210
    1311== Apache web-server configuration
    1412
    15 In [http://httpd.apache.org/ Apache] there are two ways to run Trac as CGI:
     13In [https://httpd.apache.org/ Apache] there are two ways to run Trac as CGI:
    1614
    17  1. Use a `ScriptAlias` directive that maps an URL to the `trac.cgi` script (recommended)
     15 1. Use a `ScriptAlias` directive that maps a URL to the `trac.cgi` script (recommended)
    1816 1. Copy the `trac.cgi` file into the directory for CGI executables used by your web server (commonly named `cgi-bin`). You can also create a symbolic link, but in that case make sure that the `FollowSymLinks` option is enabled for the `cgi-bin` directory.
    1917
    2018To make Trac available at `http://yourhost.example.org/trac` add `ScriptAlias` directive to Apache configuration file, changing `trac.cgi` path to match your installation:
    21 {{{#!sh
     19{{{#!apache
    2220ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.cgi
    2321}}}
    2422
    25  ''Note that this directive requires enabled `mod_alias` module.''
     23 ''Note that this directive requires that the `mod_alias` module is enabled.''
    2624
    2725If you're using Trac with a single project you need to set its location using the `TRAC_ENV` environment variable:
     
    3937}}}
    4038
    41  ''Note that the `SetEnv` directive requires enabled `mod_env` module. It is also possible to set TRAC_ENV in trac.cgi. Just add the following code between "try:" and "from trac.web ...":''
     39  ''Note that the `SetEnv` directive requires that the `mod_env` module is enabled.''
     40
     41An alternative to `SetEnv` is editing `TRAC_ENV` or `TRAC_ENV_PARENT_DIR` in `trac.cgi`:
    4242
    4343{{{#!python
    44     import os
    4544    os.environ['TRAC_ENV'] = "/path/to/projectenv"
    4645}}}
    4746
    48  '' Or for TRAC_ENV_PARENT_DIR: ''
    49 
    5047{{{#!python
    51     import os
    52     os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/project/parent/dir"
     48    os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/parent/dir"
    5349}}}
    5450
    55 If you are using the [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature please see [trac:ApacheSuexec].
     51If you are using the [https://httpd.apache.org/docs/suexec.html Apache suEXEC] feature please see [trac:ApacheSuexec].
    5652
    57 On some systems, you ''may'' need to edit the shebang line in the `trac.cgi` file to point to your real Python installation path. On a Windows system you may need to configure Windows to know how to execute a .cgi file (Explorer -> Tools -> Folder Options -> File Types -> CGI).
     53On some systems, you ''may'' need to edit the shebang line in the `trac.cgi` file to point to your real Python installation path. On a Windows system you may need to configure Windows to know how to execute a `.cgi` file (Explorer -> Tools -> Folder Options -> File Types -> CGI).
     54
     55=== Python Egg Cache
     56
     57The [TracInstall#egg-cache egg-cache] can be configured using an `os.environ` statement in `trac.cgi`, as shown above.
     58To do the same from the Apache configuration, use the `SetEnv` directive:
     59{{{#!apache
     60SetEnv PYTHON_EGG_CACHE /path/to/dir
     61}}}
     62
     63Put this directive next to where you set the path to the [TracEnvironment Trac environment], i.e. in the same `<Location>` block.
     64
     65{{{#!apache
     66 <Location /trac>
     67   SetEnv TRAC_ENV /path/to/projenv
     68   SetEnv PYTHON_EGG_CACHE /path/to/dir
     69 </Location>
     70}}}
     71
     72
    5873
    5974=== Using WSGI
    6075
    61 You can run a [http://henry.precheur.org/python/how_to_serve_cgi WSGI handler] [http://pythonweb.org/projects/webmodules/doc/0.5.3/html_multipage/lib/example-webserver-web-wsgi-simple-cgi.html under CGI].  You can [wiki:TracModWSGI#Thetrac.wsgiscript write your own application function], or use the deployed trac.wsgi's application.
     76You can run a [http://henry.precheur.org/python/how_to_serve_cgi WSGI handler] [https://thejimmyg.github.io/pythonweb/projects/webmodules/doc/0.5.3/html_multipage/lib/example-webserver-web-wsgi-simple-cgi.html under CGI].  You can [wiki:TracModWSGI#Thetrac.wsgiscript write your own application function], or use the deployed trac.wsgi's application.
    6277
    6378== Mapping Static Resources
     
    7085
    7186----
    72 See also:  TracGuide, TracInstall, [wiki:TracModWSGI], TracFastCgi, TracModPython
     87See also:  TracInstall, [wiki:TracModWSGI], TracFastCgi, TracModPython
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!