linux 9 下 apache2.2.2+svn 1.3.1安裝(轉(zhuǎn))
本文基本上網(wǎng)絡(luò)上都能找到,只是安裝的過程中略有不同,小有問題吧,轉(zhuǎn)載的基礎(chǔ)上略有改動,我是完全按照下面步驟安裝,并取得成功的
apache的安裝
httpd是web服務(wù)器,用來通過web訪問subversion,我下載到httpd-2.2.2.tar.bz2。
解壓該文件:
#bunzip2 httpd-2.2.2.tar.bz2
#tar xvf httpd-2.2.2.tar
//進入解壓后的目錄
# cd httpd-2.2.2
//配置apache安裝,前兩個參數(shù)是必須要加的,你還可以根據(jù)您的需要添加其他的參數(shù)。
//后面的參數(shù)制定你要把apache安裝哪里
# ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
# make
//安裝
# make install
# cd /usr/local/apache2/bin
//啟動apache服務(wù)
# ./apachectl start
//打開瀏覽器http://localhost/如果有測試頁"It works!"出現(xiàn)則證明已經(jīng)安裝成功。
//打開瀏覽器http://localhost/如果有測試頁"It works!"出現(xiàn)則證明已經(jīng)安裝成功。
//如果配置文件/apache2/conf/httpd.conf中,下面兩行沒有注釋掉的話,需要先注釋,然后再啟動apache,否則可能報錯: "httpd: Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf: API m....."提示不能加載svn的.so文件
LoadModule dav_svn_module? ???modules/mod_dav_svn.so
LoadModule authz_svn_module? ?modules/mod_authz_svn.so
//這個時候只要把上面兩行注釋掉,就能成功運行apache,當(dāng)然,測試apache成功運行后,把注釋干掉,還是要加載這個.so模塊
3. 安裝Subversion
//解壓SubVersion安裝包 (root用戶進行下面的操作)
# tar xvzf Subversion-1.3.1.tar.gz
//進入解壓后的目錄
# cd Subversion-1.3.1
//配置subversion安裝
#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib
--enable-maintainer-mode
# make
//安裝
# make install
//創(chuàng)建庫文件所在的目錄 (svnroot用戶進行下面的操作)
# mkdir /home/svnroot/repository
//進入subversion的bin目錄
# cd /usr/local/subversion/bin
//創(chuàng)建倉庫"test"
# ./svnadmin create /home/svnroot/repository/test
# cd /home/svnroot/repository/test
//看看是不是多了些文件,如果是則說明Subversion安裝成功了
# ls –l
# cd /usr/local/subversion/bin
//這條語句將把路徑/home/user/import下找到的文件導(dǎo)入到你創(chuàng)建的Subversion 倉庫中去,
//提交后的修訂版為1。
# ./svn import /home/user/import file:///home/svnroot/repository/test –m "注釋"
//不讓其他人有該目錄的權(quán)限
# chmod 700 /home/svnroot/repository
//**注意,直接這么chmod會導(dǎo)致svn客戶端無法訪問,需要修改apache配置文件/conf/httpd.conf文件
//這個文件中有這么一段內(nèi)容:
User nobody
Group #-1
//把上述內(nèi)容改成:
User apache
Group apache
//(我的系統(tǒng)在安裝apache的時候,自動增加了apache用戶和apache組,如果你系統(tǒng)沒有這個用戶和組,則請自己添加該用戶和組)
//修改svn倉庫的所有者
chown -R apache:apache /home/svnroot/repository
//修改該目錄權(quán)限只能apache擁有
# chmod 700 /home/svnroot/repository
4. 修改Apache配置文件
# cd /usr/local/apadche2/bin
//啟動Apache
# ./apachect1 start
# vi /usr/local/apache2/conf/httpd.conf
? ?//在最下面添加
? ?LoadModule dav_svn_module modules/mod_dav_svn.so
? ?LoadModule authz_svn_module modules/mod_authz_svn.so
? ?<Location /svn>
? ?DAV svn
? ?SVNParentPath /home/svnroot/repository/ //svn父目錄
? ?AuthzSVNAccessFile /home/svnroot/repository/authz.conf //權(quán)限配置文件
? ?AuthType Basic //連接類型設(shè)置
? ?AuthName "Subversion.zoneyump" //連接框提示
? ?AuthUserFile /home/svnroot/repository/authfile //用戶配置文件
? ?Require valid-user //采用何種認證
? ?</Location>
? ?//其中authfile是通過"htpasswd [–c] /home/svnroot/repository/authfile username password"來創(chuàng)建的
? ?//"Require valid-user"告訴apache在authfile中所有的用戶都可以訪問。如果沒有它,
? ?//則只能第一個用戶可以訪問新建庫
5. 重啟apache # ./usr/local/apache2/bin/apachectl restart
//打開瀏覽器訪問http://localhost/svn/test/,如果有東西顯示就說明成功。
6. 權(quán)限管理
1)增加用戶
# htpasswd [-c] /home/svnroot/repository/authfile wooin
//第一次設(shè)置用戶時使用-c表示新建一個用戶文件?;剀嚭筝斎胗脩裘艽a,完成對用戶的增加
# htpasswd authfile 用戶名(加入新的用戶)
2)權(quán)限分配
# vi /home/svnroot/repository/authz.conf
? ?[test:/] //這表示,倉庫test的根目錄下的訪問權(quán)限
? ?wooin = rw //test倉庫wooin用戶具有讀和寫權(quán)限
? ?bao = r //test倉庫bao用戶具有讀權(quán)限
? ?[test2:/] //test2倉庫根目錄下的訪問權(quán)限
? ?wooin = r //wooin用戶在test2倉庫根目錄下只有讀權(quán)限
? ?bao = //bao用戶在 test2倉庫根目錄下無任何權(quán)限
? ?[/] //這個表示在所有倉庫的根目錄下
? ?* = r //這個表示對所有的用戶都具有讀權(quán)限
? ?#[groups] //這個表示群組設(shè)置
? ?#svn1-developers = wooin, bao //這個表示某群組里的成員
? ?#svn2-developers = wooin
? ?#[svn1:/]
? ?#@svn1-developers = rw //如果在前面加上@符號,則表示這是個群組權(quán)限設(shè)置
將這個設(shè)置完成后。重啟Apache,就可以通過
http://localhost/svn/test
這個URL來訪問倉庫了,當(dāng)然,受權(quán)限的限制,必須是合法用戶才能訪問且具有相應(yīng)的權(quán)限
7. 一些備忘:
1. svn checkout http://localhost/svn/hello.world
2. svn commit 時的默認編輯器的環(huán)境變量$SVN_EDITOR=vi需要手動設(shè)定,用kate好像有問題
3. 如果linux的登錄用戶名密碼都和svn的其中一個用戶名密碼相同時,在checkout的時候不會要求輸 入用戶名密碼直接就可以checkout出來。比如:linux有個用戶wooin,svn也有一個用戶wooin,并且密碼 都是一樣的,當(dāng)用wooin登錄linux后,執(zhí)行checkout,可以直接提取出源碼文件,不用輸入認證信息。
4. 在svn使用過程中牽扯到幾種權(quán)限:文件系統(tǒng)的權(quán)限,linux系統(tǒng)權(quán)限,svn用戶的權(quán)限,apache進程的權(quán)限。
文件系統(tǒng)的權(quán)限,linux系統(tǒng)權(quán)限:這里相同的意思,就是平時大家使用linux時文件夾和文件的訪問權(quán)限。在 svn建立倉庫,文件夾,配置文件的時候用svnroot用戶,并將倉庫權(quán)限設(shè)置為700,不允許其他用戶直接通過 文件系統(tǒng)查看,只能由svnroot進行管理。
apache進程的權(quán)限:因為所有跟倉庫傳輸?shù)牟僮鞫际峭ㄟ^apache進程進行的,所以即使你給svn用戶設(shè)置了 很大的權(quán)限,但是apache進程沒有訪問倉庫或者相關(guān)文件的權(quán)限也沒有用,apache進程的權(quán)限設(shè)置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的這兩行:
User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行
Group daemon
svn用戶的權(quán)限:就是在repository/authz.conf文件中設(shè)置的權(quán)限信息,是svn用來管理倉庫訪問權(quán)限的。
5. svn服務(wù)器設(shè)置有兩種方式:http 和 svnserve。這里介紹的是http方法
6. 在/etc/profile的結(jié)尾設(shè)置一些svn啟動時要做的工作 # start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi
7. APR libraries 安裝 SVN 的時候最好指定 --with-apr= 和 --with-apr-util= 參數(shù)到 Apache 安裝的根目錄
(ServerRoot)下,而不是使用缺省的 SVN 安裝包中自帶的 apr 。否則如果你安裝的 Apache
版本不同有可能導(dǎo)致 APR 庫不匹配,出現(xiàn)類似:
Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的錯誤。
Updated 2006-04-20 16:30 -- 比如說如果你安裝的是apache 2.2.0版本,就需要在編譯安裝svn的時候指定
--with-apxs和--with-apr參數(shù)到你的apache2.2.0安裝目錄下:
./configure --prefix=${subversionInstallFolder} /
--with-apxs=${apacheInstallFolder}/bin/apxs /
--with-apr=${apacheInstallFolder} /
--with-apr-util=${apacheInstallFolder} /
--with-ssl /
--with-zlib /
--enable-maintainer-mode
apache的安裝
httpd是web服務(wù)器,用來通過web訪問subversion,我下載到httpd-2.2.2.tar.bz2。
解壓該文件:
#bunzip2 httpd-2.2.2.tar.bz2
#tar xvf httpd-2.2.2.tar
//進入解壓后的目錄
# cd httpd-2.2.2
//配置apache安裝,前兩個參數(shù)是必須要加的,你還可以根據(jù)您的需要添加其他的參數(shù)。
//后面的參數(shù)制定你要把apache安裝哪里
# ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
# make
//安裝
# make install
# cd /usr/local/apache2/bin
//啟動apache服務(wù)
# ./apachectl start
//打開瀏覽器http://localhost/如果有測試頁"It works!"出現(xiàn)則證明已經(jīng)安裝成功。
//打開瀏覽器http://localhost/如果有測試頁"It works!"出現(xiàn)則證明已經(jīng)安裝成功。
//如果配置文件/apache2/conf/httpd.conf中,下面兩行沒有注釋掉的話,需要先注釋,然后再啟動apache,否則可能報錯: "httpd: Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf: API m....."提示不能加載svn的.so文件
LoadModule dav_svn_module? ???modules/mod_dav_svn.so
LoadModule authz_svn_module? ?modules/mod_authz_svn.so
//這個時候只要把上面兩行注釋掉,就能成功運行apache,當(dāng)然,測試apache成功運行后,把注釋干掉,還是要加載這個.so模塊
3. 安裝Subversion
//解壓SubVersion安裝包 (root用戶進行下面的操作)
# tar xvzf Subversion-1.3.1.tar.gz
//進入解壓后的目錄
# cd Subversion-1.3.1
//配置subversion安裝
#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib
--enable-maintainer-mode
# make
//安裝
# make install
//創(chuàng)建庫文件所在的目錄 (svnroot用戶進行下面的操作)
# mkdir /home/svnroot/repository
//進入subversion的bin目錄
# cd /usr/local/subversion/bin
//創(chuàng)建倉庫"test"
# ./svnadmin create /home/svnroot/repository/test
# cd /home/svnroot/repository/test
//看看是不是多了些文件,如果是則說明Subversion安裝成功了
# ls –l
# cd /usr/local/subversion/bin
//這條語句將把路徑/home/user/import下找到的文件導(dǎo)入到你創(chuàng)建的Subversion 倉庫中去,
//提交后的修訂版為1。
# ./svn import /home/user/import file:///home/svnroot/repository/test –m "注釋"
//不讓其他人有該目錄的權(quán)限
# chmod 700 /home/svnroot/repository
//**注意,直接這么chmod會導(dǎo)致svn客戶端無法訪問,需要修改apache配置文件/conf/httpd.conf文件
//這個文件中有這么一段內(nèi)容:
User nobody
Group #-1
//把上述內(nèi)容改成:
User apache
Group apache
//(我的系統(tǒng)在安裝apache的時候,自動增加了apache用戶和apache組,如果你系統(tǒng)沒有這個用戶和組,則請自己添加該用戶和組)
//修改svn倉庫的所有者
chown -R apache:apache /home/svnroot/repository
//修改該目錄權(quán)限只能apache擁有
# chmod 700 /home/svnroot/repository
4. 修改Apache配置文件
# cd /usr/local/apadche2/bin
//啟動Apache
# ./apachect1 start
# vi /usr/local/apache2/conf/httpd.conf
? ?//在最下面添加
? ?LoadModule dav_svn_module modules/mod_dav_svn.so
? ?LoadModule authz_svn_module modules/mod_authz_svn.so
? ?<Location /svn>
? ?DAV svn
? ?SVNParentPath /home/svnroot/repository/ //svn父目錄
? ?AuthzSVNAccessFile /home/svnroot/repository/authz.conf //權(quán)限配置文件
? ?AuthType Basic //連接類型設(shè)置
? ?AuthName "Subversion.zoneyump" //連接框提示
? ?AuthUserFile /home/svnroot/repository/authfile //用戶配置文件
? ?Require valid-user //采用何種認證
? ?</Location>
? ?//其中authfile是通過"htpasswd [–c] /home/svnroot/repository/authfile username password"來創(chuàng)建的
? ?//"Require valid-user"告訴apache在authfile中所有的用戶都可以訪問。如果沒有它,
? ?//則只能第一個用戶可以訪問新建庫
5. 重啟apache # ./usr/local/apache2/bin/apachectl restart
//打開瀏覽器訪問http://localhost/svn/test/,如果有東西顯示就說明成功。
6. 權(quán)限管理
1)增加用戶
# htpasswd [-c] /home/svnroot/repository/authfile wooin
//第一次設(shè)置用戶時使用-c表示新建一個用戶文件?;剀嚭筝斎胗脩裘艽a,完成對用戶的增加
# htpasswd authfile 用戶名(加入新的用戶)
2)權(quán)限分配
# vi /home/svnroot/repository/authz.conf
? ?[test:/] //這表示,倉庫test的根目錄下的訪問權(quán)限
? ?wooin = rw //test倉庫wooin用戶具有讀和寫權(quán)限
? ?bao = r //test倉庫bao用戶具有讀權(quán)限
? ?[test2:/] //test2倉庫根目錄下的訪問權(quán)限
? ?wooin = r //wooin用戶在test2倉庫根目錄下只有讀權(quán)限
? ?bao = //bao用戶在 test2倉庫根目錄下無任何權(quán)限
? ?[/] //這個表示在所有倉庫的根目錄下
? ?* = r //這個表示對所有的用戶都具有讀權(quán)限
? ?#[groups] //這個表示群組設(shè)置
? ?#svn1-developers = wooin, bao //這個表示某群組里的成員
? ?#svn2-developers = wooin
? ?#[svn1:/]
? ?#@svn1-developers = rw //如果在前面加上@符號,則表示這是個群組權(quán)限設(shè)置
將這個設(shè)置完成后。重啟Apache,就可以通過
http://localhost/svn/test
這個URL來訪問倉庫了,當(dāng)然,受權(quán)限的限制,必須是合法用戶才能訪問且具有相應(yīng)的權(quán)限
7. 一些備忘:
1. svn checkout http://localhost/svn/hello.world
2. svn commit 時的默認編輯器的環(huán)境變量$SVN_EDITOR=vi需要手動設(shè)定,用kate好像有問題
3. 如果linux的登錄用戶名密碼都和svn的其中一個用戶名密碼相同時,在checkout的時候不會要求輸 入用戶名密碼直接就可以checkout出來。比如:linux有個用戶wooin,svn也有一個用戶wooin,并且密碼 都是一樣的,當(dāng)用wooin登錄linux后,執(zhí)行checkout,可以直接提取出源碼文件,不用輸入認證信息。
4. 在svn使用過程中牽扯到幾種權(quán)限:文件系統(tǒng)的權(quán)限,linux系統(tǒng)權(quán)限,svn用戶的權(quán)限,apache進程的權(quán)限。
文件系統(tǒng)的權(quán)限,linux系統(tǒng)權(quán)限:這里相同的意思,就是平時大家使用linux時文件夾和文件的訪問權(quán)限。在 svn建立倉庫,文件夾,配置文件的時候用svnroot用戶,并將倉庫權(quán)限設(shè)置為700,不允許其他用戶直接通過 文件系統(tǒng)查看,只能由svnroot進行管理。
apache進程的權(quán)限:因為所有跟倉庫傳輸?shù)牟僮鞫际峭ㄟ^apache進程進行的,所以即使你給svn用戶設(shè)置了 很大的權(quán)限,但是apache進程沒有訪問倉庫或者相關(guān)文件的權(quán)限也沒有用,apache進程的權(quán)限設(shè)置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的這兩行:
User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行
Group daemon
svn用戶的權(quán)限:就是在repository/authz.conf文件中設(shè)置的權(quán)限信息,是svn用來管理倉庫訪問權(quán)限的。
5. svn服務(wù)器設(shè)置有兩種方式:http 和 svnserve。這里介紹的是http方法
6. 在/etc/profile的結(jié)尾設(shè)置一些svn啟動時要做的工作 # start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi
7. APR libraries 安裝 SVN 的時候最好指定 --with-apr= 和 --with-apr-util= 參數(shù)到 Apache 安裝的根目錄
(ServerRoot)下,而不是使用缺省的 SVN 安裝包中自帶的 apr 。否則如果你安裝的 Apache
版本不同有可能導(dǎo)致 APR 庫不匹配,出現(xiàn)類似:
Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的錯誤。
Updated 2006-04-20 16:30 -- 比如說如果你安裝的是apache 2.2.0版本,就需要在編譯安裝svn的時候指定
--with-apxs和--with-apr參數(shù)到你的apache2.2.0安裝目錄下:
./configure --prefix=${subversionInstallFolder} /
--with-apxs=${apacheInstallFolder}/bin/apxs /
--with-apr=${apacheInstallFolder} /
--with-apr-util=${apacheInstallFolder} /
--with-ssl /
--with-zlib /
--enable-maintainer-mode