Windows Installation Instructions for Subversion w/Trac 0.8.1

来源:互联网 发布:互动教学软件 编辑:程序博客网 时间:2024/04/30 15:29

Windows Installation Instructions for Subversion w/Trac 0.8.1

Versions used in this example (June 2005-06-29):

  • Trac 0.8.2
  • Clearsilver 0.9.14 binaries
  • Python 2.3.5
  • Apache 2.0.54
  • Subversion 1.2.0
  • Python 2.3 Bindings for subversion 1.2.0
  • docutils 0.3.9
  • SQLite 3.2.2
  • PySQLite 1.1.6-py2.3
  • Diffutils 2.8.7-1 (Optional)

Please update this Wiki page if you find it is different from your experience. If you have any problems, I would also suggest posting the solutions there for the common good. Please reference the version number you are having difficulties with, but assume that readers will be using the latest version (and issues from previous versions can disappear into wiki history) Contributors: please add your name to the list at the end - Thanks in advance!

Added some information to help install Trac version 0.8. The docs should be OK. Contact Muir for questions. For Subversion issues on Windows see the 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 tracd and svnserve is experimental (tracd) but the performance improvement is very significant over cgi. See TracOnWindowsSansApacheOrIis? (TBD).

Learn Subversion

1. Get & Read Version Control with Subversion

Install Subversion Pre-Requisites

2. Install Python


Add C:/Python23 to the path

3. Install Apache

4. Install Subversion

5. Install 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 --fs-type=fsfs c:/svn/repo1

FSFS should be the preferred Subversion Repository filesystem on Windows. The Python bindings are much more reliable in that case -- ChristianBoos

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.soLoadModule dav_fs_module modules/mod_dav_fs.so

13.1.2. Add (after):

# SubversionLoadModule dav_svn_module modules/mod_dav_svn.soLoadModule 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<Location /svn>  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</Location>

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

(Please note: pay attention to download exactly the versions mentioned here. Do not simply download the latest stable versions. Otherwise you will probably run into several issues.)

17. Install Subversion Python Bindings

Download svn-win32-1.1.X_py.zip from the Subversion site.
Extract and copy the libsvn and svn directories to C:/Python23/Lib

18. Install SQLite (optional)

http://www.sqlite.org
Copy sqlite.exe to C:/Program Files/SQLite

This is really optional - you only need this if you want to start poking around in the sqlite database because something's gone wrong.

19. Install PySQLite

http://pysqlite.org/
Download and install pysqlite-1.1.6.win32-py2.3.exe

NB. Make sure you use v1.x, not 2.x, because the module is renamed from sqlite to pysqlite in v2.x, so the trac installer will fail if you use pysqlite 2.x

20. Install ClearSilver

http://www.clearsilver.net download clearsilver_python-0.9.12-win32.zip
Copy neo_cgi.pyd into C:/Python23/Lib/site-packages Alternatively, grab unofficial installers for ClearSilver 0.9.14 from http://clearsilver.yi.org/.

21. Install Trac

http://projects.edgewall.com/trac/wiki/TracDownload

python ./setup.py install

Fix a few things

22. Copy CGI

C:/> copy c:/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 Trac installer, sets this to:

!#F:/PYTHON23/python.exe

Change path, and remember to append -u switch to make stdin to be in binary mode. Otherwise binary uploads don't work!

Set it for example (or whatever is your correct Python path) to:

!#G:/python23/python.exe -u

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.

If you get an error about execute() argument 1 on CheckWiki?.pyo, delete CheckWiki?.pyo from the c:/Python23/share/trac/templates directory. It shouldn't be there, but is when configuring 0.8.2 by hand instead of using the installer.

To get this step done the right way, you have to understand that the trac database is not the svn repository.

For expample if you have your svn repository located in c:/svn/repo1 (like supposed by this tutorial), you'll probably want to name your trac database c:/trac/repo1. You would then call "python trac-admin c:/trac/repo1" in your scripts directory and enter "c:/svn/repo1" as the "path to (svn) repository".

27. (BUG) Load Wiki See Ticket #1648

(NB. This is fixed in the latest trac, so ignore this step if you installed v0.8.3 or later)

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)

# TRACAlias /trac "C:/Python23/share/trac/htdocs"<Location "/cgi-bin/trac.cgi">  SetEnv TRAC_ENV "c:/svn/trac.db"</Location><Location "/cgi-bin/trac.cgi/login">  AuthType Basic  AuthName "Project"  AuthUserFile C:/svn/.htaccess  Require valid-user</Location><Directory "C:/Python23/share/trac/htdocs">  Options Indexes MultiViews  AllowOverride None  Order allow,deny  Allow from all</Directory>

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 <Location "/cgi-bin/trac.cgi/login"> given above.

<Location "/cgi-bin/trac.cgi/login">  #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</Location>

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

Note: Internet Explorer may be in trouble with an Apache server running SSPI authentication. See #1343

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, please check the alias of /trac in apache. Otherwise you've probably run into a known Apache bug described (and worked around) 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. Note: If Apache is running as a service you will need to reboot the machine for it to receive the updated PATH setting.

Finally...

33. Install Subversion clients as necessary (try RapidSVN , TortoiseSVN or 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.

And Then...

99. Give yourself a pat on the back and a drink in the hand

Contributors:

  • Daragh Fitzpatrick
  • Alex Wolfe
  • Tim Browse