BUG管理系統運維記錄(bugfree)

青衫無名發表於2017-07-03
建立時間:     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 開啟頁面效果圖.
  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禪道。


最新內容請見作者的GitHub頁:http://qaseven.github.io/


相關文章