How to Install Subversion Server on Windows using Apache
This is a walkthrough to install subversion server on Windows and make it available over http using Apache. Subversion is a version control system. In combination with Apache, you can allow local and remote developers to share source code.
This guide will use the following installation paths. You can change these as you like, but I’m going to use them in this walkthrough:
Apache = C:\Program Files\Apache Group\Apache2
Subversion = C:\Program Files\Subersion
Location of Repositories: C:\InetPub\svn\
Location of passfile: C:\InetPub\svn.pass
URL for Repositories: [url]http://localhost:8080/svn/[/url]
1. INSTALL APACHE
a. Download Apache from http://httpd.apache.org/download.cgi (Apache 2.0.55 is the current stable release at the time of this writing)
b. Run the Windows Installer. The defaults are fine. When you reach the Server Information dialog, you’ll be prompted to choose between installing on port 80 as a service, or on port 8080 with manual startup. Choose the service option on port 80 (we will change the port in the next step). Complete the install process accepting all defaults.
c. Since we are working on a Windows server, you probably already have IIS running on port 80. So, we need to pick another for Apache - this is really easy to change. Open the file C:\Program Files\Apache Group\Apache2\conf\httpd.conf in notepad.exe. Do a find (ctrl+f) for the word “listen” until you fine the line
Listen 80
Change the 80 to 8080 (or whatever port you want). For this example, I’m going to be using port 8080
d. Save http.conf and restart Apache to reflect the changes. You can do this through the services applet (Start -> Run services.msc) or also through the apache service monitor (This is the apache icon next to the clock in the taskbar)
e. Test that Apache is running by going to [url]http://localhost:8080/[/url] (you should get the default Apache welcome screen).
2. INSTALL SUBVERSION
a. Download The subervsion server binary for Windows. It’s currently located at http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
For these instructions, download the svn-x.x.x-setup.exe installer.
b. Run the Subversion server setup. All defaults are fine. At a certain point you’ll see an option about installing Apache Modules. As far as I can tell this does nothing, but whatever! I left it checked.
3. CONFIGURE APACHE SUBVERSION MODULES
a. We need to move the subversion modules so Apache can use the. To do that, copy the following files from C:\Program Files\Subversion\bin\ to C:\Program Files\Apache Group\Apache2\modules\
libdb42.dll
libeay32.dll
mod_authz_svn.so
mod_dav_svn.so
b. Open C:\Program Files\Apache Group\Apache2\conf\httpd.conf again and do a find for “LoadModule” - This should take you to a section where there are a bunch of LoadModule statements uncomment this line (delete the # from the beginning of the line):
LoadModule dav_fs_module modules/mod_dav_fs.so
Below that, add the following two lines:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Now scroll to the very botton of the file and paste the following.
<Location /svn>
DAV svn
SVNParentPath C:\InetPub\svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile C:\InetPub\svn.pass
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
You can change these as you like, however this is what I’ll use for the instructions here. I happen to think these are reasonable defaults. The settings are probably somewhat self-explainitory, but for additional information read the fine Apache manual.
c. Restart Apache Again to load the configuration changes
d. Test that everything is working at this stage by going to [url]http://localhost:8080/svn/[/url] You should get prompted for login box. We haven’t created a username/password yet so just hit cancel.
4. CREATE A USERNAME/PASSWORD FOR HE APACHE DIRECTORY
a. We need to use htpasswd.exe in the Apache2/bin directory to edit the password files. this is a pain unless it is in your path, so I recommend adding it to your environmental PATH variable. (right-click My Computer -> Advanced -> Environmental Variables) Append the folling to the PATH variable: ;C:\Program Files\Apache Group\Apache2\bin
b. Create a blank file C:\InetPub\svn.pass
c. Open a new DOS windows (you need to open a new one to recognize the PATH changes)
d. go to C:\InetPub and type the following:
htpasswd snv.pass svnuser
You’ll be prompted for a password. enter whatever you want (svnpass for this example)
(This is the procedure you can repeat to add more users)
e. You can open svn.pass in notepad to make sure there is a user there - you should see “svnuser” followed by the crypted pass information.
5. CREATE A REPOSITORY
a. Open Windows explorer and create a folder C:\InetPub\svn
b. Open a DOS window and go to C:\InetPub\svn
c. Enter the following:
svnadmin create myrepository
(You can repeat this process to create additional repositories - I am just choosing the name myrepository for testing purposes)
d. Give it a test by opening [url]http://localhost:8080/svn/myrepository/[/url] and entering the username/pass you created in step 4 (in this example svnuser / svnpass) If everything is working right, then you should see “Revision 0″ in the browser.
Contratulations - You’re Done!
6. USING YOUR REPOSITORY
If you need instructions for using subversion, I’d recommend downloading TortoiseSVN from http://tortoisesvn.tigris.org/ and reading the documentation. Although setting up the server is a bit of work, using the client is pretty easy.
When you use your client to connect to the server, your subversion repository will always start with http://your.domain.com/svn/ (as opposed to some public repositories that start with svn://your.domain.com/) Otherwise, the usage is exactly the same.
If you haven’t managed a Subversion server, you may not know how to initialize your repository. Basically, each time you create a new repository, you have to initialize it by doing an import. You have to add at least one file to the repository. To do this, just create a blank folder on your computer, put at least 1 file in there (I put a readme.txt or whatever). Then use your subversion client “import” command. This will initialize the repository at version 1. At that point, you can check in and out as you always do.
THE END
Share This