创建时间: 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库
下载地址: wgethttp://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
spacer.gif@这是就不放图,大家都知道,需要通过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的软件,在环境检查时会报错的。
9.2 在数据库创建相应用户,界面会往自动调用,往里面创建表格.
细看一下那个创建数据表的文件,所创建的表格绝大部分是INNODB存储引擎创建的表格.
create database bugfree;
grant all privileges on bugfree.* to bugfree@localhost identified by "xxxx";
9.3 填写数据库连接信息,可以让应用与数据库交互
9.4 经过几分钟等待,就可以完成安装.
9.5 访问页面,这是最新版本的bugfree 3.0.4,不知道现在还有软件下载不
http://192.168.0.107/bugfree
目前用户: admin
密码: xxx
请更改相应的密码
9.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禅道。