¡¡Ò»¡¢»ù±¾°²×°ÅäÖÃ
¡¡¡¡1 WebÎñÆ÷µÄÑ¡Ôñ
¡¡¡¡Subversion ½¨Á¢ÔÚÒ»¸ö¿ÉÒÆÖ³µÄ layer£¬ ³ÆÎª APR £¨Apache Portable Runtime Á´½Ó¿â£© ÉÏ¡£ Õâ±íʾ Subversion Ó¦¸Ã¿ÉÒÔÔÚÈκοÉÒÔÖ´ÐÐ Apache µÄ httpd ·þÎñÆ÷µÄ²Ù×÷ϵͳÉÏ£º Windows£¬ Linux£¬ ËùÓÐµÄ BSD ·ÖÖ§£¬ Mac OS X£¬ Netware£¬ µÈ£¬Ä¿Ç°Ê¹ÓÃ×îΪ¹ã·ºµÄWeb·þÎñÆ÷ÊÇApache ºÍIIS£¬Á½Õß¶¼¿ÉÒÔ¹¤×÷ÔÚWindows Server 2003Ï¡£ÆäÖÐApache ºÍSubversionµÄÅäÖÃ×îΪ¼òµ¥¡¢°²È«¡¢¸ßЧ¡£ËùÒÔ±¾ÎÄÑ¡ÔñʹÓÃApache ·þÎñÆ÷µÄ2.0 °æ±¾£¬×÷ΪWeb·þÎñÆ÷¡£
¡¡¡¡2 ±¾ÎÄʹÓÃÈí¼þ°æ±¾
¡¡¡¡ÒÔÏÂÊDZ¾ÎļþʹÓõÄ×÷Òµ»·¾³ÓëÈí¼þ°æ±¾£º
¡¡¡¡* Windows 2003 Server R2
¡¡¡¡* Apache HTTP Server v2.0.55
¡¡¡¡* Subversion v1.2.3
¡¡¡¡3 °²×°ÅäÖÃApache·þÎñÆ÷
¡¡¡¡ÔÚµ½ http://httpd.apache.org/ ÏÂÔØ Apache HTTP Server 2.0 °æ for Windows µÄ°æ±¾£¬±ÊÕßʹÓõİ汾ÊÇ apache_2.0.50-win32-x86-no_ssl.msi.
¡¡¡¡°²×°¹ý³ÌºÜ¼òµ¥£¬¾Í²»×¸ÊöÁË£¬ÕâÀï½éÉܼ¸¸ö×¢ÒâÊÂÏ
¡¡¡¡µ«°²×°Ö®Ç°ÇëÏȼì²éÄãµÄ·þÎñÆ÷ÊÇ·ñ°²×° IIS£¬ÓÉÓÚ Apache Ô¤ÉèʹÓà 80 ¶Ë¿Ú£¬»á¸ú IIS µÄÍøÕ¾³åÍ»£¬Äã±ØÐë°Ñ IIS µÄ Web վ̨¹Ø±Õ£¬ÔÙ°²×° Apache HTTP·þÎñÆ÷¡£
¡¡¡¡×¢ÒâÈç¹ûʹÓÃWindows XPµÄ»°£¬Ã»Óа²×°SP1½«»áµ¼Ö²»Õý³£µÄÍøÂç´«Ê䣬´Ó¶ø¸ã»µÄãµÄ°æ±¾¿â¡£
¡¡¡¡ApacheµÍÓÚ2.0.54µÄ°æ±¾²»ÄÜÓëSubversion 1.2Ò»Æð¹¤×÷£¬ÒòΪApacheµÍÓÚ2.0.54µÄWindows°æ±¾µÄ±àÒë´æÔÚÎÊÌâ¡£
¡¡¡¡4 °²×° Subversion
¡¡¡¡ÔÚ http://subversion.tigris.org/ ÏÂÔØ×îаæµÄ Subversion£¬±ÊÕßÏÂÔØµÄÊÇsvn-1.4.3-setup.exe.°²×°¹ý³Ì±È½Ï¼òµ¥ÕâÀï±ÊÕ߾Ͳ»×¸ÊöÁË¡£°²×°Íê³ÉºóÔÚDosÃüÁîÐÐÏÂʹÓÃÃüÁsvn ¨Cversion¼ì²é£¬Èç¹û³öÏÖͼ1 ½çÃæ£¬±íʾ°²×°³É¹¦¡£

¡¡¡¡Í¼1 ¼ì²ésvnÊÇ·ñ°²×°³É¹¦
¡¡¡¡5 ¸´ÖƺÍÐÞ¸ÄApache·þÎñÆ÷ÅäÖÃÎļþ
¡¡¡¡Í¨¹ý Http ÐÒé·ÃÎʰ汾¿âÊÇ Subversion µÄÁÁµãÖ®Ò»¡£Ê¹Óà Http ÐÒéÒâζ×ÅÖ»ÐèÒª´ò¿ªä¯ÀÀÆ÷£¬ÊäÈë URL ¼´¿ÉÇáËɵÄä¯ÀÀÕû¸ö°æ±¾¿â¡£ÓÉÓÚ Subversion ÐèÒª°æ±¾»¯µÄ¿ØÖÆ£¬Òò´Ë±ê×¼µÄ Http ÐÒé²»ÄÜÂú×ãÐèÇó¡£ÒªÈà Apache Óë Subversion Ðͬ¹¤×÷£¬ÐèҪʹÓà WebDAV£¨Web ·Ö²¼Ê½´´×÷ºÍ°æ±¾¿ØÖÆ£©¡£WebDAV ÊÇ HTTP 1.1 µÄÀ©Õ¹£¬¹ØÓÚ WebDAV µÄ¹æ·¶ºÍ¹¤×÷ÔÀí£¬¿ÉÒԲο¼ IETF RFC 2518.ΪÁËʹ Subversion Óë dav Ä£¿éͨÐÅ£¬ÐèÒª°²×° mod_dav_svn ²å¼þ£¬¿ÉÒÔÔÚ Subversion µÄ°²×°Ä¿Â¼ÖÐÕÒµ½¡£½«Æä¿½±´µ½ Apache °²×°Ä¿Â¼µÄ modules Îļþ¼ÐÏ¡£½ÓÏÂÀ´¾ÍÊÇÅäÖà Apache µÄ httpd.conf Îļþ£¬Èà Apache ÔÚÆô¶¯µÄʱºò¼ÓÔØÉÏÊöÄ£¿é¡£²½ÖèÈçÏ£º
¡¡¡¡* °Ñsvn/bin/Ŀ¼Ï嵀 mod_dav_svn.so¡¢ mod_authz_svn.so¸´ÖƵ½Apache·þÎñÆ÷µÄ/modules/Ŀ¼Ï¡£
¡¡¡¡* °Ñ SVN/bin/Ŀ¼ÏÂËùÓеÄdllÁ´½ÓÎļþ¸´ÖƵ½ Apache·þÎñÆ÷/bin/Ŀ¼Ï¡£
¡¡¡¡* ÐÞ¸ÄApache·þÎñÆ÷µÄÅäÖÃÎļþhttpd.conf
¡¡¡¡ÏÈÕÒµ½ÒÔÏÂÁ½ÐУº
#LoadModule dav_module modules/mod_dav.so#LoadModule dav_fs_module modules/mod_dav_fs.so |
¡¡¡¡°ÑÇ°Ãædav_svn_moduleµÄ '#' ×Ö·ûɾ³ý£¬È»ºó°ÑÏÂÃæ¼¸ÐÐÎÄ×Ö¼Óµ½ÕâȺ LoadModule Ö¸ÁîµÄ×îºó£º
LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so |
¡¡¡¡È»ºóhttpd.conf×îºó¼ÓÈ뼸ÐУº
|
¡¡¡¡±í£1ÊÇapache·þÎñÆ÷ÅäÖÃÎļþÖÐsvnÏà¹ØÎļþµÄ½âÊÍ£º

¡¡6 ½¨Á¢°æ±¾¿âĿ¼
¡¡¡¡½¨Á¢Ò»¸ö Subversion µÄ°æ±¾¿â³öºõÒâÁϵؼòµ¥¡£ Subversion ËùÌṩµÄ svnadmin¹¤¾ß£¬ ÓиöרÃÅ´¦ÀíÕâ¼þʵÄ×ÓÃüÁ Òª½¨Á¢Ò»¸öеĵµ°¸¿â£¬ Ö»ÒªÖ´ÐÐÃüÁ
$ svnadmin create path/to/repos |
¡¡¡¡Õâ»áÔÚĿ¼ path/to/repos ÀィÁ¢Ò»¸öеĵµ°¸¿â£¬Ê¹ÓÃϵͳÃüÁÁ¢°æ±¾¿âĿ¼£¬Èçͼ2 .

¡¡¡¡Í¼2 ʹÓÃϵͳÃüÁÁ¢°æ±¾¿â˵Ã÷£º svnadmin ÃüÁîÊÇϵͳ¹ÜÀíÔ±×îºÃµÄÅóÓÑ¡£ ³ýÁË¿ÉÒÔ½¨Á¢ Subversion µµ°¸¿â£¬ Õâ¸ö³ÌÐò»¹¿ÉÒÔÈÃÄã¶Ôµµ°¸¿â½øÐм¸ÖÖά»¤¶¯×÷¡£ svnadmin ³£ÓÃ×ÓÃüÁîÈç±í£2 .

¡¡¡¡±í£2 svnadmin ³£ÓÃ×ÓÃüÁî
¡¡¡¡7 Ìí¼Ó°æ±¾¿âÎļþ
¡¡¡¡Ê¹ÓÃÈçÏÂÃüÁÁ¢°æ±¾¿âÎļþ£º
md tmpcd\tmpmd ProjectAmd ProjectA\trunkmd ProjectA\branchesmd ProjectA\tagssvn import . http://localhost/svn -m "Initial repository layout" |
¡¡¡¡8 ÖØÐÂÆô¶¯Apache·þÎñÆ÷½øÐвâÊÔ
¡¡¡¡ÅäÖÃÍê±ÏºóÖØÐÂÆô¶¯ Apache£¬´ò¿ªä¯ÀÀÆ÷£¬ÊäÈë http://·þÎñÆ÷IP/repos ½«»á¿´µ½Èçͼ3»Ãæ .

¡¡¡¡Í¼3 ³É¹¦½¨Á¢°æ±¾¿â½çÃæ
¡¡¶þ¡¢Ê¹ÓÃSSL°²È«Á¬½Ó
¡¡¡¡Apache·þÎñÆ÷ȱʡ²¢²»Ö§³ÖSSL£¬µ«ÊÇÄã¿ÉÒÔ´ÓÆäËûµØ·½ÏÂÔØ°²×°¡£
¡¡¡¡1. Ê×ÏÈ£¬ÄãÐèҪһЩÎļþÀ´¿ªÆôSSL£¬Äã¿ÉÒÔÔÚhttp://hunter.campbus.com/ÕÒµ½ÕâЩ°ü£¬Ö»ÐèÒª½âѹËõÕâЩÎļþ£¬È»ºó½«mod_ssl.so¿½±´µ½ApacheµÄmodulesĿ¼£¬½«Îļþopenssl.exe¿½±´µ½binĿ¼£¬½«Îļþconf/ssl.conf¿½±´µ½ApacheµÄconfĿ¼¡£
¡¡¡¡2. ʹÓÃÎı¾±à¼Æ÷´ò¿ªApacheµÄconfĿ¼µÄssl.conf.
¡¡¡¡3. ×¢Ê͵ô£¨Ê¹ÓÃ#£©ÏÂÃæ¼¸ÐУº
DocumentRoot "c:/apache/htdocs"ServerName www.example.com:443ServerAdmin you@example.comErrorLog logs/error_logTransferLog logs/access_log |
¡¡¡¡4. ´ËÐÐ
SSLCertificateFile conf/ssl.crt/server.crt¸ÄΪSSLCertificateFile conf/ssl/my-server.cert´ËÐÐSSLCertificateKeyFile conf/ssl.key/server.key¸ÄΪSSLCertificateKeyFile conf/ssl/my-server.key´ËÐÐSSLMutex file:logs/ssl_mutex¸ÄΪSSLMutex default |
¡¡¡¡5. ɾ³ýÏÂÃæÁ½ÐУº
<IfDefine SSL> |
¡¡¡¡6. ´ò¿ªApacheÅäÖÃÎļþ£¨httpd.conf£©£¬²¢ÇÒÈ¥µô´ËÐеÄ×¢ÊÍ
#LoadModule ssl_module modules/mod_ssl.so |
¡¡¡¡7. OpensslÐèÒªÒ»¸öÅäÖÃÎļþ£¬Äã¿ÉÒÔ´Óhttp://tud.at/programm/openssl.cnfÏÂÔØÒ»¸öÕýÔÚʹÓõģ¬Çë×¢Ò⣺*.cnfÀàÐ͵ÄÎļþ¾¡¹ÜÊÇÆÕͨµÄÎı¾Îļþ£¬Windows¶ÔÕâÖÖÎļþ»áÌØ±ð´¦Àí£¡
¡¡¡¡8. È»ºóÄãÐèÒª´´½¨Ò»¸öSSLÖ¤Ê飬Ϊ´Ë´ò¿ªÒ»¸öÃüÁîÐд°¿Ú£¬½øÈëapacheĿ¼£¨ÀýÈçC£º\program files\apache group\apache2£©£¬È»ºóÊäÈëÏÂÃæµÄÃüÁ
bin\openssl req -config bin\openssl.cnf -new -out my-server.csr |
¡¡¡¡Äã»á±»Ñ¶ÎÊÃÜÓÇ벻ҪʹÓüòµ¥µÄµ¥´Ê£¬¶øÊÇʹÓÃÕû¶Î»°£¬ÀýÈçÒ»¶ÎÊ«£¬Ô½³¤Ô½ºÃ¡£ÄãÒ²ÐèÒªÊäÈëserverµÄURL£¬ÆäËûËùÓÐÎÊÌâ¶¼ÊÇ¿ÉÑ¡µÄ£¬µ«ÊÇÎÒÃǽ¨ÒéÄã×îºÃÊäÈëÕâЩÐÅÏ¢¡£
¡¡¡¡Í¨³£»á×Ô¶¯²úÉúprivkey.pemÎļþ£¬µ«ÊÇÈç¹ûûÓУ¬ÇëÊäÈëÏÂÃæµÄÃüÁîÉú³ÉËü£º
bin\openssl genrsa -out privkey.pem 2048 |
¡¡¡¡È»ºóÊäÈëÕâ¸öÃüÁî
bin\openssl rsa -in privkey.pem -out my-server.key |
¡¡¡¡²¢ÇÒÊäÈ루ÔÚͬһÐУ©
bin\openssl x509 -in my-server.csr -out my-server.cert-req -signkey my-server.key -days 4000 |
¡¡¡¡ÕâÑù»á´´½¨Ò»¸öÔÚ4000ÌìÀï¹ýÆÚµÄÖ¤Ê飬×îºóÊäÈ룺
bin\openssl x509 -in my-server.cert -out my-server.der.crt -outform DER |
¡¡¡¡ÕâЩÃüÁîÔÚApacheĿ¼£¨my-server.der.crt¡¢my-server.csr¡¢my-server.key¡¢¡£rnd¡¢ privkey.pem¡¢my-server.cert£©Àï´´½¨ÁËһЩÎļþ£¬¿½±´ÕâЩÎļþµ½Ä¿Â¼conf/ssl£¨ÀýÈçC£º\program files\apache group\apache2\conf\ssl£©£Èç¹ûÕâ¸öĿ¼²»´æÔÚ£¬ÄãÐèÒªÊ×ÏÈ´´½¨Ò»¸ö¡£
¡¡¡¡9. ÖØÆôapache·þÎñ
¡¡¡¡10. ½«ÄãµÄä¯ÀÀÆ÷Ö¸Ïòhttps://servername/svn/project ¡¡
¡¡¡¡11 ¹Ø±Õ²»°²È«Á¬½Ó·½·¨
¡¡¡¡ÄãÉèÖÃÁËSSLÈÃÄãµÄ°æ±¾¿â¸ü°²È«£¬ÄãÒ»¶¨Ï£Íû¹Ø±ÕÆÕͨµÄ·Çssl·ÃÎÊ£¬Îª´Ë£¬ÄãÐèÒªÔÚSubversionµÄ<Location> Ôö¼Óָʾ£ºSSLRequireSSL.Ò»¸ö<Location>ʵÀý¾ÍÏñÕâ¸öÑù×Ó£º
|
¡¡¡¡×ܽ᣺
¡¡¡¡µ½´ËΪֹÔÚ°æ±¾¿ØÖƹ¤¾ßSubversionÔÚWindows Server 2003ϵݲװ»ù±¾½éÉÜÍêÁË£¬Èç¹ûÄúÏ£Íû»ñµÃ¸üºÃµÄ°²È«ÐÔÄÜ¿ÉÒÔ¿¼ÂÇʹÓÃʹÓÃWindowsÓòÈÏÖ¤¡£
| ×ÔÓÉ¹ã¸æÇø |
| ¡¡ |