SVN配置步聚

LINUX+APACHE+MYSQL+PHP+SVN+SVNMANAGER編譯安裝配置 


Linux:                          CentOS5.4

Apache:                       httpd-2.2.14.tar.bz2

Mysql:                          mysql-5.0.22.tar.gz

Php:                              php-5.2.12.tar.gz

Svn:                              subversion-1.6.6.tar.bz2

Svn deps:                    subversion-deps-1.6.6.tar.bz2

Svnmanager:              svnmanager-1.08.tar.gz

1.安裝apache

tar jxvf httpd-2.2.14.tar.bz2                              //解包

cd httpd-2.2.14                                                   //進來準備編譯安裝apache

mkdir /usr/local/apache2                                  //這個目錄用來安裝apache

./configure --prefix=/usr/local/apache2 --enable-so --enable-dav --enable-dav-fs --enable-maintainer-mode                                               //so是開啓動態庫支持,svn要求apache必須啓用so,dav和dav-fs是將來svn認證用的,maintainer是開啓調試模式不加亦可。

make;make install                                             //編譯並安裝

id apache                                                         //確認apache用戶不存在

useradd apache                                                //添加apache用戶,將來apache就以這個用戶運行

chown -R apache.apache /usr/local/apache2            //更改apache安裝目錄屬主、組,這個不是必須的

vi /usr/local/apache2/conf/httpd.conf                        //修改apache配置文件,讓它以用戶apache身份運行

修改User和Group均爲apache

esc                                                                     //按esc退出編輯模式

shift+zz                                                            //按住shift鍵然後按兩次z鍵,即保存退出。

2.安裝mysql

tar zxvf mysql-5.0.22.tar.gz                             //解包

cd mysql-5.0.22                                                 //進去準備編譯安裝

mkdir /usr/local/mysql                                      //先創建個安裝目錄

./configure --prefix=/usr/local/mysql              //指定安裝目錄爲剛創建的/usr/local/mysql

make;make install                                             //編譯並安裝

id mysql                                                              //確認mysql用戶不存在

useradd mysql                                                   //要是mysql用戶已經存在了,可就不要在useradd了哦。

/usr/local/mysql/bin/mysql_install_db --user=mysql                 //以用戶mysql身份創建默認庫

/usr/local/mysql/bin/mysqld_safe &                                            //讓mysql啓動,並在後臺運行

/usr/local/mysql/bin/mysql -u root password gaso123             //給root用戶加個密碼,擋一擋菜鳥***:)

3.安裝SVN

tar jxvf subversion-1.6.6.tar.bz2                     //解包後得到subversion-1.6.6目錄

tar jxvf subversion-deps-1.6.6.tar.bz2           //這個是SVN的依賴包,解壓後自動放在subversion-1.6.6目錄裏,本來這個依賴包裏主要是要用到apr和apr-util,但是我們安裝apache的時候已經默認安裝上這兩個模塊了,所以剩下個neon模塊在這包裏(我不太確定這個是否是必須的)是我們需要用的。

cd subversion-1.6.6

mkdir /usr/local/svn                                          //svn將就裝這裏面

./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2/bin/apr-1-config --with-apr-util=/usr/local/apache2/bin/apu-1-config

//prefix還是指定安裝目錄,apxs指定apache配置,這個apxs應該是裏面涵蓋了apache的安裝目錄配置文件目錄模塊目錄執行目錄等等的位置參數,指定了它的位置apache就整個顯形了,svn就能知道想知道的關於apache的一切(這個參數很好很強大哦),withapr和aprutil這兩個我推測即使不指定svn也能找到它,因爲apxs很好很強大嘛,但沒試驗過,有興趣的同學可以試下。

make;make install

4.檢查svn安裝配置

mkdir -p /app/svn                                                                //這個目錄將作爲svn的版本庫的總(父)目錄使用

vi /usr/local/apache2/conf/httpd.conf                               //apache的配置需要做些檢查和更改

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so            //有這兩個模塊則svn安裝是正確的,若是帶#註釋的就把#刪掉,同時要保證/usr/local/apache2/modules目錄下有mod_dav_svn.so和mod_authz_svn.so這兩個文件。

手動添加以下內容:

<Location /svn>                                                                    //定義網頁目錄爲/svn
DAV svn                                                                                 //開啓svn(融合apache的svn哦)
SVNListParentPath On                                                         //開啓svn版本庫父目錄功能
SVNParentPath /app/svn                                                     //指定父目錄位置,以後所有版本庫都將存放在該目錄下
AuthType Basic                                                                     //指定授權模式
AuthName "SVN REPOS"                                                     //登陸窗口標題顯示SVN REPOS
AuthUserFile /usr/local/svn/svn_passwdfile                    //指定訪問版本庫的賬戶和密碼存放文件,該文件需要用apache的htpasswd命令創建
AuthzSVNAccessFile /usr/local/svn/svn_accessfile        //指定訪問版本庫的用戶和組的權限控制文件
Require valid-user                                                             //要求有效的用戶才能訪問
</Location>                                                                          //字段結束標誌

esc                                                                                          //按esc退出編輯模式

shift+zz                                                                                   //保存退出

5.測試svn與apache是否融合成功

/usr/local/apache2/bin/htpasswd -c /usr/local/svn/svn_passwdfile gaso          //創建訪問版本庫的賬戶和存放賬戶的文件,回車後會提示輸入密碼兩邊(我們用gaso123做密碼),因爲是第一次創建,svn_passwdfile文件原本不存在所以需要加-c參數,以後創建svn用戶就不需要-c參數了,直接引用svn_passwdfile文件即可

vi /usr/local/svn/svn_accessfile

[/]
gaso=rw                                     //這兩行授權用戶gaso有訪問所有版本庫的權限

[gasorepo:/]
gaso=rw                                      //這兩行授權用戶gaso有訪問gasorepo版本庫的權限

保存退出

/usr/local/svn/bin/svnadmin create /app/svn/gasorepo      //創建gasorepo版本庫

6.啓動apache,測試svn

chown -R apache.apache /app/svn                                //我們這個部署裏svn是通過apache對版本庫進行訪問的,它對版本庫進行訪問其實就是通過apache的用戶apache來進行的,所以版本庫父目錄就必須屬於用戶apache才能規避權限問題,最後的svnmanager也有同樣的問題,所以這個屬主修改很重要!

/usr/local/apache2/bin/httpd -k start                                                         //啓動apache

在瀏覽器裏輸入http://localhost/svn/gasorepo                                           //輸入用戶名gaso和密碼gaso123就可以看到版本庫了,不過裏面沒東西:)

也可以直接訪問http://localhost/svn                                                            //這個直接訪問版本庫總目錄

7.安裝php

tar zxvf php-5.2.12.tar.gz

cd php-5.2.12

mkdir /usr/local/php

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql                                               //php用apxs2指定apache2.0,用apxs指定apache1.x,所以這裏用apxs2,因爲svnmanager要用到mysql所以這裏還要withmysql

make;make install

cp php.ini-recommended /usr/local/php/lib/php/php.ini         //拷貝php的配置文件到它該去的地兒

編輯這個php.ini,添加一行include_path = /usr/local/php/lib/php

8.測試php安裝是否成功:

vi /usr/local/apache2/conf/httpd.conf                              //修改apache配置文件

檢查是否有以下內容,沒有則添加:

LoadModule php5_module        modules/libphp5.so     //沒有這個模塊就手工添加,同時要檢查apache的安裝目錄裏modules目錄下,要保證有libphp5.so這個文件

DirectoryIndex index.php index.html                              //主要是加上index.php

vi /usr/local/apache2/htdocs/index.php                        //編輯一個php測試文件

加入以下內容:

<?php
        phpinfo();
?>
保存退出

重新啓動apache

/usr/local/apache2/bin/httpd -k restart

訪問http://localhost

能看到apache的php信息頁面則說明php安裝成功

9.安裝VersionControl_SVN

/usr/local/php/bin/pear install VersionControl_SVN-0.3.3                          //pear是安裝php的時候默認安裝的,VersionControl_SVN這個軟件是svnmanager需要用到的,必須安裝

10.安裝svnmanager

tar zxvf svnmanager-1.08.tar.gz

cp -r svnmanager-1.08 /usr/local/apache2/htdocs/svnman                      //把解壓出來的文件複製到apache的站點根目錄htdocs裏

cd /usr/local/apache2/htdocs/svnman/

cp config.php.linux config.php                                                                    //把配置文件重命名一下

編輯config.php,修改以下幾項內容:

//Shell command's
$htpassword_cmd                         =       "/usr/local/apache2/bin/htpasswd";          //告訴svnmanager apache的密碼生成執行文件的位置
$svn_cmd                                        =       "/usr/local/svn/bin/svn";                           //告訴svnmanager svn命令的執行目錄
$svnadmin_cmd                           =       "/usr/local/svn/bin/svnadmin";                   //告訴svnmanager svnadmin命令的執行目錄

//Subversion locations
$svn_config_dir                         =       "/app/svn";                                                      //告訴svnmanager svn的配置目錄,通常指到版本庫父目錄或者版本庫目錄即可
$svn_repos_loc                          =       "/app/svn";                                                     //告訴svnmanager svn的版本庫父目錄在哪裏,這個跟上面那個configdir我也搞不清楚到底有什麼區別,我一般就是指到版本庫父目錄就沒問題,上面的configdir要是註釋掉則會報錯
$svn_passwd_file                        =       "/usr/local/svn/svn_passwdfile";               //告訴svnmanager svn的賬戶密碼文件的位置
$svn_access_file                        =       "/usr/local/svn/svn_accessfile";                 //告訴svnmanager svn的權限控制文件的位置

$dsn                                    =       "mysql://root:gaso123@localhost/svnman";        //指定mysql連接的信息,這行要注意原文可能是mysqli://多數情況下都需要改成mysql://,有時候不改可能會導致連不上mysql,最後的svnman爲svnmanager將要使用的數據庫,會在後面創建。

$admin_name                                             =       "admin";                                         //本行和下面一行指定svnmanager首次登陸的初始賬號和密碼,這兩行就不需要改了
$admin_temp_password                    =       "admin";
保存退出

11.創建svnmanager使用的數據庫

/usr/local/mysql/bin/mysql -u root -p

輸入密碼gaso123

mysql>create database svnman;                                                                               //剛纔在svnmanager的配置文件config.php裏面指定的mysql連接信息的那個庫就是這個。

mysql>exit

12.測試svnmanager安裝是否成功

訪問http://localhost/svnman

默認login信息是admin/admin,註冊一個新的賬戶後admin賬戶就會被屏蔽掉了,這樣用新用戶登錄就會出現管理svn的諸多選項,以後就用這個新賬戶管理svn就可以了,創建版本庫,設置賬戶,設置權限,導入導出,功能還是可以的。

如果不是本機訪問,會有權限問題,用svnmanager所在主機的ip訪問:

http://svnmanager-host-ip/svnman

註冊新賬戶時,會有提示說明修改什麼文件才能遠程登錄svnmanager進行管理。說明的很清楚,不再贅述。
 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章