ºìÁªLinuxÃÅ»§
Linux°ïÖú

linuxϼÜÉèAPACHE+SVN

·¢²¼Ê±¼ä:2008-03-14 15:55:40À´Ô´:ºìÁª×÷Õß:itceoaug
Subversion °²×°ÓëÅäÖÃ

Ò» ¡¢Ê×ÏÈ×¼±¸ºÃÏà¹ØµÄ°²×°°ü£¬ÎÒÕâÀïʹÓõÄÊÇÏÂÁеö°ü

Apr : apr-1.2.12 ºÍ apr-util-1.2.12

Apache : httpd-2.2.4.tar.gz

Subversion: subversion-1.4.5.tar.gz ºÍ subversion-deps-1.4.5.tar.gz

×¢Ò⣺ÔÚ°²×°¹ý³ÌÖпÉÄÜ»áÌáʾÐèÒª°²×°ÆäËûµÄ°ü£¬¸ù¾Ý¾ßÌåµÄÇé¿öÀ´°²×°ËùÐèÒªµÄ°ü£¬Èç¹û°²×°¹ý³ÌºÜ˳ÀûÔò˵Ã÷ÄãÔËÆøºÃ£¡

¶þ¡¢°²×°ºÍÅäÖò½Ö裺

1¡¢°²×°apr-1.2.12

# tar -zvxf apr-1.2.12.tar.gz

# cd apr-1.2.12

# ./configure /* °²×°²»Ö¸¶¨Â·¾¶Ê± ĬÈϰ²×°µ½/usr/local/apr

# make ; make install

2¡¢°²×° apr-util-1.2.12

# tar -zvxf apr-util-1.2.12.tar.gz

# cd apr-util-1.2.12

# ./configure - -with-apr=/usr/local/apr

# make ; make install

3¡¢°²×° httpd-2.2.4.tar.gz

# tar -zvxf httpd-2.2.4.tar.gz

# cd httpd-2.2.4

# ./configure

- -prefix=/usr/local/apache

- -with-apr=/usr/local/apr/bin/apr-1-config

- -with-apr-util=/usr/local/apr/bin/apu-1-config

- -enable-modules=so /* DSOģʽ°²×°apache £¨»ò --enable-so£©

- -enable-dav

- -enable-maintainer-mode

- - enable-rewrite

# make ; make install

°²×°ºÃºóÆô¶¯apache

# /usr/local/apache/bin/apachectl -k start

ÓÃä¯ÀÀÆ÷²é¿´http://localhost/,µÃµ½it works£¬ËµÃ÷apacheÒѾ­ÅäÖóɹ¦ÁË¡£

4¡¢°²×°ºÍÅäÖà subversion
#tar -zvxf subversion-1.4.5.tar.gz

#tar -zvxf subversion-deps-1.4.5.tar.gz /*ÕâÁ½¸ö×Ô¶¯½âѹ³ÉÒ»¸ö°ü subversion-1.4.5

#cd subversion-1.4.5

#rm -rf apr

#rm -rf apr-util

×¢Ò⣺SVN ÒÀÀµµÄAPR°æ±¾ÒªÕýÈ·¡£Èç¹ûApacheΪ2.0.x£¬¶ÔÓ¦µÄAPR°æ±¾Ó¦Îª0.9.x£»ApacheΪ2.2.x£¬¶ÔÓ¦µÄAPR°æ±¾Ó¦Îª1.2.x¡£ÓÉÓÚsubversion-deps°üÀïµÄAPRÊÇ0.9.xµÄ£¬Òò´Ë±àÒësvnʱҪɾ³ý´ÓdepsÀï½âѹ³öÀ´µÄapr, apr-util£¬¸Ä¶øÊ¹ÓÃapache 2.2ÀïÌṩµÄ¡££¨ÕâÀïÖ¸¶¨Îª¿ªÊ¼°²×°µÄaprĿ¼£©,ÕâÒ»µã֪ʶ·Ç³£ÖØÒª,×Ô¼ºÖ®Ç°¶à´Î°²×°¶¼Ã»³É¹¦,ÏÖÔÚ²ÅÃ÷°×ÊÇÔÚÕâÒ»µã±»¿¨×¡ÁË,µ«×îÖÕ»¹ÊDZ»ÎÒ½â¾öÁË, ѧϰ,ºÍ²»¶Ïʵ¼ù »áʹÄã²»¶Ï³É³¤!

#./configure

--prefix=/usr/local/svn

--with-apxs=/usr/local/apache/bin/apxs

--with-apr=/usr/local/apr/bin/apr-1-config

--with-apr-util=/usr/local/apr/bin/apu-1-config

--with-ssl

--with-zlib

--enable-maintainer-mode

#make

#make install

È·¶¨Ò»ÏÂsvnÓÐûÓа²×°³É¹¦

#/usr/local/svn/bin/svnserve - -version

»á¿´µ½Ïà¹Ø°æ±¾ÐÅÏ¢£¡

ÍêÁËÔÙ¿´¿´apache µÄÏà¹ØÄ£¿éÓÐûÓмÓÔØ£¡ÈçÏ£¡

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

µ½´ËÈç¹ûÒ»Ö±¶¼Ë³ÀûµÄ»°¾Í»ù±¾Ã»Ê²Ã´ÎÊÌ⣡¼ÌÐøÍùÏ£¡



¿ªÊ¼½¨Á¢°æ±¾¿â

#/usr/local/svn/bin/svnadmin create /svn/project/www /*´´½¨²Ö¿â"www"

#ls /svn/project/www /*²é¿´ÓÐûÓд´½¨ºÃ,Èç¹û¶àÁËһЩÎļþÔò˵Ã÷°æ±¾¿âÒѾ­´´½¨ºÃ



µ¼ÈëÏîÄ¿Îļþµ½°æ±¾¿â

ÏÂÃæÕâÌõÓï¾ä½«°Ñ·¾¶/share/wwwÏÂÕÒµ½µÄÏîÄ¿Îļþµ¼Èëµ½Äã´´½¨µÄ/svn/project/www ²Ö¿âÖÐÈ¥£¬
Ìá½»ºóµÄÐÞ¶©°æÎª1

#/usr/local/svn/bin/svn import /share/www file:///svn/project/www -m ¡°×¢ÊÍ¡±



ÅäÖÃÌá¸ßsvn°æ±¾¿âµÄ°²È«ÐÔ

#chmod -R 700 /svn/project /*²»ÈÃÆäËûÈËÓиÃĿ¼µÄȨÏÞ

×¢Òâ: Ö±½ÓÕâôchmod»áµ¼ÖÂsvn¿Í»§¶ËÎÞ·¨·ÃÎÊ,ͬʱÐèÒªÐÞ¸ÄapacheÅäÖÃÎļþ./conf/httpd.confÎļþ,(Èç¹ûÄãµÄˮƽ²»¹»¸ßµÄ»°,ÕâÒ»²½¿ÉÒÔÏÈÌø¹ý,ÒÔÃâ¸ø×Ô¼ºÕÒÂé·³!µÈ°Ñ·þÎñÍêÈ«¸ã¶¨ºóÔÙÀ´½øÒ»²½Ìá¸ß°²È«ÐÔ) ÔÚhttpd.confÎļþÖÐÓÐÕâôһ¶ÎÄÚÈÝ:
User daemon
Group daemon

°ÑÉÏÊöÄÚÈݸijÉ:
User apache
Group apache
(ÎÒµÄϵͳÔÚ°²×°apacheµÄʱºò,×Ô¶¯Ôö¼ÓÁËapacheÓû§ºÍapache×é,Èç¹ûÄãϵͳûÓÐÕâ¸öÓû§ºÍ×é,ÔòÇë×Ô¼ºÌí¼Ó¸ÃÓû§ºÍ×é)
ÐÞ¸Äsvn²Ö¿âµÄËùÓÐÕß
#chown -R apache:apache /svn/project







5¡¢ÅäÖÃapacheÖ§³Ösvn

#vi /usr/local/apache/conf/httpd.conf

ÔÚÎļþĩβÌí¼Ó


DAV svn
SVNParentPath /svn/project (´Ë´¦ÅäÖÃÄãµÄ°æ±¾¿â¸ùĿ¼)
AuthType Basic £¨Á¬½ÓÀàÐÍÉèÖà »ù±¾ÑéÖ¤£©
AuthName "Hello welcome to here" £¨´Ë´¦×Ö·û´®ÄÚÈÝÐÞ¸ÄΪÌáʾ¶Ô»°¿ò±êÌ⣩
AuthUserFile /svn/passwd (´Ë´¦ÐÞ¸ÄΪ·ÃÎʰ汾¿âÓû§µÄÎļþ£¬

ÓÃapache µÄhtpasswdÃüÁîÉú³É)
AuthzSVNAccessFile /svn/auth.conf £¨´Ë´¦ÐÞ¸ÄΪ·ÃÎʰ汾¿âȨÏÞµÄÎļþ£©
Require valid-user £¨"Require valid-user"¸æËßapacheÔÚauthfileÖÐËùÓеÄÓû§¶¼¿ÉÒÔ·ÃÎÊ¡£

Èç¹ûûÓÐËü£¬ÔòÖ»ÄܵÚÒ»¸öÓû§¿ÉÒÔ·ÃÎÊн¨¿â£©


±£´æÎļþÍ˳ö!

ÖØÐÂÆô¶¯apache

# /usr/local/apache/bin/apachectl -k restart

ÏÈʹÓÃä¯ÀÀÆ÷¼ì²âÒ»ÏÂ

´ò¿ªä¯ÀÀÆ÷·ÃÎÊhttp://192.168.0.1/svn/www »áÌáʾÊäÈëÓû§ÃûÃÜÂë

µÈµ½Íê³ÉÏÂÃæ²½Öè¾Í¿ÉÒÔ½øÈ¥·ÃÎÊÁË,½øÈ¥ºóÈç¹ûÓж«Î÷ÏÔʾ¾Í˵Ã÷³É¹¦¡£

ÏÂÃæ¾ÍÊǶÔsvnµÄÓû§ºÍȨÏÞÅäÖùÜÀí



6¡¢ÅäÖÃsvnȨÏÞ¹ÜÀí(¼´authz.confµÄÅäÖÃ)

1 . Ìí¼ÓÓû§:

# /usr/local/apache/bin/htpasswd -c /svn/passwd user1
µÚÒ»´ÎÉèÖÃÓû§Ê±Ê¹ÓÃ-c±íʾн¨Ò»¸öÓû§Îļþ¡£»Ø³µºóÊäÈëÓû§ÃÜÂ룬Íê³É¶ÔÓû§µÄÔö¼Ó

µÚ¶þ´ÎÌí¼ÓÓû§²»ÐèÒª´ø -c ²ÎÊý Èç:

# /usr/local/apache/bin/htpasswd /svn/passwd user2

2 . ȨÏÞ·ÖÅä:

#vi /svn/auth.conf

[groups] /*Õâ¸ö±íʾȺ×éÉèÖÃ

Admin=usr1,user2 /*Õâ¸ö±íʾadminȺ×éÀïµÄ³ÉÔ± user1,user2

Develop=u1, u2 /*Õâ¸ö±íʾDevelopȺ×éÀïµÄ³ÉÔ± u1,u2

[www:/] /*Õâ±íʾ£¬²Ö¿âwwwµÄ¸ùĿ¼ÏµķÃÎÊȨÏÞ

user1 = rw /*www²Ö¿âuser1Óû§¾ßÓжÁºÍдȨÏÞ
user2 = r /* www²Ö¿âuserlÓû§¾ßÖ»ÓжÁȨÏÞ

@develop=rw /*Õâ±íʾ Ⱥ developµÄ³ÉÔ±¶¼¾ßÓжÁдȨÏÞ
[/] /*Õâ¸ö±íʾÔÚËùÓвֿâµÄ¸ùĿ¼ÏÂ
* = r /*Õâ¸ö±íʾ¶ÔËùÓеÄÓû§¶¼¾ßÓжÁȨÏÞ



×¢Ò⣺Ôڱ༭authz.confÎļþʱ£¬ËùÓÐÐж¼±ØÐëÒª¶¥Í·Ð´£¬²»ÄÜÓÐËõÐгöÏÖ£¬·ñÔò»á±¨´í£º"Access denied: 'user1' ",ÀïÃæµÄÄÚÈÝ¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒª×ÔÐÐÌí¼Ó,²»±ØÓëÎÒÉÏÃæËùдµÄÏàͬ!

7¡¢ÖØÆôapache·þÎñºÍÆô¶¯svn·þÎñ

#/usr/local/apache/bin/apachectl -k restart

¾Í¿ÉÒÔͨ¹ý¡¡http://192.168.0.1/svn/www Õâ¸öURLÀ´·ÃÎʲֿâÁË£¬µ±È»£¬ÊÜȨÏÞµÄÏÞÖÆ£¬±ØÐëÊǺϷ¨Óû§²ÅÄÜ·ÃÎÊÇÒ¾ßÓÐÏàÓ¦µÄȨÏÞ

×îºóÆô¶¯svn

#/usr/local/svn/bin/svn -d -r /svn/project

-d ±íʾÒÔ daemon ·½Ê½(ºǫ́ÔËÐÐ)ÔËÐÐ

-r /svn/project Ö¸¶¨¸ùĿ¼ÊÇ/svn/project

¼ì²é·þÎñÆ÷ÊÇ·ñÆô¶¯Õý³£:

#ps -ef|grep svnserve

Èç¹ûÏÔʾÈçÏ£¬¼´ÎªÆô¶¯³É¹¦£º

Root¡¡ 6941¡¡¡¡ 1¡¡0 15:07 ?¡¡¡¡00:00:00 svnserve -d ----listen-port 9999 -r /svn

½ÓÏÂÀ´¿Í»§¶ËTortoiseSVNÖ±½Ó°²×°£¬ÖØÆô¿Í»§¶Ë¼ÆËã»ú¡£

OK.µ½´Ë APACHE+SVN·þÎñÆ÷µÄ¼ÜÉèÒѾ­Íê³É
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ