Changes between Version 2 and Version 3 of TracStandalone
- Timestamp:
- 09/24/12 18:52:16 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracStandalone
v2 v3 1 ** Note: this page documents the version 1.0 of Trac, see [[0.12/TracStandalone]] if you need the previous version ** 1 2 = Tracd = 2 3 … … 46 47 To install as a Windows service, get the [http://www.google.com/search?q=srvany.exe SRVANY] utility and run: 47 48 {{{ 48 C:\ \path\\to\\instsrv.exe tracd C:\\path\\to\\srvany.exe49 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 C:\path\to\instsrv.exe tracd C:\path\to\srvany.exe 50 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>" 50 51 net start tracd 51 52 }}} … … 62 63 {{{#!div 63 64 Once the service is installed, it might be simpler to run the Registry Editor rather than use the `reg add` command documented above. Navigate to:[[BR]] 64 `HKEY_LOCAL_MACHINE\ \SYSTEM\\CurrentControlSet\\Services\\tracd\\Parameters`65 `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tracd\Parameters` 65 66 66 67 Three (string) parameters are provided: 67 ||!AppDirectory ||C:\ \Python26\\ ||68 ||!AppDirectory ||C:\Python26\ || 68 69 ||Application ||python.exe || 69 ||!AppParameters ||scripts\ \tracd-script.py -p 8080 ... ||70 ||!AppParameters ||scripts\tracd-script.py -p 8080 ... || 70 71 71 72 Note 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. … … 75 76 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: 76 77 {{{ 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>"78 "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>" 78 79 79 80 net start tracd … … 88 89 also cygwin's cygrunsrv.exe can be used: 89 90 {{{ 90 $ cygrunsrv --install tracd --path /cygdrive/c/Python27/Scripts/tracd.exe --args '--port 8000 --env-parent-dir E:\ \IssueTrackers\\Trac\\Projects'91 $ cygrunsrv --install tracd --path /cygdrive/c/Python27/Scripts/tracd.exe --args '--port 8000 --env-parent-dir E:\IssueTrackers\Trac\Projects' 91 92 $ net start tracd 92 93 }}} … … 114 115 115 116 {{{ 116 $ tracd -p 8080 \ \117 $ tracd -p 8080 \ 117 118 --auth="project1,/path/to/passwordfile,mycompany.com" /path/to/project1 118 119 }}} … … 120 121 Of course, the password file can be be shared so that it is used for more than one project: 121 122 {{{ 122 $ tracd -p 8080 \ \123 --auth="project1,/path/to/passwordfile,mycompany.com" \ \124 --auth="project2,/path/to/passwordfile,mycompany.com" \ \123 $ tracd -p 8080 \ 124 --auth="project1,/path/to/passwordfile,mycompany.com" \ 125 --auth="project2,/path/to/passwordfile,mycompany.com" \ 125 126 /path/to/project1 /path/to/project2 126 127 }}} … … 128 129 Another way to share the password file is to specify "*" for the project name: 129 130 {{{ 130 $ tracd -p 8080 \ \131 --auth="*,/path/to/users.htdigest,mycompany.com" \ \131 $ tracd -p 8080 \ 132 --auth="*,/path/to/users.htdigest,mycompany.com" \ 132 133 /path/to/project1 /path/to/project2 133 134 }}} … … 137 138 138 139 Note: It is necessary (at least with Python 2.6) to install the fcrypt package in order to 139 decode the htpasswd format. Trac source code attempt an `import crypt` first, but there140 is no such package for Python 2.6. 140 decode some htpasswd formats. Trac source code attempt an `import crypt` first, but there 141 is no such package for Python 2.6. Only `SHA-1` passwords (since Trac 1.0) work without this module. 141 142 142 143 To create a .htpasswd file use Apache's `htpasswd` command (see [#GeneratingPasswordsWithoutApache below] for a method to create these files without using Apache): … … 164 165 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. 165 166 166 Note that you can start tracd without the --authargument, but if you click on the ''Login'' link you will get an error.167 Note that you can start tracd without the `--auth` argument, but if you click on the ''Login'' link you will get an error. 167 168 168 169 === Generating Passwords Without Apache === 169 170 170 Basic Authorization can be accomplished via this [http:// www.4webhelp.net/us/password.php online HTTP Password generator]. Copy the generated password-hash line to the .htpasswd file on your system.171 Basic Authorization can be accomplished via this [http://aspirine.org/htpasswd_en.html online HTTP Password generator] which also supports `SHA-1`. Copy the generated password-hash line to the .htpasswd file on your system. Note that Windows Python lacks the "crypt" module that is the default hash type for htpasswd ; Windows Python can grok MD5 password hashes just fine and you should use MD5. 171 172 172 173 You can use this simple Python script to generate a '''digest''' password file: … … 207 208 208 209 {{{ 209 $ python trac-digest.py -u username -p password >> c:\ \digest.txt210 $ tracd --port 8000 --auth=proj_name,c:\ \digest.txt,trac c:\\path\\to\\proj_name210 $ python trac-digest.py -u username -p password >> c:\digest.txt 211 $ tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name 211 212 }}} 212 213 … … 214 215 It is possible to use `md5sum` utility to generate digest-password file: 215 216 {{{ 216 $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest 217 }}} 218 and manually delete " -" from the end and add "${user}:trac:" to the start of line from 'to-file'. 217 user= 218 realm= 219 password= 220 path_to_file= 221 echo ${user}:${realm}:$(printf "${user}:${realm}:${password}" | md5sum - | sed -e 's/\s\+-//') > ${path_to_file} 222 }}} 219 223 220 224 == Reference == … … 234 238 -b HOSTNAME, --hostname=HOSTNAME 235 239 the host name or IP address to bind to 236 --protocol=PROTOCOL http|scgi|ajp 240 --protocol=PROTOCOL http|scgi|ajp|fcgi 237 241 -q, --unquote unquote PATH_INFO (may be needed when using ajp) 238 --http10 use HTTP/1.0 protocol version (default)239 --http11 use HTTP/1.1 protocol version instead of HTTP/1.0242 --http10 use HTTP/1.0 protocol version instead of HTTP/1.1 243 --http11 use HTTP/1.1 protocol version (default) 240 244 -e PARENTDIR, --env-parent-dir=PARENTDIR 241 245 parent directory of the project environments … … 244 248 -r, --auto-reload restart automatically when sources are modified 245 249 -s, --single-env only serve a single project without the project list 246 }}} 250 -d, --daemonize run in the background as a daemon 251 --pidfile=PIDFILE when daemonizing, file to which to write pid 252 --umask=MASK when daemonizing, file mode creation mask to use, in 253 octal notation (default 022) 254 --group=GROUP the group to run as 255 --user=USER the user to run as 256 }}} 257 258 Use the -d option so that tracd doesn't hang if you close the terminal window where tracd was started. 247 259 248 260 == Tips == … … 326 338 }}} 327 339 340 Note that if you want to install this plugin for all projects, you have to put it in your [TracPlugins#Plugindiscovery global plugins_dir] and enable it in your global trac.ini. 341 342 Global config (e.g. `/srv/trac/conf/trac.ini`): 343 {{{ 344 [components] 345 remote-user-auth.* = enabled 346 [inherit] 347 plugins_dir = /srv/trac/plugins 348 [trac] 349 obey_remote_user_header = true 350 }}} 351 352 Environment config (e.g. `/srv/trac/envs/myenv`): 353 {{{ 354 [inherit] 355 file = /srv/trac/conf/trac.ini 356 }}} 357 328 358 === Serving a different base path than / === 329 359 Tracd supports serving projects with different base urls than /<project>. The parameter name to change this is
