linux 下subversion安裝
下載軟體包:
apache: wget http://apache.mirror.phpchina.com/httpd/httpd-2.2.6.tar.bz2
berkeley-db: wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz
subversion: wget http://subversion.tigris.org/downloads/subversion-1.4.5.tar.bz2
apache: wget http://apache.mirror.phpchina.com/httpd/httpd-2.2.6.tar.bz2
berkeley-db: wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz
subversion: wget http://subversion.tigris.org/downloads/subversion-1.4.5.tar.bz2
一、安裝apache
a. tar zxf httpd-2.2.8.tar.gz
b。安裝apr apr-util
# cd srclib/apr
#./configure –prefix=/usr/local/apr
# make
# make install
a. tar zxf httpd-2.2.8.tar.gz
b。安裝apr apr-util
# cd srclib/apr
#./configure –prefix=/usr/local/apr
# make
# make install
# cd apr-util/
#./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr/
# make
# make install
#./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr/
# make
# make install
c.安裝apache
#./configure –prefix=/usr/local/apache2 –enable-module=so –enable-mods-shared=all –enable-cache –enable-file-cache –enable-mem-cache –enable-disk-cache –enable-static-support –enable-static-htpasswd –enable-static-htdigest –enable-static-rotatelogs –enable-static-logresolve –enable-static-htdbm –enable-static-ab –enable-static-checkgid –with-mpm=worker –enable-ssl –enable-deflate –with-included-apr –enable-so –enable-rewrite –enable-proxy=share –enable-proxy-ajp=share –enable-dav=share –enable-dav-fs –with-apr=/usr/local/apr/ –with-apr-util=/usr/local/apr-util/
#make
#make install
#./configure –prefix=/usr/local/apache2 –enable-module=so –enable-mods-shared=all –enable-cache –enable-file-cache –enable-mem-cache –enable-disk-cache –enable-static-support –enable-static-htpasswd –enable-static-htdigest –enable-static-rotatelogs –enable-static-logresolve –enable-static-htdbm –enable-static-ab –enable-static-checkgid –with-mpm=worker –enable-ssl –enable-deflate –with-included-apr –enable-so –enable-rewrite –enable-proxy=share –enable-proxy-ajp=share –enable-dav=share –enable-dav-fs –with-apr=/usr/local/apr/ –with-apr-util=/usr/local/apr-util/
#make
#make install
(測試一下apache是否安裝成功)
二、安裝php
下載 ming-0.4.0.beta4.tar.gz
wget http://downloads.sourceforge.net/ming/ming-0.4.0.beta4.tar.gz?modtime=1174994374&big_mirror=0
# tar zxf ming-0.4.0.beta4.tar.gz
# cd ming-0.4.0.beta4
# ./configure
# make
# make install
wget http://downloads.sourceforge.net/ming/ming-0.4.0.beta4.tar.gz?modtime=1174994374&big_mirror=0
# tar zxf ming-0.4.0.beta4.tar.gz
# cd ming-0.4.0.beta4
# ./configure
# make
# make install
# tar zxf php-5.2.5.tar.gz
# cd ming-0.4.0.beta4/php_ext/
# cp * /home/web/php-5.2.5/ext/ming/ (出現是否讓覆蓋的提示是選擇否就ok了)
# cd php-5.2.5
# ./configure –with-apxs2=/usr/local/apache2/bin/apxs –prefix=/usr/local/php –enable-track-var –with-dom –enable-wddx –with-zlib –enable-bcmath –with-bz2 –enable-calendar –with-curl –with-curlwrappers –enable-exif –enable-ftp –with-gettext –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-soap –enable-sockets –with-iconv –enable-xslt –with-xslt-ablot=/usr/local/sablot/lib –enable-mbstring=all –enable-mbstr-enc-trans –enable-mbregex –with-pdo –with-pdo-mysql –with-pdo-sqlite –with-pdo-pqsql –with-xmlrpc –with-config-file-path=/etc –with-openssl –with-libxml-dir=/usr/include/libxml2/libxml –enable-memory-limit –enable-static –enable-maintainer-zts –enable-zend-multibyte –enable-inline-optimization –enable-zend-multibyte –with-expat-dir –with-xsl –with-gd –with-jpeg-dir –with-zlib-dir –with-png-dir –with-freetype-dir –with-ttf –enable-fastcgi –enable-force-cgi-redirect –disable-cli –enable-cal –with-kerberos –with-ming
# make
# make install
# cd ming-0.4.0.beta4/php_ext/
# cp * /home/web/php-5.2.5/ext/ming/ (出現是否讓覆蓋的提示是選擇否就ok了)
# cd php-5.2.5
# ./configure –with-apxs2=/usr/local/apache2/bin/apxs –prefix=/usr/local/php –enable-track-var –with-dom –enable-wddx –with-zlib –enable-bcmath –with-bz2 –enable-calendar –with-curl –with-curlwrappers –enable-exif –enable-ftp –with-gettext –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-soap –enable-sockets –with-iconv –enable-xslt –with-xslt-ablot=/usr/local/sablot/lib –enable-mbstring=all –enable-mbstr-enc-trans –enable-mbregex –with-pdo –with-pdo-mysql –with-pdo-sqlite –with-pdo-pqsql –with-xmlrpc –with-config-file-path=/etc –with-openssl –with-libxml-dir=/usr/include/libxml2/libxml –enable-memory-limit –enable-static –enable-maintainer-zts –enable-zend-multibyte –enable-inline-optimization –enable-zend-multibyte –with-expat-dir –with-xsl –with-gd –with-jpeg-dir –with-zlib-dir –with-png-dir –with-freetype-dir –with-ttf –enable-fastcgi –enable-force-cgi-redirect –disable-cli –enable-cal –with-kerberos –with-ming
# make
# make install
# cp php.ini-dist /etc/php.ini
在apache配置檔案中新增下面內容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
測試apache和php的整合情況
三、安裝subversion
a. # tar jxf subversion-1.4.5.tar.bz2
b. # cd subversion-1.4.5
c. # ./configure –prefix=/usr/local/subversion –with-apxs2=/usr/local/apache/bin/apxs –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –with-ssl
d. # make
e. # make install
a. # tar jxf subversion-1.4.5.tar.bz2
b. # cd subversion-1.4.5
c. # ./configure –prefix=/usr/local/subversion –with-apxs2=/usr/local/apache/bin/apxs –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –with-ssl
d. # make
e. # make install
四、配置
a.建立庫檔案所在的目錄
# mkdir -p /usr/local/svnroot/repository
b.進入subversion的bin目錄
# cd /usr/local/subversion/bin
c.建立倉庫”bjso”
# ./svnadmin create /usr/local/svnroot/repository/bjso
# cd /usr/local/svnroot/repository/bjso
# ls
conf dav db format hooks locks README.txt(看看是不是多了些檔案,如果是則說明Subversion安裝成功了)
# cd /usr/local/subversion/bin/
下面這條語句將把路徑/home/user/import下找到的檔案匯入到你建立的Subversion倉庫中去,提交後的修訂版為1。
./svn import -m “New import” /usr/local/www/ file:///usr/local/svnroot/repository/bjso/
Adding /home/cuijie/web/index.html
a.建立庫檔案所在的目錄
# mkdir -p /usr/local/svnroot/repository
b.進入subversion的bin目錄
# cd /usr/local/subversion/bin
c.建立倉庫”bjso”
# ./svnadmin create /usr/local/svnroot/repository/bjso
# cd /usr/local/svnroot/repository/bjso
# ls
conf dav db format hooks locks README.txt(看看是不是多了些檔案,如果是則說明Subversion安裝成功了)
# cd /usr/local/subversion/bin/
下面這條語句將把路徑/home/user/import下找到的檔案匯入到你建立的Subversion倉庫中去,提交後的修訂版為1。
./svn import -m “New import” /usr/local/www/ file:///usr/local/svnroot/repository/bjso/
Adding /home/cuijie/web/index.html
Committed revision 1.
下面語句為修改倉庫許可權
# chown -R www:www /usr/local/svnroot/repository
# chown -R www:www /usr/local/svnroot/repository
d。修改版本庫配置檔案
# vi /usr/local/svnroot/repository/bjso/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /usr/local/svnroot/repository/authfile
authz-db = /usr/local/svnroot/repository/authz.conf
realm = bjso
# vi /usr/local/svnroot/repository/bjso/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /usr/local/svnroot/repository/authfile
authz-db = /usr/local/svnroot/repository/authz.conf
realm = bjso
e.修改Apache配置檔案
# vi /usr/local/apache2/conf/httpd.conf
確認下面2個模組是否存在
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
# vi /usr/local/apache2/conf/httpd.conf
確認下面2個模組是否存在
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在最後面新增下面內容
NameVirtualHost 192.168.0.150
NameVirtualHost 192.168.0.150
<VirtualHost 192.168.0.150>
ServerAdmin cuijie@beijingso.com
DocumentRoot /usr/local/www/
ServerName svn.bjso.com
<Location />
DAV svn
SVNParentPath /usr/local/svnroot/repository/
AuthzSVNAccessFile /usr/local/svnroot/repository/authz.conf
AuthType Basic
AuthName “Subversion”
AuthUserFile /usr/local/svnroot/repository/authfile
Require valid-user
</Location>
</VirtualHost>
//SVNParentPath /usr/local/svnroot/repository/ 目錄不能與DocumentRoot目錄一樣,否則會出現使用瀏覽器訪問svn倉庫正常,但是當用客戶端svn命令check out的時候提示錯誤: 301 Moved Permanently subversion
//其中authfile是通過
htpasswd -b -c /usr/local/svnroot/repository/authfile cuijie cuijie@bjso
//來建立的 -c Create a new file. -b Use the password from the command line rather than prompting for it.
//”Require valid-user”告訴apache在authfile中所有的使用者都可以訪問。
ServerAdmin cuijie@beijingso.com
DocumentRoot /usr/local/www/
ServerName svn.bjso.com
<Location />
DAV svn
SVNParentPath /usr/local/svnroot/repository/
AuthzSVNAccessFile /usr/local/svnroot/repository/authz.conf
AuthType Basic
AuthName “Subversion”
AuthUserFile /usr/local/svnroot/repository/authfile
Require valid-user
</Location>
</VirtualHost>
//SVNParentPath /usr/local/svnroot/repository/ 目錄不能與DocumentRoot目錄一樣,否則會出現使用瀏覽器訪問svn倉庫正常,但是當用客戶端svn命令check out的時候提示錯誤: 301 Moved Permanently subversion
//其中authfile是通過
htpasswd -b -c /usr/local/svnroot/repository/authfile cuijie cuijie@bjso
//來建立的 -c Create a new file. -b Use the password from the command line rather than prompting for it.
//”Require valid-user”告訴apache在authfile中所有的使用者都可以訪問。
//下面這一部分是用來配置一個虛擬主機,用subversion的鉤子來建立同步測試伺服器。
<VirtualHost 192.168.0.150>
ServerAdmin cuijie@beijingso.com
DocumentRoot /home/cuijie/
ServerName cuijie.bjso.com
ErrorLog logs/192.168.0.150-error_log
CustomLog logs/192.168.0.150-access_log common
</VirtualHost>
<VirtualHost 192.168.0.150>
ServerAdmin cuijie@beijingso.com
DocumentRoot /home/cuijie/
ServerName cuijie.bjso.com
ErrorLog logs/192.168.0.150-error_log
CustomLog logs/192.168.0.150-access_log common
</VirtualHost>
五、許可權管理
a。增加使用者
//由於htpasswd是apache的內建命令,所以先進入apache的命令目錄
#/usr/local/apache2/bin/htpasswd /usr/local/svnroot/repository/authfile username
//第一次設定使用者時使用-c表示新建一個使用者檔案。回車後輸入使用者密碼,完成對使用者的增加,再增加別的使用者時,不用加c
b.許可權分配
配置使用者訪問許可權,用於定義使用者組和版本庫目錄許可權
# vi /usr/local/svnroot/repository/authz.conf
注意:
* 許可權配置檔案中出現的使用者名稱必須已在使用者配置檔案中定義。也就是在前面用htpasswd新增的使用者
* 對許可權配置檔案的修改立即生效,不必重啟svn。
使用者組格式:
[groups]
admin = 使用者1,使用者2
其中,1個使用者組可以包含1個或多個使用者,使用者間以逗號分隔。
版本庫目錄格式:
[版本庫:/專案目錄]
@使用者組名 = 許可權
使用者名稱 = 許可權
a。增加使用者
//由於htpasswd是apache的內建命令,所以先進入apache的命令目錄
#/usr/local/apache2/bin/htpasswd /usr/local/svnroot/repository/authfile username
//第一次設定使用者時使用-c表示新建一個使用者檔案。回車後輸入使用者密碼,完成對使用者的增加,再增加別的使用者時,不用加c
b.許可權分配
配置使用者訪問許可權,用於定義使用者組和版本庫目錄許可權
# vi /usr/local/svnroot/repository/authz.conf
注意:
* 許可權配置檔案中出現的使用者名稱必須已在使用者配置檔案中定義。也就是在前面用htpasswd新增的使用者
* 對許可權配置檔案的修改立即生效,不必重啟svn。
使用者組格式:
[groups]
admin = 使用者1,使用者2
其中,1個使用者組可以包含1個或多個使用者,使用者間以逗號分隔。
版本庫目錄格式:
[版本庫:/專案目錄]
@使用者組名 = 許可權
使用者名稱 = 許可權
其中,方框號內部分可以有多種寫法:
/,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定為/usr/local/svnroot/repository。這樣,/就是表示對全部版本庫設定許可權。
bjso:/,表示對版本庫bjso設定許可權
[groups]
admin = wanglei liguang duanhaibo liangzhongzheng lijing suiliang gaoyueqiu zhangchuanming zhouanning cuijie
[/]
@admin = rw
[bjso:/]
@admin = rw
/,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定為/usr/local/svnroot/repository。這樣,/就是表示對全部版本庫設定許可權。
bjso:/,表示對版本庫bjso設定許可權
[groups]
admin = wanglei liguang duanhaibo liangzhongzheng lijing suiliang gaoyueqiu zhangchuanming zhouanning cuijie
[/]
@admin = rw
[bjso:/]
@admin = rw
c.刪除Subversion預設安裝庫檔案許可權檔案authz,passwd
# rm /usr/local/svnroot/repository/bjso/conf/authz
# rm /usr/local/svnroot/repository/bjso/conf/passwd
# rm /usr/local/svnroot/repository/bjso/conf/authz
# rm /usr/local/svnroot/repository/bjso/conf/passwd
七、建立一個subversion的同步測試伺服器
原理: 基於subversion的鉤子,即hook。在subversion執行一個操作時,那會相應的首先去呼叫相關的鉤子程式(如果存在的話)。那麼實現一個同步的測試伺服器,我們只需要在一個使用者執行完畢一個commit操作之後,讓鉤子程式去自動更新測試伺服器的檔案即可。通過這個思路,我們需要作的就是建立一個post-commit的鉤子。
原理: 基於subversion的鉤子,即hook。在subversion執行一個操作時,那會相應的首先去呼叫相關的鉤子程式(如果存在的話)。那麼實現一個同步的測試伺服器,我們只需要在一個使用者執行完畢一個commit操作之後,讓鉤子程式去自動更新測試伺服器的檔案即可。通過這個思路,我們需要作的就是建立一個post-commit的鉤子。
a。使用checkout建立一個工作副本
#mkdir /usr/local/www
# chown -R www:www /usr/local/www/
//apache執行使用者對此目錄有完全的可讀寫操作許可權
# svn checkout file:///usr/local/svnroot/repository/bjso/ /usr/local/www/
//取出subversion上的檔案,可能需要密碼
//如果成功則會提示類似下面輸出
A /usr/local/www/新建資料夾
A /usr/local/www/新建 文字文件.txt
A /usr/local/www/新建資料夾 (2)
A /usr/local/www/index.php
取出修訂版 6
請保證執行checkout語句的使用者是daemon,否則在以後鉤子呼叫update時會出現無法建立或修改檔案的錯誤
#mkdir /usr/local/www
# chown -R www:www /usr/local/www/
//apache執行使用者對此目錄有完全的可讀寫操作許可權
# svn checkout file:///usr/local/svnroot/repository/bjso/ /usr/local/www/
//取出subversion上的檔案,可能需要密碼
//如果成功則會提示類似下面輸出
A /usr/local/www/新建資料夾
A /usr/local/www/新建 文字文件.txt
A /usr/local/www/新建資料夾 (2)
A /usr/local/www/index.php
取出修訂版 6
請保證執行checkout語句的使用者是daemon,否則在以後鉤子呼叫update時會出現無法建立或修改檔案的錯誤
b。設定apache,把你需要的域名指向這個資料夾。
開啟http://192.168.1.251 用來進行同步測試。
c。建立鉤子。
# cd /usr/local/svnroot/repository/bjso/hooks/
# vi post-commit (以www使用者身份)
#!/bin/sh
svn update /usr/local/www/ >>/usr/local/svnroot/repository/bjso/hooks/svn_hook_log.txt
完成
開啟http://192.168.1.251 用來進行同步測試。
c。建立鉤子。
# cd /usr/local/svnroot/repository/bjso/hooks/
# vi post-commit (以www使用者身份)
#!/bin/sh
svn update /usr/local/www/ >>/usr/local/svnroot/repository/bjso/hooks/svn_hook_log.txt
完成