LAMP环境下部署项目管理软件--禅道

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: LAMP环境下部署项目管理软件--禅道

禅道与Jira的对比

  禅道最大的特色是创造性的将产品、项目、测试这三者的概念明确分开,互相配合,又互相制约。通过需求、任务、bug来进行交相互动,最终通过项目拿到合格的产品。
  Jira设计以项目为主线,产品、测试结合管理,通过issues控制管理。因此它的核心诉求还是围绕issue展开的,以issue驱动管理、分工、以及团队协作,进而实现项目的规划、建设,终完成产品开发。 
# 禅道功能
1)产品管理:产品、需求、计划、发布、路线图等功能。
2)项目管理:项目、任务、团队、build、燃尽图等功能。
3)质量管理:bug、测试用例、测试任务、测试结果等功能。
4)文档管理:产品文档库、项目文档库、自定义文档库等功能。
5)事务管理:todo管理,我的任务、我的Bug、我的需求、我的项目等个人事务管理功能。
6)组织管理:部门、用户、分组、权限等功能。
7)统计功能:丰富的统计表。
8)搜索功能:通过搜索找到相应的数据。
# Jira功能
1)问题追踪和管理(问题类型包括New Feature-新功能、Bug-缺陷、Task-任务、 Improvement-改进 四种);
2)问题跟进情况的分析报告;
3)项目类别管理功能;
4)组件/模块负责人功能;
5)项目email地址功能;
6)无限制的工作流。
# 禅道的优点:
1)禅道开源免费,从下载到使用不需任何费用。开源的软件更能够根据企业自身需求在源码的基础上进行修改,让国内外众多企业节省项目管理成本。
2)禅道的功能非常完备,可扩展性,且代码开放可做二次开发。
3)禅道价格实惠,售后服务方式选择多且有官方技术服务的保障。
# 禅道的缺点:
1)禅道的界面设计稍稍逊色,不够简洁,颜色使用也比较单一,不够丰富。
2)虽然禅道有新手入门操作演示,但部分新人上手还是会存在一些问题。
# Jira的优点:
1)Jira的界面效果非常不错。安全性、可扩展性方面也不错。  Jira的使用范围广,所以拥有众多开发者提供的扩展插件以供不同选择。
2)单独提一下Jira的工作流定制,这块功能实用性特别高,可定制性也很好。
3)Jira针对issue驱动的项目管理非常有效,也基于多年来的插件积累,可以展现非常强大的交互、统计视图,纯粹项目管理使用Jira的确是个不错选择。
# Jira的缺点:
1)Jira从使用上来说还是不大符合国人的使用逻辑。
2)Jira虽然有中文版本,但是中文版本在使用的过程中,部分页面还是会有很多英文,不能做到全中文界面。
3)Jira对于国内用户提供的售后服务稍显弱一些,存在时间和沟通上的一些障碍。

环境准备

IP HOSTNAME SYSTEM
192.168.131.129 zentao CentOS 7.6
# 后面有编写好的脚本,自己注意修改mariadb的root密码
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@localhost ~]# sestatus
SELinux status:                 disabled
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@localhost ~]# hostnamectl --static set-hostname zentao

安装httpd

[root@zentao ~]# yum -y install httpd
[root@zentao ~]# rpm -qa | grep httpd
httpd-2.4.6-93.el7.centos.x86_64
httpd-tools-2.4.6-93.el7.centos.x86_64
[root@zentao ~]# systemctl enable httpd --now

安装php 7.2

# 下载php 7.2 yum源
[root@zentao ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
[root@zentao ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum 安装 php 7.2 所需组件
[root@zentao ~]# yum -y install php72w php72w-pdo php72w-mysql php72w-mbstring php72w-ldap php72w-gd php72w-json php72w-xml
[root@zentao ~]# vim /var/www/html/index.php
<?php
    phpinfo();
?>
[root@zentao ~]# systemctl restart httpd     # 重启httpd服务后,php页面才可以正常访问
# 浏览器访问 http://192.168.131.129/index.php 查看到php信息页面即可

安装mariadb

[root@zentao ~]# yum -y install mariadb mariadb-server
[root@zentao ~]# rpm -qa | grep mariadb
mariadb-5.5.65-1.el7.x86_64
mariadb-server-5.5.65-1.el7.x86_64
mariadb-libs-5.5.65-1.el7.x86_64
[root@zentao ~]# systemctl enable mariadb.service --now
数据库初始化
[root@zentao ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):       # 初次安装的,直接回车即可
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y     # 是否设置mariadb的root用户的密码
New password:             
Re-enter new password:         # 确认密码
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y       # 是否删除匿名用户
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n    # 是否禁止root远程登录
 ... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y     # 是否删除test数据库
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y    # 是否立即重新加载权限表
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

安装禅道

[root@zentao ~]# wget https://www.zentao.net/dl/ZenTaoPMS.12.4.1.zip
[root@zentao ~]# yum -y install unzip
[root@zentao ~]# unzip ZenTaoPMS.12.4.1.zip -d /var/www/html/
[root@zentao ~]# cp /etc/httpd/conf/httpd.conf{,.bak}    # 美好的一切,从备份配置文件开始
[root@zentao ~]# vim /etc/httpd/conf/httpd.conf 
119 DocumentRoot "/var/www/html/zentaopms/www"       `修改路径
120
121 #
122 # Relax access to content within /var/www.
123 #
124 <Directory "/var/www">
125     AllowOverride None
126     # Allow open access:
127     Require all granted
128 </Directory>
129
130 # Further relax access to the default document root:
131 <Directory "/var/www/html/zentaopms/www">       `修改路径
132     #
133     # Possible values for the Options directive are "None", "All",
134     # or any combination of:
135     #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
136     #
137     # Note that "MultiViews" must be named *explicitly* --- "Options All"
138     # doesn't give it to you.
139     #
140     # The Options directive is both complicated and important.  Please see
141     # http://httpd.apache.org/docs/2.4/mod/core.html#options
142     # for more information.
143     #
144     Options Indexes FollowSymLinks
145
146     #
147     # AllowOverride controls what directives may be placed in .htaccess files.
148     # It can be "All", "None", or any combination of the keywords:
149     #   Options FileInfo AuthConfig Limit
150     #
151     AllowOverride All                          `None改成All
152
153     #
154     # Controls who can get stuff from this server.
155     #
156     Require all granted
157 </Directory>
[root@zentao ~]# systemctl restart httpd
# 浏览器访问 http://http://192.168.131.129/ 开始安装禅道

脚本部署

#!/bin/bash
# From Bandian
# This project is used to deploy Zentao
# Date: 2020-08-14
# Httpd version: 2.4.6
# PHP version: 7.2
# Mariadb version: 5.5.65
# Zentao version: 12.4.1
# 检查网络
checkNetwork() {
ping -c1 www.baidu.com > /dev/null 2>&1
if [ $? -ne 0 ]
then
    echo "Check your network !"
    exit
else
    echo "Waiting for check system "
fi
}
checkNetwork
# 关闭selinux和防火墙
checkSystem() {
hostnamectl --static set-hostname zentao
systemctl disable firewalld --now
setenforce 0
# if [ $? -ne 0 ]
# then
#     echo "Check your firewalld and selinux !"
#     exit 1
# else
#     echo "Waiting for install httpd"
# fi
}
checkSystem
# 安装httpd
installHttpd() {
yum -y install httpd > /dev/null 2>&1
if [ $? -eq 0 ]
then
    echo "Httpd install successful"
else
    echo "Httpd install failed !"
fi
systemctl enable httpd --now
if [ $? -eq 0 ]
then
    echo "Httpd start succes"
    echo "Waiting fo install php"
else
    echo "Httpd start failed !"
    exit 2
fi
}
installHttpd
# 安装php
installPhp() {
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-pdo php72w-mysql php72w-mbstring php72w-ldap php72w-gd php72w-json php72w-xml /dev/null 2>&1
if [ $? -eq 0 ]
then 
    echo "PHP install successful"
    echo "Waiting for install mariadb"
else
    echo "PHP install failed !"
    exit 3
fi
}
installPhp
# 安装mariadb
installMariadb() {
yum -y install mariadb mariadb-server /dev/null 2>&1
if [ $? -eq 0 ]
then
    echo "Mariadb install successful"
else
    echo "Mariadb install failed !"
    exit 4
fi
systemctl enable mariadb.service --now
if [ $? -eq 0 ]
then
    echo "Mariadb start success"
    echo "Waiting init mariadb"
else
    echo "Mariadb start failed !"
    exit 4
fi
}
installMariadb
# 初始化mariadb
initMariadb() {
yum -y install expect > /dev/null 2>&1
expect -c "
spawn mysql_secure_installation
  expect {
    \"*enter for none*\" {send \"\r\"; exp_continue}
    \"*Y/n*\" {send \"y\r\"; exp_continue}
    \"*password*\" {send \"123.com\r\"; exp_continue}
    \"*password*\" {send \"123.com\r\"; exp_continue}
    \"*Y/n*\" {send \"y\r\"; exp_continue}
    \"*Y/n*\" {send \"n\r\"; exp_continue}
    \"*Y/n*\" {send \"y\r\"; exp_continue}
    \"*Y/n*\" {send \"y\r\";}
  }"
if [ $? -eq 0 ]
then
    echo "Mariadb init successful"
    echo "Waiting install zentao"
else
    echo "Mariadb init failed"
    exit 5
fi
}
initMariadb
# 安装禅道
installZentao() {
wget https://www.zentao.net/dl/ZenTaoPMS.12.4.1.zip
yum -y install unzip
if [ $? -eq 0 ]
then
    echo "Download zentao success"
else
    echo "Download zentao failed !"
    exit 6
fi
unzip ZenTaoPMS.12.4.1.zip -d /var/www/html/
cp /etc/httpd/conf/httpd.conf{,.bak}
sed -i '119{s/var.*/var\/www\/html\/zentaopms\/www"/}' /etc/httpd/conf/httpd.conf
sed -i '131{s/var.*/var\/www\/html\/zentaopms\/www">/}' /etc/httpd/conf/httpd.conf
sed -i '151{s/None/All/}' /etc/httpd/conf/httpd.conf
systemctl restart httpd
if [ $? -eq 0 ]
then
    echo "Httpd restarted success"
else
    echo "Httpd restart failed !"
    exit 7
fi
}
installZentao


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
移动开发 前端开发 Java
《钉钉应用开发者速成手册》之“钉钉应用开发入门——H5微应用”
本文将以获取当前用户部门信息的H5微应用为例,帮助您快速了解钉钉H5微应用的开发流程。
3426 0
《钉钉应用开发者速成手册》之“钉钉应用开发入门——H5微应用”
|
机器学习/深度学习 网络协议 异构计算
浅析GPU通信技术(下)-GPUDirect RDMA
目录 浅析GPU通信技术(上)-GPUDirect P2P 浅析GPU通信技术(中)-NVLink 浅析GPU通信技术(下)-GPUDirect RDMA 1. 背景         前两篇文章我们介绍的GPUDirect P2P和NVLink技术可以大大提升GPU服务器单机的GPU通信性...
28580 0
|
4月前
|
敏捷开发 人工智能 监控
任务反馈闭环管理:打造高效执行力的17个关键环节全解析
任务反馈闭环管理是一种确保任务从布置到完成全过程信息透明的管理方法,其核心是通过"计划-执行-反馈-改进"的完整循环,解决传统管理中常见的"任务黑洞"问题。这种机制强调责任明确、流程标准化、反馈及时和持续优化,能够显著提升执行力、团队协同效率和组织的敏捷性。关键环节包括SMART目标设定、标准化执行流程、量化反馈机制和PDCA持续改进。有效的闭环管理需要制度设计、工具支持和流程优化的协同配合,并通过五大KPI(任务完成率、反馈及时率等)进行量化评估。实施闭环管理虽面临员工适应、流程复杂等挑战,但数字化转型和智能化工具的应用正推动其向更高效的方向发展。闭环管理不仅是提升效率的工具,更是促进组织持
482 0
|
11月前
|
人工智能 自然语言处理 搜索推荐
智能语音助手的发展与未来:开启人机交互的新篇章
智能语音助手的发展与未来:开启人机交互的新篇章
1749 28
|
网络协议 网络架构
ensp中默认路由和静态路由实验
默认路由的作用是将无法匹配路由表中其他路由表项的数据包转发到指定下一跳路由器。在实际网络中,默认路由通常用于简化路由配置,通常在网络边缘的路由器上配置 静态路由的作用是将特定网络的数据包转发到指定下一跳路由器。在实际网络中,静态路由通常用于更精细地控制数据包的转发,通常在网络核心路由器上配置。
667 6
ensp中默认路由和静态路由实验
|
缓存 Linux
【进程控制】谈谈进程终止的三种状态
【进程控制】谈谈进程终止的三种状态
|
机器学习/深度学习 算法 数据处理
探索XGBoost:多分类与不平衡数据处理
探索XGBoost:多分类与不平衡数据处理
1341 6
|
缓存 NoSQL 应用服务中间件
零拷贝并非万能解决方案:重新定义数据传输的效率极限
本文讨论了零拷贝在优化数据传输效率方面的局限性。尽管零拷贝技术在减少数据传输过程中的内存拷贝次数方面有很大的优势,但它并非适用于所有情况。文章介绍了一些其他的优化方法,如异步I/O和直接I/O的组合、根据文件大小选择不同的优化方式。至此,我们的计算机基础专栏就结束了,不知道大家有没有发现,操作系统底层提供了丰富的解决方案来支持应用程序的复杂性和可扩展性。对于任何工作中遇到的问题,我们都可以从操作系统的角度寻找解决方法。
293 0
零拷贝并非万能解决方案:重新定义数据传输的效率极限
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
224 1
|
弹性计算
阿里云服务器“带宽计费模式”是什么意思?
阿里云服务器“带宽计费模式”是什么意思?阿里云服务器带宽计费模式分为“按固定带宽”和“按使用流量”,有什么区别?按固定带宽是指直接购买多少M带宽,比如1M、5M、10M、100M等,阿里云直接分配用户所购买的带宽值,根据带宽大小先付费再使用;按使用流量是先设置一个带宽峰值,然后根据实际公网产生的出流量来计算费用,先使用后付费