== Windows Installation instructions for SVN w/TRAC 0.61 ==
Versions used in this example (Available 2004-05-13):
* Apache 2.0.49
* Python 2.3.3
* SVN 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 now but you can try to [mailto:trac-svn-mail@elvendesigns.com contact me] for questions.''
----
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 do manually transfer the DLL files from the subversion installation directory. 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__ = 'c:\\Python23\\share\\trac\\templates'
__default_htdocs_dir__ = 'c:\\Python23\\share\\trac\\htdocs'
__default_wiki_dir__ = '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.
=== 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
=== 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
}}}
{{{
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
}}}
If you get an error here stating that libdb42.dll was not found, copy [SVN PATH]\bin\libdb42.dll to [PYTHON PATH]\lib\libsvn\libdb42.dll, 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
=== Finally... ===
31. Install SVN Clients as necessary (try [http://rapidsvn.tigris.org Rapid SVN] & [http://tortoisesvn.tigris.org/ Tortoise SVN])
32. Don't forget to lock down the security on the box!
33. Now go get a *real* drink