Changes between Version 3 and Version 4 of TracStandalone


Ignore:
Timestamp:
2024-11-18T21:51:26Z (6 days ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v3 v4  
    3939}}}
    4040
     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].
     42
    4143To exit the server on Windows, be sure to use `CTRL-BREAK` -- using `CTRL-C` will leave a Python process running in the background.
    4244
     
    4446
    4547=== Option 1
    46 To install as a Windows service, get the [http://www.google.com/search?q=srvany.exe SRVANY] utility and run:
     48To install as a Windows service, get the [https://www.google.com/search?q=srvany.exe SRVANY] utility and run:
    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.
     
    7377}}}
    7478
    75 For Windows 7 User, srvany.exe may not be an option, so you can use [http://www.google.com/search?q=winserv.exe WINSERV] utility and run:
     79For 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}}}
     
    8185=== Option 2
    8286
    83 Use [http://trac-hacks.org/wiki/WindowsServiceScript WindowsServiceScript], available at [http://trac-hacks.org/ Trac Hacks]. Installs, removes, starts, stops, etc. your Trac service.
     87Use [https://trac-hacks.org/wiki/WindowsServiceScript WindowsServiceScript], available at [https://trac-hacks.org/ Trac Hacks]. Installs, removes, starts, stops, etc. your Trac service.
    8488
    8589=== Option 3
     
    141145This section describes how to use `tracd` with Apache .htpasswd files.
    142146
    143   Note: It is necessary (at least with Python 2.6) to install the fcrypt package in order to
    144   decode some htpasswd formats.  Trac source code attempt an `import crypt` first, but there
    145   is no such package for Python 2.6. Only `SHA-1` passwords (since Trac 1.0) work without this module.
     147  Note: On Windows It is necessary to install the [https://pypi.python.org/pypi/passlib passlib]
     148  package in order to decode some htpasswd formats. Only `SHA-1` passwords (since Trac 1.0)
     149  work without this module.
    146150
    147151To create a .htpasswd file use Apache's `htpasswd` command (see [#GeneratingPasswordsWithoutApache below] for a method to create these files without using Apache):
     
    167171=== Digest authentication: Using a htdigest password file
    168172
    169 If you have Apache available, you can use the htdigest command to generate the password file. Type 'htdigest' to get some usage instructions, or read [http://httpd.apache.org/docs/2.0/programs/htdigest.html this page] from the Apache manual to get precise instructions.  You'll be prompted for a password to enter for each user that you create.  For the name of the password file, you can use whatever you like, but if you use something like `users.htdigest` it will remind you what the file contains. As a suggestion, put it in your <projectname>/conf folder along with the [TracIni trac.ini] file.
     173If you have Apache available, you can use the htdigest command to generate the password file. Type 'htdigest' to get some usage instructions, or read [https://httpd.apache.org/docs/2.0/programs/htdigest.html this page] from the Apache manual to get precise instructions.  You'll be prompted for a password to enter for each user that you create.  For the name of the password file, you can use whatever you like, but if you use something like `users.htdigest` it will remind you what the file contains. As a suggestion, put it in your <projectname>/conf folder along with the [TracIni trac.ini] file.
    170174
    171175Note that you can start tracd without the `--auth` argument, but if you click on the ''Login'' link you will get an error.
     
    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]
     210             [--http10 | --http11] [-r | -d] [--pidfile PIDFILE] [--umask MASK]
     211             [--group GROUP] [--user USER]
     212             [envs ...]
     213
     214positional arguments:
     215  envs                  path of the project environment(s)
     216
     217optional arguments:
     218  -h, --help            show this help message and exit
    205219  --version             show program's version number and exit
    206   -h, --help            show this help message and exit
    207   -a DIGESTAUTH, --auth=DIGESTAUTH
     220  -e PARENTDIR, --env-parent-dir PARENTDIR
     221                        parent directory of the project environments
     222  -s, --single-env      only serve a single project without the project list
     223  -a DIGESTAUTH, --auth DIGESTAUTH
    208224                        [projectdir],[htdigest_file],[realm]
    209   --basic-auth=BASICAUTH
     225  --basic-auth BASICAUTH
    210226                        [projectdir],[htpasswd_file],[realm]
    211   -p PORT, --port=PORT  the port number to bind to
    212   -b HOSTNAME, --hostname=HOSTNAME
     227  -p PORT, --port PORT  the port number to bind to
     228  -b HOSTNAME, --hostname HOSTNAME
    213229                        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
     230  --protocol {http,https,scgi,ajp,fcgi}
     231                        the server protocol (default: http)
     232  --certfile CERTFILE   PEM certificate file for HTTPS
     233  --keyfile KEYFILE     PEM key file for HTTPS
     234  -q, --unquote         unquote PATH_INFO (may be needed when using the ajp
     235                        protocol)
     236  --base-path BASE_PATH
    221237                        the initial portion of the request URL's "path"
     238  --http10              use HTTP/1.0 protocol instead of HTTP/1.1
     239  --http11              use HTTP/1.1 protocol (default)
    222240  -r, --auto-reload     restart automatically when sources are modified
    223   -s, --single-env      only serve a single project without the project list
    224241  -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
     242  --pidfile PIDFILE     file to write pid when daemonizing
     243  --umask MASK          when daemonizing, file mode creation mask to use, in
     244                        octal notation (default: 022)
     245  --group GROUP         the group to run as
     246  --user USER           the user to run as
    230247}}}
    231248
     
    236253=== Serving static content
    237254
    238 If `tracd` is the only web server used for the project, 
    239 it can also be used to distribute static content 
     255If `tracd` is the only web server used for the project,
     256it can also be used to distribute static content
    240257(tarballs, Doxygen documentation, etc.)
    241258
     
    244261
    245262Example: 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`, 
     263the corresponding relative URL would be `/<project_name>/chrome/site/software-0.1.tar.gz`,
    247264which 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).
    248265
     
    284301    implements(IAuthenticator)
    285302
    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 ??.??').""") 
     303    obey_remote_user_header = BoolOption('trac', 'obey_remote_user_header', 'false',
     304               """Whether the 'Remote-User:' HTTP header is to be trusted for user logins
     305                (''since ??.??').""")
    289306
    290307    def authenticate(self, req):
    291         if self.obey_remote_user_header and req.get_header('Remote-User'): 
    292             return req.get_header('Remote-User') 
     308        if self.obey_remote_user_header and req.get_header('Remote-User'):
     309            return req.get_header('Remote-User')
    293310        return None
    294311