BUG 管理系统运维记录(bugfree)
创建时间:     2013-06-18
最新版本:    1.3
制作者:       Teemo君
release 1.1  2013-06-08     文档初生成
release 1.2  2014-03-07      二次修改,添加维护记录
release 1.3  2014-03-11      BUG管理系统,再次修改放在blog

目的:  记录工作轨迹,积累工作经验.  通过知识积累形成自己的运维体系。
         工作过两间公司,都与开发打交道,需要为开发提供帮助,BUG管理系统是软件开发必不可少的应用,
         对软件生命周期直到很重要作用,运维必须掌握的应用之一。
         文档已经形成一年多,不会对目前公司造成危害,可以通过外网发布。


需求:

        cc company 属于创新型通信行业公司,旗下开发加测试有n+2人,需要拥有自己的bug管理跟踪系统,以解决软件开发遇到的问题.  当前使用eazybug来维护,可是些软件需要收费和人员限制,出于成本和扩展性出发,需要选择开源软件在公司内服搭设服务器,以满足公司开发需求。
        经过之前比对zentao,qc,JIRA等项目软件,其中QC属于重量级,安装麻烦且还要收费,排除;JIRA软件也不错,反正也由于某种原因,排除;zentao 禅道管理软件轻量级,小清新,可是测试说有点复杂。最后通过比对软件易用性和简单性,出于单纯只是解决bug管理的功能,最终选择使用bugfree软件.

软件介绍:
       BugFree是借鉴微软的研发流程和Bug管理理念,使用PHP+MySQL独立写出的一个Bug管理系统。简单实用、免费并且开放源代码(遵循GNU GPL).命名BugFree 有两层意思:一是希望软件中的缺陷越来越少直到没有,Free嘛;二是表 示它是免费且开放源代码的,大家可以自由使用传播。

补充说明:
       由于版权纠纷,bugfree已经处于停止开发和技术支持,现在其官网和相关技术文档都少之又少了.之前的开始人员已经转入到zentao的开发系统中了,而且zentao项目管理系统更加优秀,功能更加强大,在yc公司有一年使用体验,推荐.
     也是因为资料少之又少,写这个文档也是了留下技术资料,以备将来使用.



################################分界线##########################################
1. 软件部署平台
RHEL 5.5   64位    2.6.18内核稳定版本

2. 所需相应软件下载
bugfree3.0.4.zip
php-json-ext-1.2.1.tar.bz2

3. 安装说明
    bugfree 是由php开发,部署在LAMP平台即可,并且bugfree需要php-json扩展库的支持,以达到数据交互和展现,而这个软件包是系统默认安装的,而且yum源也没有json,需要我们手动编译.
出于业务的简单性,使用yum方式安装lamp软件系列,方便管理维护.

4. 安装LAMP涉及软件
# rpm -qa | grep php
php-cli-5.1.6-27.el5
php-pdo-5.1.6-27.el5                 这个软件包特别注意下
php-pecl-json-1.2.1-4.el5
php-common-5.1.6-27.el5
php-devel-5.1.6-27.el5
php-mysql-5.1.6-27.el5
php-gd-5.1.6-27.el5
php-pear-1.4.9-8.el5
php-5.1.6-27.el5

# rpm -qa | grep mysql
mysql-server-5.0.77-4.el5_4.2
php-mysql-5.1.6-27.el5
mysql-devel-5.0.77-4.el5_4.2
mysql-devel-5.0.77-4.el5_4.2
mysql-5.0.77-4.el5_4.2
mysql-5.0.77-4.el5_4.2
# rpm -qa | grep httpd
httpd-2.2.3-43.el5

5. 根据自己需求,找到对应版本的php-json库
下载地址: wget http://pkgs.fedoraproject.org/repo/pkgs/php-json/php-json-ext-1.2.1.tar.bz2/e06e701412a055f3372775216ec3d604/php-json-ext-1.2.1.tar.bz2

6. 之前的LAMP平台准备好,重启mysqld and httpd服务器,
接着执行相关操作,安装php-json扩展
#解压文件,并进行到目录
# tar -xjf php-json-ext-1.2.1.tar.bz2

#进入当前路径,并使用当前系统phpize刷新configure文件
# cd php-json-ext-1.2.1
# phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20050922
Zend Extension Api No:   220051025

#可以看到以configure等文件已经刷新到当前的时间了.
# ll
total 1468
-rw-r--r-- 1 10008 10008  66540 Jun 18 12:13 acinclude.m4
-rw-rw-r-- 1 10008 10008 298049 Jun 18 12:13 aclocal.m4
drwxr-xr-x 2 root  root    4096 Jun 18 12:13 autom4te.cache
drwxrwxr-x 2 10008 10008   4096 Jun 18 12:13 build
-rwxr-xr-x 1 10008 10008  42037 Jun 18 12:13 config.guess
-rw-rw-r-- 1 10008 10008   1610 Mar 31  2006 config.h.in
-rw-rw-r-- 1 10008 10008   2139 Jan 31  2006 config.m4
-rwxr-xr-x 1 10008 10008  30253 Jun 18 12:13 config.sub
-rwxrwxr-x 1 10008 10008 658032 Jun 18 12:13 configure

#进行默认当前路径编译,可以看到会生成一个我们需要的模块
# ./configure
# make
Libraries have been installed in:
  /root/php-json-ext-1.2.1/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
  - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
    during execution
  - add LIBDIR to the `LD_RUN_PATH' environment variable
    during linking
  - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
  - have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

#由此我们可以知道,其实YUM安装的LAMP创建的模块放置在/usr/lib64/php/modules/,上面的configure记录也不太可靠.
# make install
Installing shared extensions:     /usr/lib64/php/modules/
# ll /usr/lib64/php/modules/json.so
-rwxr-xr-x 1 root root 92750 Jun 18 12:14 /usr/lib64/php/modules/json.so

7. php-json 验证
做完进行数据确认,是运维良好的习惯。重启httpd服务器以加载PHP配置,通过简单的phpinfo函数,
以确认已经支持json
@这是就不放图,大家都知道,需要通过php页面,了解此处php已经支持相关模块

################################分界线##########################################
8. 实际安装bugfree软件
#解压目录,并移到httpd DocumentRoot下,再通过浏览器访问以下路径:
# unzip bugfree3.0.4.zip
# mv bugfree3.0.4 /var/www/html/bugfree
# chown -R apache.apache /var/www/html/bugfree

9. 访问下面连接,即可进行页面安装工作,根据自己情况调整
http://192.168.0.107/bugfree/install

bugfree安装十分简单,只需要三个步骤即可.
9.1 环境检查,如果有不符合的内容,按要求添加即可.
上面如果没有安装要求准备LAMP的软件,在环境检查时会报错的。

BUG 管理系统运维记录(bugfree)_第1张图片


9.2 在数据库创建相应用户,界面会往自动调用,往里面创建表格.
细看一下那个创建数据表的文件,所创建的表格绝大部分是INNODB存储引擎创建的表格.
create database bugfree;

grant all privileges on bugfree.* to bugfree@localhost identified by "xxxx";


9.3  填写数据库连接信息,可以让应用与数据库交互

BUG 管理系统运维记录(bugfree)_第2张图片


9.4  经过几分钟等待,就可以完成安装.

BUG 管理系统运维记录(bugfree)_第3张图片


9.4 访问页面,这是最新版本的bugfree 3.0.4,不知道现在还有软件下载不
http://192.168.0.107/bugfree
目前用户: admin
密码:       xxx
请更改相应的密码

BUG 管理系统运维记录(bugfree)_第4张图片


9.5 打开页面效果图.

BUG 管理系统运维记录(bugfree)_第5张图片


10.  邮件通知功能添加

保证sendmail服务器正常启动,保证域名能被DNS正常解释
修改相对应的配置文件
# sed -n '105,117p' /var/www/html/bugfree/protected/config/main.php
  array (
     'on' => '1',
     'from_address' => 'xxxxxx',
     'from_name' => 'BugFree',
     'send_method' => 'SMTP',
     'send_params' =>
     array (
       'host' => 'xxxx',
       'smtp_auth' => true,
       'username' => 'xxxx',
       'password' => 'xxxx',
     ),
   ),

11.  bugfree 维护记录
11.1  注意应用所在目录的读写权限,因为apache会对目录/var/www/html/bugfree内容进行读写操作,权限不对,会造成页面访问不畅。此处当时通过查看/var/log/httpd下面的错误和访问日志分析解决

11.2  bugfree发送不了邮件,对应应用日志位置,可以检查下面文件内容,发现和解决问题
重启检查下上面那个main.php文件内容
验证邮件用户正常发信
最后发现是由于/etc/resolv.conf 没有内容,加入DNS记录,可是没有把httpd重启,应用无法连接DNS进行MX解析
# tail -2 /var/www/html/bugfree/protected/runtime/application.log
2014/03/11 11:18:35 [error] [bugfree.ProductService] mail send failed:"Language string failed to load: data_not_accepted"
2014/03/11 11:20:32 [error] [bugfree.ProductService] mail send failed:"Language string failed to load: data_not_accepted"

12. 目前bugfree几乎在网络上绝迹,而且相关开发团队出现矛盾,此文档只是相关维护记录,感谢相关开发者贡献,才能让用户用上这个软件,致敬。
    这个软件挺稳定的,用了一年多9个月,满足公司需求,当然后期需求复杂化,我也挺赞同迁移到升级版本的 zentao禅道。