bugzilla與subversion通過scmbug整合

我把我的word文檔導入進來的,可能圖片導入不成功,我還會再整合一下viewvc
 
如有問題可以郵件聯繫我[email protected]我目前也是能搭建,至於使用scmbug還不太熟悉。

1、Camek安裝(編譯安裝mysql需要用到)
 
【文檔可參考http://www.linuxidc.com/Linux/2012-03/56685p2.htm
#tar zxf cmake-2.8.5.tar.gz 
#cd cmake-2.8.5
#./bootstrap 
#gmake 
#gmake install (默認安裝在/usr/local/bin/cmake)
2、mysql的安裝mysql-5.5.19.tar.gz
#groupadd mysql
#useradd -g mysql mysql
#tar zxf mysql-5.5.19.tar.gz
#cd mysql-5.5.19
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data -DMYSQL_USER=mysql 
#make
#make install
#chmod +w /usr/local/mysql
#chown -R mysql:mysql /usr/local/mysql
#mkdir -pv /var/mysql/{data,log}
#chown -R mysql:mysql /var/mysql
#cp support-files/my-large.cnf /etc/my.cnf
(注:QStarting MySQL..The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)
解決辦法:
確實一般都是my.cnf配置文件的問題
/etc/my.cnf來自以下文件:
如果你的內存≤64M,則複製/usr/local/share/mysql/my-small.cnf/etc/my.cnf
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
如果內存是128M,則複製/usr/local/share/mysql/my-medium.cnf/etc/my.cnf
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with
# other programs (such as a web server)

如果內存是512M,則複製/usr/local/share/mysql/my-large.cnf/etc/my.cnf
# This is for a large system with memory = 512M where the system runs mainly
# MySQL.
如果內存是1-2G,則複製/usr/local/share/mysql/my-huge.cnf/etc/my.cnf
# This is for a large system with memory of 1G-2G where the system runs mainly
# MySQL. 
#cp support-files/mysql.server /etc/init.d/mysql 
數據庫初始化
#/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql
service mysql start

再修改root密碼:
/usr/local/mysql/bin/mysqladmin -u root password 'abc123.'
測試是否能進入:
/usr/local/mysql/bin/mysql -u root -p 
啓動mysql
/etc/init.d/mysqld start
修改PATH
#vi ~/.bash_profile
#vi /etc/my.cnf
[mysqld]區域中,添加如下行:
default-character-set=utf8
# mysqladmin -u root password  '000000'
# mysql -u root p
Enter password:
mysql> create database bugs;
mysql> use bugs;
mysql>GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE, LOCK TABLES,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY '000000';
mysql> FLUSH PRIVILEGES;
mysql> quit
3、Apache的安裝(要安裝aprapr-util
Apr安裝:
# tar zxf apr-1.3.8.tar.gz
#./configure
#make&&makeinstall
Apr-util安裝:
# tar zxf apr-util-1.3.8.tar.gz
#cd apr-util-1.3.8
#./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
#make&&make install
Apache的安裝:
Tar jxf httpd-2.2.17.tar.bz2
cd httpd-2.2.17
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite=share --enable-proxy=share  --enable-dav=share --enable-dav-fs  --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util
Make
Make install 
4、Bugzilla的安裝(在最後整合bugzillasvn時報錯說版本不支持,後來用3.0.4bugzilla可以整合,3.0.44.0.2高版本就是perl安裝模塊有一點點差別,3.0.4的模塊必須要一個一個裝,沒有那個命令一次全部安裝,只要模塊裝上就行了)
如果在模塊安裝過程中有模塊死活裝不上參考如下文檔:http://linux.chinaunix.net/techdoc/net/2008/12/17/1053667.shtml
cp bugzilla-4.0.2.tar.gz /usr/local/apache/htdosc
Tar zxf bugzilla-4.0.2.tar.gz
Mv bugzilla-4.0.2.tar.gz bugzilla
Cd bugzilla 
./checksetup.pl 檢查需要安裝的perl模塊
/usr/bin/perl install-module.pl --all bugzilla缺少的模塊全部安裝,也可根據需要單獨安裝各個模塊,)
如果mysql是源碼編譯安裝應該不會有問題,如果是二進制包安裝會出問題DBD-mysql安裝不成功。解決這個問題,可以單獨安裝perl的模塊,當然mysql必須編譯安裝,或者保證rpm安裝的包很齊全。
**UNRECOVERABLE ERROR**
Could not find gdlib-config in the search path. Please install libgd 2.0.28 or higher.
If you want to try to compile anyway, please rerun this script with the option --ignore_missing_gd.
  安裝gd-develrpm包即可解決:
#yum install gd-devel
必須要安裝的模塊安裝完後修改下面的文件
vi ../bugzilla/localconfig 
$db_host = "localhost";  
$db_name = "bugs";  
$db_user = "bugs";  
$db_pass = "000000";
./checksetup.pl   (密碼123456)
修改apache配置:
   <Directory "/usr/local/apache/htdocs">
        AddHandler cgi-script .cgi  
        Options Indexs ExecCGI FollowSymLinks
        DirectoryIndex index.cgi
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>
<IfModule dir_module>
    DirectoryIndex index.html index.cgi
</IfModule>
訪問192.168.64.140:/bugzilla
5、svn的安裝(需要安裝zlibsqlite
Zlib安裝:
#./configure  --prefix=/usr/local/zlib --shared
#make && make install
Sqlite安裝:
# tar zxf sqlite-3.6.23.tar.gz
#cd  sqlite-3.6.23
#./configure --prefix=/usr/local/sqlite
#make&&make install
Svn安裝:
#tar jxf subversion-1.6.15.tar.bz2 
# cd subversion-1.6.15
#./configure --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl --with-zlib=/usr/local/zlib --enable-maintainer-mode --with-sqlite=/usr/local/sqlite
Make
Make install 
配置PATH路徑
6、svn的配置:
//創建庫文件所在的目錄(svnroot用戶進行下面的操作)
# mkdir /home/svnroot/repository
//進入subversionbin目錄
# cd /usr/local/subversion/bin
//創建倉庫"test"
# ./svnadmin create /home/svnroot/repository/repos
# cd /home/svnroot/repository/repos
# ll
//test裏多了許多文件,說明Subversion安裝成功了
//不讓其他人有該目錄的權限
# chmod 700 /home/svnroot/repository
修改Apache配置文件
# cd /usr/local/apadche/bin
# vi /usr/local/apache/conf/httpd.conf
 //(下面兩行存在證明模塊安裝成功)
 LoadModule dav_svn_module modules/mod_dav_svn.so
 LoadModule authz_svn_module modules/mod_authz_svn.so
 //下面需要添加
<Location /repository>
DAV svn
#SVNListParentPath on
SVNParentPath /home/svnroot/repository
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/svnroot/repository/svn-auth-file
AuthzSVNAccessFile /home/svnroot/repository/auth.file
Require valid-user
</Location> 
//其中svn-auth-file是通過"htpasswd [c] /home/svnroot/repository/svn-auth-file username password"
來創建的
# /usr/local/apache/bin/htpasswd -c /home/svnroot/repository/svn-auth-file [email protected] //密碼123456
 //"Require valid-user"告訴apacheauthfile中所有的用戶都可以訪問。如果沒有它,
 //則只能第一個用戶可以訪問新建庫
Vi /home/svnroot/repository/auth.file
chown svnroot /home/svnroot/repository/auth.file 
chown svnroot /home/svnroot/repository/svn-auth-file
如下訪問,並顯示證明成功:
7、mod_auth_mysql-3.0.0.tar.gz的安裝,目的讓apache通過mysql來認證用戶,apache需要第三方模塊mod_auth_mysql-3.0.0.tar.gz
mod_auth_mysql,下載地址:http://sourceforge.net/projects/modauthmysql
Tar zxf mod_auth_mysql-3.0.0.tar.gz
Cd mod_auth_mysql-3.0.0
下載apache22.diff補丁文件打補丁
#Pacth -p0< apache22.diff
#apxs  -c -L/usr/local/mysql/lib/mysql  -I/usr/local/mysql/include/ -lmsqlclient -lm lz mod_auth_mysql.c 
如果報錯/usr/bin/ld: cannot find -lmysqlclient 
# ln -s /usr/local/mysql/lib/libmysqlclient.so.18.0.0   /usr/lib/libmsqlclient.so
apxs -i mod_auth_mysql.la
Apache安裝mysql認證模塊,完成後的提示如下:
8、再次配置apache
Ls /usr/local/apache/modules/
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
LoadModule mysql_auth_module  modules/mod_auth_mysql.so
AuthMySQLEnable  on
AuthMySQLAuthoritative On
AuthMySQLDB bugs
AuthMySQLHost localhost
AuthMySQLUser bugs
AuthMySQLPassword 000000
AuthMySQLUserTable profiles
AuthMySQLNameField login_name
AuthMySQLPasswordField cryptpassword
AuthMySQLPwEncryption crypt
require valid-user
9、scmbug的安裝
下載地址,http://www.mkgnu.net/scmbug_download
我選的rpm安裝
#rpm -ivh *.rpm
#配置scmbug
#vi /etc/scmbug/daemon.conf
啓動後查看進程
故障排除:
查看日誌
#vi /var/log/scmbug/activity.log 
這個最好別用高版本,4.0.2不支持可能需要打補丁,但是沒找到相關資料,3.5.2版本的bugzilla也不支持,最後用的老版本的3.0.4的,scmbug才啓動起來。
** Scmbug error 77: The userlist mappings are enabled, but no mappings are configured.
這個錯誤需要把,enable=>1該成下圖,配置文件默認的是enable=>1
開始整合:
perl /usr/bin/scmbug_install_glue.pl --scm=Subversion  /
     --repository=file:///home/svn/myproject /
     --product=TestProduct --bug=770 --bin=/bin,/usr/bin,/usr/sbin --daemon=127.0.0.1
##################選項的意思###################################
其中的--scm選項意思爲使用什麼軟件做爲版本配置,我這裏是Subversion

--product選項的意思爲bugzillabugs所屬的產品名稱,我這裏是TestProduct

--repository選項的意思爲subversion創建的版本倉庫路徑,我這裏是/home/svn/myproject,前面的file://一定別忘了。

--bug選項的意思爲glue運行時對bug的讀寫權限,mod值爲770

--binary-paths選項的意思爲subversion的相關tools的目錄,把可能的路徑加進來,用,分隔兩個目錄。

--daemon選項的意思爲glue運行的服務器地址,這裏一般寫127.0.0.1,一般都是本地使用。
如果沒有提示錯誤基本成功了
這樣subversionbugzilla就通過scmbugglue daemon連起來了,其對應的配置文件爲/home/svn/myproject/hooks/etc/scmbug/glue.conf

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