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