Changes between Version 7 and Version 8 of TracStandalone


Ignore:
Timestamp:
Apr 16, 2021, 8:25:01 AM (13 months ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v7 v8  
    3838 $ tracd -p 8080 -e /path/to
    3939}}}
     40
     41There is support for the HTTPS protocol (//Since 1.3.4//). Specify the path to the PEM certificate file and keyfile using the `--certfile` and `--keyfile` options. You can specify just the `--certfile` option if you have a [https://docs.python.org/2/library/ssl.html#combined-key-and-certificate combined key and certificate].
    4042
    4143To exit the server on Windows, be sure to use `CTRL-BREAK` -- using `CTRL-C` will leave a Python process running in the background.
     
    4749{{{#!cmd
    4850 C:\path\to\instsrv.exe tracd C:\path\to\srvany.exe
    49  reg add HKLM\SYSTEM\CurrentControlSet\Services\tracd\Parameters /v Application /d "\"C:\path\to\python.exe\" \"C:\path\to\python\scripts\tracd-script.py\" <your tracd parameters>"
     51 reg add HKLM\SYSTEM\CurrentControlSet\Services\tracd\Parameters /v Application /d "\"C:\path\to\python.exe\" \"C:\path\to\python\scripts\tracd.exe\" <your tracd parameters>"
    5052 net start tracd
    5153}}}
    5254
    53 '''DO NOT''' use {{{tracd.exe}}}.  Instead register {{{python.exe}}} directly with {{{tracd-script.py}}} as a parameter.  If you use {{{tracd.exe}}}, it will spawn the python process without SRVANY's knowledge.  This python process will survive a {{{net stop tracd}}}.
     55{{{#!div style="border: 1pt dotted; margin: 1em;"
     56**Attention:** Do not use `tracd.exe` directly.  Instead register `python.exe` directly with `tracd.exe` as a parameter.  If you use `tracd.exe`, it will spawn the python process without SRVANY's knowledge.  This python process will survive a `net stop tracd`.
     57}}}
    5458
    5559If you want tracd to start automatically when you boot Windows, do:
     
    6569
    6670Three (string) parameters are provided:
    67 ||!AppDirectory ||C:\Python26\ ||
     71||!AppDirectory ||C:\Python27\ ||
    6872||Application ||python.exe ||
    69 ||!AppParameters ||scripts\tracd-script.py -p 8080 ... ||
     73||!AppParameters ||scripts\tracd.exe -p 8080 ... ||
    7074
    7175Note that, if the !AppDirectory is set as above, the paths of the executable ''and'' of the script name and parameter values are relative to the directory.  This makes updating Python a little simpler because the change can be limited, here, to a single point.
     
    7579For Windows 7 User, srvany.exe may not be an option, so you can use [https://www.google.com/search?q=winserv.exe WINSERV] utility and run:
    7680{{{#!cmd
    77 "C:\path\to\winserv.exe" install tracd -displayname "tracd" -start auto "C:\path\to\python.exe" c:\path\to\python\scripts\tracd-script.py <your tracd parameters>"
     81"C:\path\to\winserv.exe" install tracd -displayname "tracd" -start auto "C:\path\to\python.exe" c:\path\to\python\scripts\tracd.exe <your tracd parameters>"
    7882net start tracd
    7983}}}
     
    198202== Reference
    199203
    200 Here's the online help, as a reminder (`tracd --help`):
     204Here's the online help, as a reminder (`tracd -h` or `tracd --help`):
    201205{{{
    202 Usage: tracd [options] [projenv] ...
    203 
    204 Options:
     206usage: tracd [-h] [--version] [-e PARENTDIR | -s]
     207             [-a DIGESTAUTH | --basic-auth BASICAUTH] [-p PORT] [-b HOSTNAME]
     208             [--protocol {http,https,scgi,ajp,fcgi}] [--certfile CERTFILE]
     209             [--keyfile KEYFILE] [-q] [--base-path BASE_PATH] [--http10 | --http11]
     210             [-r | -d] [--pidfile PIDFILE] [--umask MASK] [--group GROUP] [--user USER]
     211             [envs [envs ...]]
     212
     213positional arguments:
     214  envs                  path of the project environment(s)
     215
     216optional arguments:
     217  -h, --help            show this help message and exit
    205218  --version             show program's version number and exit
    206   -h, --help            show this help message and exit
    207   -a DIGESTAUTH, --auth=DIGESTAUTH
     219  -e PARENTDIR, --env-parent-dir PARENTDIR
     220                        parent directory of the project environments
     221  -s, --single-env      only serve a single project without the project list
     222  -a DIGESTAUTH, --auth DIGESTAUTH
    208223                        [projectdir],[htdigest_file],[realm]
    209   --basic-auth=BASICAUTH
     224  --basic-auth BASICAUTH
    210225                        [projectdir],[htpasswd_file],[realm]
    211   -p PORT, --port=PORT  the port number to bind to
    212   -b HOSTNAME, --hostname=HOSTNAME
     226  -p PORT, --port PORT  the port number to bind to
     227  -b HOSTNAME, --hostname HOSTNAME
    213228                        the host name or IP address to bind to
    214   --protocol=PROTOCOL   http|scgi|ajp|fcgi
    215   -q, --unquote         unquote PATH_INFO (may be needed when using ajp)
    216   --http10              use HTTP/1.0 protocol version instead of HTTP/1.1
    217   --http11              use HTTP/1.1 protocol version (default)
    218   -e PARENTDIR, --env-parent-dir=PARENTDIR
    219                         parent directory of the project environments
    220   --base-path=BASE_PATH
     229  --protocol {http,https,scgi,ajp,fcgi}
     230                        the server protocol (default: http)
     231  --certfile CERTFILE   PEM certificate file for HTTPS
     232  --keyfile KEYFILE     PEM key file for HTTPS
     233  -q, --unquote         unquote PATH_INFO (may be needed when using the ajp protocol)
     234  --base-path BASE_PATH
    221235                        the initial portion of the request URL's "path"
     236  --http10              use HTTP/1.0 protocol instead of HTTP/1.1
     237  --http11              use HTTP/1.1 protocol (default)
    222238  -r, --auto-reload     restart automatically when sources are modified
    223   -s, --single-env      only serve a single project without the project list
    224239  -d, --daemonize       run in the background as a daemon
    225   --pidfile=PIDFILE     when daemonizing, file to which to write pid
    226   --umask=MASK          when daemonizing, file mode creation mask to use, in
    227                         octal notation (default 022)
    228   --group=GROUP         the group to run as
    229   --user=USER           the user to run as
     240  --pidfile PIDFILE     file to write pid when daemonizing
     241  --umask MASK          when daemonizing, file mode creation mask to use, in octal
     242                        notation (default: 022)
     243  --group GROUP         the group to run as
     244  --user USER           the user to run as
    230245}}}
    231246
     
    236251=== Serving static content
    237252
    238 If `tracd` is the only web server used for the project, 
    239 it can also be used to distribute static content 
     253If `tracd` is the only web server used for the project,
     254it can also be used to distribute static content
    240255(tarballs, Doxygen documentation, etc.)
    241256
     
    244259
    245260Example: given a `$TRAC_ENV/htdocs/software-0.1.tar.gz` file,
    246 the corresponding relative URL would be `/<project_name>/chrome/site/software-0.1.tar.gz`, 
     261the corresponding relative URL would be `/<project_name>/chrome/site/software-0.1.tar.gz`,
    247262which in turn can be written as `htdocs:software-0.1.tar.gz` (TracLinks syntax) or `[/<project_name>/chrome/site/software-0.1.tar.gz]` (relative link syntax).
    248263
     
    284299    implements(IAuthenticator)
    285300
    286     obey_remote_user_header = BoolOption('trac', 'obey_remote_user_header', 'false', 
    287                """Whether the 'Remote-User:' HTTP header is to be trusted for user logins 
    288                 (''since ??.??').""") 
     301    obey_remote_user_header = BoolOption('trac', 'obey_remote_user_header', 'false',
     302               """Whether the 'Remote-User:' HTTP header is to be trusted for user logins
     303                (''since ??.??').""")
    289304
    290305    def authenticate(self, req):
    291         if self.obey_remote_user_header and req.get_header('Remote-User'): 
    292             return req.get_header('Remote-User') 
     306        if self.obey_remote_user_header and req.get_header('Remote-User'):
     307            return req.get_header('Remote-User')
    293308        return None
    294309