== 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