== Windows Installation Instructions for Subversion w/Trac 0.8.1 ==
Versions used in this example (Available 2005-03-11):
* Trac 0.8.1
* [http://www.clearsilver.net clearsilver 0.9.12] (included in Trac .exe installer)
* [http://www.python.org Python 2.3.5]
* [http://httpd.apache.org/ Apache 2.0.53]
* [http://subversion.tigris.org Subversion 1.1.3]
* [http://subversion.tigris.org Subversion Python Bindings 1.1.3]
* [http://sourceforge.net/project/showfiles.php?group_id=38414 docutils 0.3.7]
* [http://www.sqlite.org SQLite 3.1.4]
* [http://sourceforge.net/projects/pysqlite/ PySQLite 1.1.6-py2.3]
* [http://gnuwin32.sourceforge.net/packages/diffutils.htm Diffutils 2.8.7-1] (Optional)
Contact [mailto:Daragh|at|i2i-Tech.com Daragh Fitzpatrick] for more info.
''Added some information to help install Trac version 0.8.''
''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.''
''Trac running on Microsoft's Internet Information Server (IIS) is __highly__ experimental. See #697.''
Trac running without Apache or IIS: using [source:trunk/README.tracd#latest tracd] and svnserve is experimental (''tracd'') but the performance improvement is ''very'' significant over cgi. See TracOnWindowsSansApacheOrIis (TBD).
=== Learn Subversion ===
1. Get & Read [http://svnbook.red-bean.com/ Version Control with Subversion ]
=== Install Subversion Pre-Requisites ===
2. Install [http://www.python.org/ Python ]
[[br]]Add C:\Python23 to the path
3. Install [http://httpd.apache.org/ Apache ]
4. Install [http://subversion.tigris.org/ Subversion ]
5. Install [http://docutils.sourceforge.net/ docutils ]
{{{
expand and run from the expanded docutils-xxx directory
> C:\python23\python install.py
}}}
=== Create Repository ===
6. Create repository directory
{{{
C:\> md c:\svn
}}}
7. Create repository
{{{
C:\> svnadmin create c:\svn\repo1
}}}
8. Create skeleton repository structure in c:\temp\project
Example:
{{{
/project
/vendor
/tags
/trunk
files
/projectname
/branches
/tags
/trunk
files
}}}
9. Build repository tree
{{{
C:\> svn import c:\temp\project file:///c:/svn/repo1 -m "Initial Load"
}}}
10. Create local sandbox
{{{
C:\> svn checkout file:///c:/svn/repo1 c:\project
}}}
=== Configure Apache ===
11. Copy files
{{{
C:\> copy c:\progra~1\subver~1\httpd\*.* c:\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:
{{{
C:\> copy c:\progra~1\subver~1\bin\*.dll c:\progra~1\apache~1\apache2\modules
}}}
12. Create password file (w/user 'admin')
{{{
C:\> c:\progra~1\apache~1\apache2\bin\htpasswd -cm c:\svn\.htaccess admin
}}}
13. Configure Apache (edit httpd.conf)
13.1. Restrict access/lockdown as appropriate
13.2. Add Modules to httpd.conf
13.1.1. Uncomment:
{{{
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
}}}
13.1.2. Add (after):
{{{
# Subversion
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
}}}
13.1.3. Install Apache as Service (IF NOT WORKING when installed to C:)
{{{
C:\Progr~1\Apache~1\Apache2\bin\Apache -k install -n "Apache2"
}}}
13.3. Add location root for multiple repositories
{{{
# Subversion
DAV svn
# any /svn/foo URL will map to a repository C:/svn/foo
# I've only got it working using SVNPath!!
SVNParentPath C:/svn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile c:/svn/.htaccess
Require valid-user
}}}
13.4. Add cgi handler, Uncomment:
{{{
AddHandler cgi-script .cgi
}}}
14. Restart Apache
15. Test your install of Subversion
http://[hostname]:80/svn/repo1
----
=== Create Users ===
16. Add users to password file
{{{
C:\> c:\progra~1\apache~1\apache2\bin\htpasswd -m c:\svn\.htaccess user
}}}
=== Install Trac Prerequisites ===
17. Install Subversion Python Bindings
Download svn-win32-1.0.X_py.zip from the [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 Subversion site].
[[br]]Extract and copy the libsvn and svn directories to C:\Python23\Lib
18. Install SQLite
http://www.sqlite.org
[[br]]Copy sqlite.exe to C:\Program Files\SQLite
This is really optional. Don't let it mess your disk unless something exceptional not described here happens.
19. Install PySQLite
http://pysqlite.org/
[[br]]Download and install pysqlite-1.0.1.win32-py2.3.exe
20. Install ClearSilver
http://www.clearsilver.net download clearsilver_python-0.9.12-win32.zip
[[br]]Copy neo_cgi.pyd into C:\Python23\Lib\site-packages
21. Install Trac
http://www.edgewall.com/products/trac/
{{{
python ./setup.py install
}}}
=== Fix a few things ===
22. Copy CGI
{{{
C:\> copy d:\python23\share\trac\cgi-bin\trac.cgi c:\progra~1\apache~1\apache2\cgi-bin
}}}
23. Fix the errors from the Trac Windows Installer (version 0.8.1)
The Windows installer installs siteconfig.py file in PYTHONLIB/site-packages/trac
which contains absolute paths pointing to F:\. You will need to fix these paths so that
they start with the installation directory of the version of Python you selected during
setup.
23.1 Fix the cgi-script c:\progra~1\apache~1\apache2\cgi-bin\trac.cgi
Make sure the path to your python directory is correct.
The Trace installer, sets this to:
{{{
!#F:\PYTHON23\python.exe
}}}
=== Configure Trac DB ===
The trac database can be named to match the subversion repository it is working with, which is especially useful if more than one repository will ever be created. In this example {{{"trac.db"}}} would read as {{{"repo1.db"}}}
25. Run trac-admin
{{{
C:\Python23\Scripts> python trac-admin c:/svn/trac.db
}}}
26. Initialize DB
{{{
Trac [c:/svn/trac.db]> initdb
}}}
or
{{{
Trac [c:/svn/trac.db]> initenv
}}}
{{{
Enter project name
Project
Enter path to repository
c:\svn\repo1
Enter path to templates
c:\Python23\share\trac\templates
}}}
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.
27. (BUG) Load Wiki
{{{
Trac [c:/svn/trac.db]> wiki load c:/python23/share/trac/wiki-default
}}}
28. Add administrative permissions (the below adds all permissions for 'admin' user)
{{{
Trac [c:/svn/trac.db]>
permission add admin TRAC_ADMIN
}}}
=== Add Trac to Apache ===
29. Edit httpd.conf:
Add: (copy this - there's a typo in Edgewall's version)
{{{
# TRAC
Alias /trac "C:/Python23/share/trac/htdocs"
SetEnv TRAC_ENV "c:/svn/trac.db"
AuthType Basic
AuthName "Project"
AuthUserFile C:/svn/.htaccess
Require valid-user
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
}}}
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
# following line squishes bug #1168 if IE has troubles editing wiki pages.
SSPIBasicPreferred 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
}}}
You must download and install this module. It can be found here: http://tortoisesvn.tigris.org/mod_auth_sspi.zip
Or compile it into Apache. Note when adding permissions and authenticating against a domain you may need to use the following syntax complete with quotes as seen in #1055.
* permission add "DOMAIN\username" TRAC_ADMIN
30. Restart Apache.
31. Hold your breath, test Trac install
http://[hostname]:80/cgi-bin/trac.cgi
If it doesn't work, then running Apache from the command-line will give you a few clues.
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].
=== Optional Diffutils ===
32. In order for Trac to display diffs, you must download and install diffutils. After installing diffutils, you will need to add the path to the diff executable to the Windows PATH environment variable and reboot the machine.
=== Finally... ===
33. Install Subversion clients as necessary (try [http://rapidsvn.tigris.org RapidSVN] , [http://tortoisesvn.tigris.org/ TortoiseSVN] or [http://subclipse.tigris.org/ Subclipse])
34. Don't forget to lock down the security on the box!
35. If the svn page would not work properly with saying that DLL is missing, then copy the three DLL's - libdb42.dll - libeay32.dll - ssleay32.dll from your [Subversion]\bin directory to your system directory (most likely C:\Windows\system32).
=== In addition... ===
36. In order to use pre- and post-commit hooks with Subversion on Windows, please refer to diff files described in #897, as the changes are not commited into the trunk as of version 0.8-dev.