Setting Up Apache Subversion on Windows
#Apache #Subversion #SourceCode #Windows
Full steps can be found at https://i12bretro.github.io/tutorials/0015.html
Installing Subversion
01. Download Microsoft Visual C++ https://aka.ms/vs/16/release/vc_redist.x64.exe
02. Download TortoiseSVN https://tortoisesvn.net/downloads.html
03. Install Microsoft Visual C++
04. Install TortoiseSVN, making sure to enable the command line client tools option
Installing and Configuring Apache HTTPD
01. Download Apache HTTPD https://www.apachelounge.com/download/
02. Download Subversion Apache Modules https://github.com/nono303/win-svn/tree/1.14.0
03. Extract the downloaded .zip files
04. Copy the extracted Subversion files to the desired location, for example C:\Program Files\Subversion
05. Click the Start button ≫ Search Control ≫ Click Control Panel
06. Click on System ≫ Advanced system settings
07. Click the Environment Variables...
08. Edit the System Path variable
09. Add the Subversion /bin path
10. Click OK
11. Open a command prompt and run svn --version to confirm the Subversion executables are configured in the system path correctly
12. Copy the following files from the extracted Subversion directory to the Apache installation directory specified below:
Apache /modules
mod_dav_svn.so
mod_authz_svn.so
deps/brotlicommon.dll
deps/brotlidec.dll
deps/brotlienc.dll
deps/libapr-1.dll
deps/libapriconv-1.dll
deps/libaprutil-1.dll
deps/libcrypto-1_1-x64.dll
deps/libexpat.dll
deps/libhttpd.dll
deps/libserf-2.dll
deps/libssl-1_1-x64.dll
deps/zlib1.dll
Apache /bin
libsvnjavahl-1.dll
libsvn_client-1.dll
libsvn_delta-1.dll
libsvn_diff-1.dll
libsvn_fs-1.dll
libsvn_fs_fs-1.dll
libsvn_fs_util-1.dll
libsvn_fs_x-1.dll
libsvn_ra-1.dll
libsvn_repos-1.dll
libsvn_subr-1.dll
libsvn_wc-1.dll
13. Inside the extracted Apache file structure, navigate to /conf/httpd.conf and edit it with a text editor
14. Find the following lines LoadModule dav_module modules/mod_dav.so and uncomment them by removing the # at the beginning
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule dav_module modules/mod_dav.so
15. Add the following block to the file:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
≪VirtualHost svn.i12bretro.local:80≫
ServerName svn.i12bretro.local
ServerAlias i12bretro.local
DocumentRoot E:\SVN_Repos
≪Location /≫
DAV svn
SVNListParentPath On
SVNParentPath E:\SVN_Repos
Order allow,deny
Allow from all
≪/Location≫
≪/VirtualHost≫
16. Save the changes
17. To just start Apache and have it run, double click the httpd.exe in the Apache /bin directory
18. To run Apache as a Windows server, hold the shift key and right click in the Apache /bin directory ≫ Open command window here
19. Enter the following command to create the Apache service:
httpd.exe -k install -n "Apache HTTPD"
20. Open a web browser and navigate to http://svn.i12bretro.local
21. A bare bones directory listing of the "Collection of Repositories" should be displayed
Setting Up LDAP Authentication
01. Navigate to the Apache install directory/conf in Explorer
02. Edit httpd.conf in a text editor
03. Find both the authnz_ldap_module and ldap_module and make sure it is enabled by removing the # at the start of the line
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so
04. Add the following to the Location block created earlier for svn.i12bretro.local to enable LDAP authentication
Order deny,allow
# Basic authentication with LDAP against MS AD
AuthType Basic
AuthBasicProvider ldap
# AuthLDAPURL specifies the LDAP server IP, port, base DN, scope and filter
# using this format: ldap://host:port/basedn?attribute?scope?filter
AuthLDAPURL "ldap://i12bretro.local:389/DC=i12bretro,DC=local?sAMAccountName?sub?(objectClass=user)" NONE
# The LDAP bind username and password
AuthLDAPBindDN "readonly_svc@i12bretro.local"
AuthLDAPBindPassword "Read0nly!!"
LDAPReferrals Off
AuthUserFile /dev/null
AuthName "Restricted Area [i12bretro.local]"
# to authenticate a domain group, specify the full DN
AuthLDAPGroupAttributeIsDN on
....Full steps can be found on GitHub [link at the top]
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro