Changes between Version 1 and Version 2 of TracStandalone


Ignore:
Timestamp:
09/22/11 13:47:52 (5 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v1 v2  
    88 * Fast: Should be almost as fast as the [wiki:TracModPython mod_python] version (and much faster than the [wiki:TracCgi CGI]). 
    99 * Automatic reloading: For development, Tracd can be used in ''auto_reload'' mode, which will automatically restart the server whenever you make a change to the code (in Trac itself or in a plugin). 
     10  * Options for tracd: `-r, --auto-reload` 
    1011 
    1112== Cons == 
     
    4041To exit the server on Windows, be sure to use {{{CTRL-BREAK}}} -- using {{{CTRL-C}}} will leave a Python process running in the background. 
    4142 
     43== Installing as a Windows Service == 
     44 
     45To install as a Windows service, get the [http://www.google.com/search?q=srvany.exe SRVANY] utility and run: 
     46{{{ 
     47 C:\path\to\instsrv.exe tracd C:\path\to\srvany.exe 
     48 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>" 
     49 net start tracd 
     50}}} 
     51 
     52'''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}}}. 
     53 
     54If you want tracd to start automatically when you boot Windows, do: 
     55{{{ 
     56 sc config tracd start= auto 
     57}}} 
     58 
     59The spacing here is important. 
    4260 
    4361== Using Authentication == 
     
    4866 
    4967{{{ 
    50 sudo htpasswd -c /path/to/env/.htpasswd username 
     68 $ sudo htpasswd -c /path/to/env/.htpasswd username 
    5169}}} 
    5270then for additional users: 
    5371{{{ 
    54 sudo htpasswd /var/www/html/.htpasswd-users username2 
    55 }}} 
    56 then for starting the tracd: 
    57 {{{ 
    58 tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname 
    59 }}} 
    60  
     72 $ sudo htpasswd /path/to/env/.htpasswd username2 
     73}}} 
     74then for starting the tracd (on windows skip the "=" after --basic-auth): 
     75{{{ 
     76 $ tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname 
     77}}} 
    6178 
    6279Tracd provides support for both Basic and Digest authentication. The default is to use Digest; to use Basic authentication, replace `--auth` with `--basic-auth` in the examples below. (You must still specify a dialogic "realm", which can be an empty string by trailing the BASICAUTH with a comma.) 
     
    6481  ''Support for Basic authentication was added in version 0.9.'' 
    6582 
    66 The general format for using authentication is: 
     83The general format for using authentication is (on windows skip the "=" after --auth): 
    6784 
    6885{{{ 
     
    7794 * '''project_path''' path of the project 
    7895 
    79 Example: 
     96Example (on windows skip the "=" after --auth): 
    8097 
    8198{{{ 
     
    95112{{{ 
    96113 $ tracd -p 8080 \ 
    97    --auth=*,/path/to/users.htdigest,mycompany.com \ 
     114   --auth="*",/path/to/users.htdigest,mycompany.com \ 
    98115   /path/to/project1 /path/to/project2 
    99116}}} 
     117If using the `-s` parameter for serving a Trac environment from the root of a domain, one must use `*` for the project name 
    100118 
    101119== How to set up an htdigest password file == 
     
    112130#!python 
    113131from optparse import OptionParser 
    114 import md5 
     132# The md5 module is deprecated in Python 2.5 
     133try: 
     134    from hashlib import md5 
     135except ImportError: 
     136    from md5 import md5 
     137realm = 'trac' 
    115138 
    116139# build the options 
     
    121144parser.add_option("-p", "--password",action="store", dest="password", type = "string", 
    122145                  help="the password to use") 
     146parser.add_option("-r", "--realm",action="store", dest="realm", type = "string", 
     147                  help="the realm in which to create the digest") 
    123148(options, args) = parser.parse_args() 
    124149 
     
    126151if (options.username is None) or (options.password is None): 
    127152   parser.error("You must supply both the username and password") 
     153if (options.realm is not None): 
     154   realm = options.realm 
    128155    
    129156# Generate the string to enter into the htdigest file 
    130 realm = 'trac' 
    131 kd = lambda x: md5.md5(':'.join(x)).hexdigest() 
     157kd = lambda x: md5(':'.join(x)).hexdigest() 
    132158print ':'.join((options.username, realm, kd([options.username, realm, options.password]))) 
    133159}}} 
     
    136162 
    137163{{{ 
    138 python trac-digest.py -u username -p password >> c:\digest.txt 
    139 tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name 
     164 $ python trac-digest.py -u username -p password >> c:\digest.txt 
     165 $ tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name 
    140166}}} 
    141167 
     
    144170It is possible to use md5sum utility to generate digest-password file using such method: 
    145171{{{ 
    146 echo -e "${user}:trac:${password}\c" | md5sum - >>to-file 
    147 }}} 
    148 and manually delete " -" from the end and add "${user}:trac:" to the start of line from 'to-file'. You can see attachment:trac-digest-corrected.sh for detail. 
     172 $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest 
     173}}} 
     174and manually delete " -" from the end and add "${user}:trac:" to the start of line from 'to-file'. 
    149175 
    150176== Tips == 
     
    164190in the Wiki: `[/<project_name>/chrome/site/software-0.1.tar.gz]`  
    165191 
    166 The development version of Trac supports a new `htdocs:` TracLinks  
     192Since 0.10, Trac supports a new `htdocs:` TracLinks  
    167193syntax for the above. With this, the example link above can be written simply  
    168194`htdocs:software-0.1.tar.gz`.  
     
    172198 
    173199=== Serving a different base path than / === 
    174 Tracd supports serving projects with different base urls then /<project>. The parameter name to change this is 
    175 {{{ 
    176 tracd --base-path=/some/path 
     200Tracd supports serving projects with different base urls than /<project>. The parameter name to change this is 
     201{{{ 
     202 $ tracd --base-path=/some/path 
    177203}}} 
    178204 
    179205---- 
    180 See also: TracInstall, TracCgi, TracModPython, TracGuide 
     206See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone?version=13#RunningTracdasservice Running tracd.exe as a Windows service]