== Windows Installation Instructions for Subversion w/Trac 0.6.1 == Versions used in this example (Available 2004-05-13): * Apache 2.0.49 * Python 2.3.3 * Subversion 1.0.2 * SQLite 2.8.13 * PySQLite 0.5.0-py2.3 * Trac 0.6.1 Contact [mailto:Daragh@i2i-Tech.com Daragh Fitzpatrick] for more info. ''Added some information to help install Trac version 0.7.1.'' ''The docs should be OK. Contact [mailto:trac-svn-mail@elvendesigns.com Muir] for questions.'' ''For Subversion issues on Windows see the [http://tortoisesvn.tigris.org TortoiseSVN] site, particularly the server section.'' ---- Note: This example installs to D: (for extra points) ---- === Arm Yourself === 1. Get & Read book http://svnbook.red-bean.com === Install Subversion Pre-Requisites === 2. Install Python http://www.python.org [[br]]Add D:\Python23 to path 3. Install Apache http://httpd.apache.org 4. Install Subversion http://subversion.tigris.org === Create Repository === 5. Create repository directory {{{ D:\> md d:\svn }}} 6. Create repository {{{ D:\> svnadmin create d:\svn\repo1 }}} 7. Create skeleton repository structure in d:\temp\project Example: {{{ /project /vendor /tags /trunk files /projectname /branches /tags /trunk files }}} 8. Build repository tree {{{ D:\> svn import d:\temp\project file:///d:/svn/repo1 -m "Initial Load" }}} 9. Create local sandbox {{{ D:\> svn checkout file:///d:/svn/repo1 d:\project }}} === Configure Apache === 10. Copy files {{{ D:\> copy d:\progra~1\subver~1\httpd\*.* d:\progra~1\apache~1\apache2\modules }}} You may also need to manually transfer the DLL files from the Subversion installation directory. If the Apache service will not start, or reports an error loading mod_dav_svn.so, you will need to do this. They contain, among other things, the Berkeley DB. This is all you need to do for the DLLs: {{{ D:\> copy d:\progra~1\subver~1\bin\*.dll d:\progra~1\apache~1\apache2\modules }}} 11. Create password file (w/user 'admin') {{{ D:\> d:\progra~1\apache~1\apache2\bin\htpasswd -cm d:\svn\.htaccess admin }}} 12. Configure Apache (edit httpd.conf) 12.1. Restrict access/lockdown as appropriate 12.2. Add Modules to httpd.conf 12.1.1. Uncomment: {{{ LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so }}} 12.1.2. Add (after): {{{ # Subversion LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so }}} 12.3. Add location root for multiple repositories {{{ # Subversion DAV svn # any /svn/foo URL will map to a repository D:/svn/foo SVNParentPath D:/svn AuthType Basic AuthName "Subversion repository" AuthUserFile d:/svn/.htaccess Require valid-user }}} 13. Restart your machine 14. Test your install of Subversion http://[hostname]:80/svn/repo1 Phew! Subversion is installed and working - Grab a beverage for yourself. ---- === Setup Users === 15. Add users to password file {{{ D:\> d:\progra~1\apache~1\apache2\bin\htpasswd -m d:\svn\.htaccess user }}} === Install Trac Prerequisites === 16. Install Subversion Python Bindings (Get from same download page as Subversion) [[br]]Copy libsvn and svn directories to D:\Python23\Lib 17. Install SQLite http://www.sqlite.org [[br]]Copy sqlite.exe to D:\Program Files\SQLite 18. Install PySQLite http://pysqlite.sourceforge.net 19. Install Trac http://www.edgewall.com/products/trac/ (BUG) As of 20040612, Trac-win32 version 0.7.1 DOES NOT include a file called siteconfig.py, which is required for the scripts to work. There are two workarounds: 1) Install 0.7 first and then install 0.7.1 on top of it or 2) Create c:\python23\lib\site-packages\trac\siteconfig.py (or wherever your installation is) yourself: {{{ # siteconfig.py __default_templates_dir__ = r'c:\Python23\share\trac\templates' __default_htdocs_dir__ = r'c:\Python23\share\trac\htdocs' __default_wiki_dir__ = r'c:\Python23\share\trac\wiki-default' }}} Remember to correct the paths in that file! Under no circumstances should you actually *run* 0.7. This will hopefully be fixed in the next version. You will be able to change those directories later (which I'd recommend). === Fix a few things === 20. (BUG) Edit first line of D:\Python23\Scripts\trac-admin to have: {{{ #!D:\Python23\python.exe }}} 21. (BUG) Edit first line of D:\Python23\share\trac\cgi-bin\trac.cgi to have: {{{ #!D:\Python23\python.exe }}} 22. Copy CGI {{{ D:\> copy d:\python23\share\trac\cgi-bin\trac.cgi d:\progra~1\apache~1\apache2\cgi-bin }}} 23. (BUG) not able to run trac-admin initenv... Not available in 0.6.1 ''(This does work in 0.7.1) === Configure Trac DB === 24. Run trac-admin {{{ D:\Python23\Scripts> python trac-admin d:/svn/trac.db }}} 25. Initialize DB {{{ Trac [d:/svn/trac.db]> initdb }}} or {{{ Trac [d:/svn/trac.db]> initenv }}} {{{ Enter project name Project Enter path to repository d:\svn\repo1 Enter path to templates d:\Python23\share\trac\templates }}} (BUG) Note error message regarding wiki-pages ''(not present in my version of 0.7.1)'' If you get an error here stating that libdb42.dll was not found, copy ''[SVN PATH]''\bin\libdb42.dll to ''[PYTHON PATH]''\lib\libsvn\, then try again. 26. (BUG) Load Wiki {{{ Trac [d:/svn/trac.db]> wiki load d:/python23/share/trac/wiki-default }}} 27. Add administrative permissions (the below adds all permissions for 'admin' user) {{{ Trac [d:/svn/trac.db]> permission add admin TRAC_ADMIN }}} === Add Trac to Apache === 28. Edit httpd.conf: Add: (copy this - there's a typo in Edgewall's version) {{{ # TRAC Alias /trac "D:/Python23/share/trac/htdocs" Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all # For 0.7 release SetEnv TRAC_ENV "d:/svn/trac.db" # for 0.6.1 release SetEnv TRAC_DB "d:/svn/trac.db" AuthType Basic AuthName "Project" AuthUserFile D:/svn/.htaccess Require valid-user }}} Alternatively you could set up the authorisation to use your NT domain login if you are running an NT Domain. This bit of Apache config replaces the given above. {{{ #NT Domain auth config AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic On AuthName "Project" Require valid-user }}} You'll also need the sspi_auth_module on your system and loaded like this... {{{ LoadModule sspi_auth_module modules/mod_auth_sspi.so }}} Or compile it into Apache. 29. Restart Apache 30. Hold your breath, test Trac install http://[hostname]:80/cgi-bin/trac.cgi If your page seems to be lacking stylesheets, you've probably run into a known Apache bug described (and worked around) [http://www.apache.org/dist/httpd/binaries/win32/#xpbug here]. === Finally... === 31. Install Subversion clients as necessary (try [http://rapidsvn.tigris.org RapidSVN] & [http://tortoisesvn.tigris.org/ TortoiseSVN]) 32. Don't forget to lock down the security on the box! 33. Now go get a *real* drink