续篇——源码部署LAMP环境上线项目——禅道项目

news2024/11/15 15:40:18

上篇:LNMP环境部署WordPress——使用源码包安装方式部署环境-CSDN博客

目录

一.前提准备

1. 名词区别

2. 下载项目软件包

3. 上传项目源码到虚拟机并解压

 二.安装Apache

1. 环境清理

 2.关闭Nginx

3. 下载Apache

4.  下载APR组件

4.1 安装apr

4.2 安装apr-util组件

5. 安装httpd

6. 将httpd服务加入systemd

 三.启动禅道


一.前提准备

本次实验部署基于上篇的源码部署的环境,上篇搭建拉博客项目,本文描述更换禅道项目。

禅道是一款国产开源项目管理软件,它的功能包含产品管理、项目管理、质量管理、文档管理、组织管理和事务管理等。作为专业的研发项目管理软件,功能覆盖了研发项目管理的整体核心流程。

1. 名词区别

在官网的一些软件包版本时,常见的尾缀单词的所代表意思如下:

  1. LTS:Long-Term Support(长期支持)。这种版本通常会获得更长时间的技术支持和更新,适合那些希望在较长时间内维护和使用稳定版本的用户。

  2. RC:Release Candidate(发布候选版)。这种版本是在正式发布之前的最终测试阶段,通常用于征求用户反馈和进行最后的调整。

  3. Beta:Beta版。这种版本是在软件开发过程中的测试阶段,通常包含了新功能和改进,但可能存在一些未解决的问题。

  4. Alpha:Alpha版。这是开发初期的版本,通常仅用于内部测试或限定的测试群体中,可能存在较多的问题和缺陷。

  5.  Stable:稳定版)通常表示这是一个已经经过充分测试,没有明显 bug 或重大问题的版本。这是最适合普通用户使用的版本,因为它们提供了可靠的功能和性能,可以用于日常使用而不太容易出现意外情况。

2. 下载项目软件包

官网链接:禅道下载 - 禅道开源项目管理软件

官方手册:选择适合您的安装方法 - 禅道使用手册 - 禅道开源项目管理软件

我下载好的包链接:https://pan.baidu.com/s/1PAjaDHnEAfAKuw4VYDAitA?pwd=df3l 
提取码:df3l

使用链接下载:

[root@localhost ~]# wget -P /opt https://www.zentao.net/dl/zentao/20.0/ZenTaoPMS-20.0-zbox_amd64.tar.gz

以上途径选其一即可. 

3. 上传项目源码到虚拟机并解压
[root@localhost ~]# cd /opt

#下载至虚拟机后解压
[root@localhost opt]# tar -zxvf ZenTaoPMS-20.0-zbox_amd64.tar.gz

注:Linux一键安装包必须直接解压到/opt目录下。(援引官方)

 二.安装Apache

(本实验基于上篇文章,因此避免80端口冲突)

1. 环境清理
[root@localhost ~]# yum -y remove httpd
 2.关闭Nginx
[root@localhost ~]# systemctl stop nginx
[root@localhost ~]# systemctl status nginx
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 六 2024-05-11 20:44:00 CST; 6s ago
  Process: 47401 ExecStop=/usr/sbin/nginx -s quit (code=exited, status=0/SUCCESS)
  Process: 46671 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 46672 (code=exited, status=0/SUCCESS)

5月 11 16:53:21 localhost.localdomain systemd[1]: Starting nginx...
5月 11 16:53:21 localhost.localdomain nginx[46671]: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
5月 11 16:53:21 localhost.localdomain systemd[1]: Started nginx.
5月 11 20:44:00 localhost.localdomain systemd[1]: Stopping nginx...
5月 11 20:44:00 localhost.localdomain nginx[47401]: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
5月 11 20:44:00 localhost.localdomain systemd[1]: Stopped nginx.

#下载常用工具包
[root@localhost ~]# yum install -y net-tools 
[root@localhost ~]# netstat -ntlp | grep nginx
#这里没有提示代表成功停止拉nginx
3. 下载Apache

本文使用版本2.4.59

[root@localhost ~]# wget https://downloads.apache.org/httpd/httpd-2.4.59.tar.gz
4.  下载APR组件
[root@localhost ~]# wget http://archive.apache.org/dist/apr/apr-1.5.0.tar.gz
[root@localhost ~]# wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
[root@localhost ~]# ll
总用量 11536
-rw-r--r--  1 root root 1016391 11月 17 2013 apr-1.5.0.tar.gz
-rw-r--r--  1 root root  874044 9月  20 2014 apr-util-1.5.4.tar.gz
-rw-r--r--  1 root root 9843252 4月   4 21:33 httpd-2.4.59.tar.gz

#可以看到此处我下载到root目录下的apache的源码包和apr组件的包
4.1 安装apr
#解压apr
[root@localhost ~]# tar -xf apr-1.5.0.tar.gz
#进入目录
[root@localhost ~]# cd apr-1.5.0
#配置编译apr,生成Makefile,一般常用的有 --prefix=PREFIX 这个选项的意思是定义软件包安装到哪里
[root@localhost apr-1.5.0]# ./configure --prefix=/usr/local/src/apr

#此处等待几秒即可完成

#编译安装
[root@localhost apr-1.5.0]# make && make install

#这里也是等待几秒就可以完成
#进入apr的路径进行查看,默认情况下,系统搜索库文件的路径只有/lib,/usr/lib
#我们需要进行修改在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件
#而后把要增添的路径直接写至此文件中。此时库文件增添的搜索路径重启后有效,若要使用增添的路径立即生效则要使用ldconfig命令

[root@localhost apr-1.5.0]# cd /usr/local/src/apr/
[root@localhost apr]# ll
总用量 0
drwxr-xr-x 2 root root  26 5月  11 21:26 bin
drwxr-xr-x 2 root root 108 5月  11 21:26 build-1
drwxr-xr-x 3 root root  19 5月  11 21:26 include
drwxr-xr-x 3 root root 140 5月  11 21:26 lib

[root@localhost apr]# cd /etc/ld.so.conf.d/
[root@localhost ld.so.conf.d]# echo /usr/local/src/apr/lib/ >apr.conf
[root@localhost ld.so.conf.d]# cd -   #切换回上一个工作目录
/usr/local/src/apr

#使命令生效
[root@localhost apr]# ldconfig

#将头文件软链接到/usr/include目录下
[root@localhost apr]# ln -s /usr/local/src/apr/include/ /usr/include/apr
[root@localhost apr]# ll /usr/include/apr 
lrwxrwxrwx 1 root root 27 5月  11 21:31 /usr/include/apr -> /usr/local/src/apr/include/
4.2 安装apr-util组件

#返回下载存放的目录
[root@localhost apr]# cd ~
#下载依赖
[root@localhost ~]# yum install dnf -y
[root@localhost ~]# dnf -y install expat-devel libxml2-devel pcre-devel
#解压apr-util
[root@localhost ~]# tar -xf apr-util-1.5.4.tar.gz
#进入解压目录
[root@localhost ~]# cd apr-util-1.5.4
#编译配置
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/src/apr-util --with-apr=/usr/local/src/apr

#此处等待几秒即可,生成Makefile文件,需要伴随着上一个指定的依赖

[root@localhost apr-util-1.5.4]# make && make install
#等待几秒即可完成
#切换到apr-util安装目录进行查看,默认情况下,系统搜索库文件的路径只有/lib,/usr/lib
#我们需要进行修改在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件
#而后把要增添的路径直接写至此文件中。此时库文件增添的搜索路径重启后有效,若要使用增添的路径立即生效则要使用ldconfig命令
[root@localhost apr-util-1.5.4]# cd /usr/local/src/apr-util/
[root@localhost apr-util]# ll
总用量 0
drwxr-xr-x 2 root root  26 5月  11 21:46 bin
drwxr-xr-x 3 root root  19 5月  11 21:46 include
drwxr-xr-x 3 root root 164 5月  11 21:46 lib

[root@localhost apr-util]# cd /etc/ld.so.conf.d/
[root@localhost ld.so.conf.d]# echo /usr/local/src/apr-util/ >apr-util.conf
[root@localhost ld.so.conf.d]# cd -   #切换回上一个工作目录
/usr/local/src/apr-util 

#使其生效
[root@localhost apr-util]# ldconfig 
#将头文件软链接到/usr/include目录下
[root@localhost apr-util]# ln -s /usr/local/src/apr-util/include/ /usr/include/apr-util
[root@localhost apr-util]# ll /usr/include/apr-util
lrwxrwxrwx 1 root root 32 5月  11 21:50 /usr/include/apr-util -> /usr/local/src/apr-util/include/
5. 安装httpd
#回到源码包目录
[root@localhost ~]# cd
#解压
[root@localhost ~]# tar -xf httpd-2.4.59.tar.gz
#进入解压后目录
[root@localhost ~]# cd httpd-2.4.59

#配置编译httpd,生成make文件
[root@localhost httpd-2.4.59]# ./configure --prefix=/usr/local/src/httpd --with-apr=/usr/local/src/apr --with-apr-util=/usr/local/src/apr-util

#此处等待几秒编译即可

[root@localhost httpd-2.4.59]# make && make install

#此处等待15-30秒左右
#进入安装目录
[root@localhost httpd-2.4.59]# cd /usr/local/src/httpd/
[root@localhost httpd]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules

#将头文件软链接到/usr/include目录下
[root@localhost httpd]# ln -s /usr/local/src/httpd/include/ /usr/include/httpd
[root@localhost httpd]# ll  /usr/include/httpd
lrwxrwxrwx 1 root root 29 5月  11 22:03 /usr/include/httpd -> /usr/local/src/httpd/include/

#配置httpd的全局环境变量,并生成效果
[root@lnh httpd]# echo "export PATH=$PATH:/usr/local/src/httpd/bin" > /etc/profile.d/httpd.sh
[root@lnh httpd]# source /etc/profile.d/httpd.sh
[root@localhost httpd]# which httpd 
/usr/local/src/httpd/bin/httpd

[root@localhost httpd]# vim /etc/man_db.conf +23
#在行添加上如下内容,具体可看下图

MANDATORY_MANPATH                 /usr/local/src/httpd/man

#开启服务
[root@localhost httpd]# httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
httpd (pid 75183) already running

#查看端口
[root@localhost httpd]# netstat -antp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      75183/httpd 

[root@localhost httpd]# ss -antl
State       Recv-Q Send-Q                         Local Address:Port                                        Peer Address:Port              
LISTEN      0      128                                127.0.0.1:9000                                                   *:*                  
LISTEN      0      128                                        *:22                                                     *:*                  
LISTEN      0      80                                      [::]:3306                                                [::]:*                  
LISTEN      0      128                                     [::]:80                                                  [::]:*                  
LISTEN      0      128                                     [::]:22                                                  [::]:*  
6. 将httpd服务加入systemd
[root@localhost httpd]# cd /usr/lib/systemd/system
[root@localhost system]# cp sshd.service httpd.service
[root@localhost system]# vim httpd.service 

#这个文件里如果有,就删除全部,并新增如下内容
[Unit]
Description=httpd server daemon   #服务
After=network.target sshd-keygen.target

[Service]
Type=forking
ExecStart=/usr/local/src/httpd/bin/httpd  #服务安装的地方 开启
ExecStop=/usr/local/src/httpd/bin/httpd  -s stop  #停止
ExecReload=/bin/kill -HUP $MAINPID    #重新加载并发出信号(对pid对组程序的进程号)可留可删

[Install]
WantedBy=multi-user.target

#重新加载一下并生效
[root@localhost system]# systemctl daemon-reload 
#查看一下这个服务状态
[root@localhost system]# systemctl status httpd.service 
● httpd.service - httpd server daemon
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

#这里看到80端口在使用
[root@localhost system]# ss -antl
State       Recv-Q Send-Q                         Local Address:Port                                        Peer Address:Port              
LISTEN      0      128                                127.0.0.1:9000                                                   *:*                  
LISTEN      0      128                                127.0.0.1:3306                                                   *:*                  
LISTEN      0      128                                        *:22                                                     *:*                  
LISTEN      0      128                                     [::]:80                                                  [::]:*                  
LISTEN      0      128                                     [::]:22                                                  [::]:*        

#这里要确保80端口关闭,这里httpd服务没开,80端口还被监听着,因此我要关闭它,保证后续命令不会出现错误
#下载并确保lsof命令可以用
[root@localhost system]# yum -y install lsof

#查看80端口被哪些进程占用
[root@localhost system]# lsof -i :80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   75184 daemon    4u  IPv6 143438      0t0  TCP *:http (LISTEN)
httpd   75185 daemon    4u  IPv6 143438      0t0  TCP *:http (LISTEN)
httpd   75186 daemon    4u  IPv6 143438      0t0  TCP *:http (LISTEN)

#强制杀死这些进程
[root@localhost system]# kill -9 75184 75185 75186
#再次查看是否完全关闭
[root@localhost system]# lsof -i :80
[root@localhost system]# ss -antl
State       Recv-Q Send-Q                         Local Address:Port                                        Peer Address:Port              
LISTEN      0      128                                127.0.0.1:9000                                                   *:*                  
LISTEN      0      128                                        *:22                                                     *:*                  
LISTEN      0      128                                     [::]:22                                                  [::]:*     

#经确认,80端口无占用

 三.启动禅道

#确保关闭mysql和apache
[root@localhost ~]# systemctl stop mysqld 
[root@localhost ~]# systemctl stop httpd

启动

[root@localhost ~]# /opt/zbox/zbox start
 23:40:16.02 INFO  ==> Starting service with Apache port=80, MySQL port=3306...
 23:40:16.03 INFO  ==> Starting mysql service...
 23:40:17.15 INFO  ==> Starting apache service...
 23:40:17.20 INFO  ==> Starting xxd service...
 23:40:17.21 INFO  ==> Starting roadrunner service...
=============================================================================
Service             Port           Status    Version   Comment        
=============================================================================
Apache              80             running   2.4.59                   
PHP                 -              running   8.1.28    prefork        
MySQL               3306           running   10.6.16   MariaDB        
XXD                 11443 11444    running   8.1                      
Roadrunner          -              running   2023.3.12 @zentao        

=============================================================================
Application         Version        
=============================================================================
zentao              20.0           
adminer             4.8.1    

此时在浏览器输入IP即可访问到 , 点击“开源版”,进入到禅道登录界面, 输入默认用户名admin,密码123456,进入后修改密码。

  

到此,就正式部署好拉,可以开始研究一下禅道项目了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1665954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率

会议名称:CoopIS CCF等级:CCF C类学术会议 类别:人机交互与普适计算 录用率:2023年接收率21% (21 regular 10 work-in-progress papers/100) AREA 5: HUMAN-CENTRIC SECURITY AND PRIVACY IN INFORMATION SYSTEMS Access Con…

重写muduo之TcpServer

目录 1、Callbacks.h 2、TcpServer.h 3、TcpServer.cc 1、Callbacks.h 回调操作 #pragma once#include <memory> #include <functional>class Buffer; class TcpConnection;using TcpConnectionPtrstd::shared_ptr<TcpConnection>; using ConnectionCall…

20.接口自动化-Git

1、Git和SVN–版本控制系统 远程服务出问题后&#xff0c;可以先提交commit到本地仓库&#xff0c;之后再提交push远程仓库 git有clone Git环境组成部分 常用Git代码仓库服务-远程仓库 GitHub-服务器在国外&#xff0c;慢 GitLab-开源&#xff0c;可以在自己服务器搭建&…

示例六、湿敏传感器

通过以下几个示例来具体展开学习,了解湿敏传感器原理及特性&#xff0c;学习湿敏传感器的应用&#xff1a; 示例六、湿敏传感器 一、基本原理&#xff1a;随着人们生活水平的不断提高&#xff0c;湿度监控逐步提到议事日程上。由于北方地区秋冬季干燥&#xff0c;需要控制室内…

如何选择合适加密软件来保护信息资产|精选加密软件分析

五款加密软件对比分析&#xff0c;是一项复杂而必要的任务&#xff0c;旨在帮助用户选择最适合其需求的加密工具。在数字化时代&#xff0c;信息安全显得尤为重要&#xff0c;因此&#xff0c;对加密软件的评估与比较显得尤为关键。 首先&#xff0c;我们要考虑的是这些加密软件…

基于单片机的温度控制系统设计(51基础版)-设计说明书

本论文设计了一种基于51单片机的温度控制系统&#xff0c;该系统具备以下主要功能&#xff1a;首先&#xff0c;通过温度传感器实时检测环境温湿度&#xff0c;以获取准确的温度数值。其次&#xff0c;通过按键设置温度阈值&#xff0c;用户可以根据需求自行调整控制温度的上限…

Container exited with a non-zero exit code 1

最近遇到运行yarn pi的时候遇到如下问题。 很明显是container出错了&#xff0c;但是错误没有提示的很清楚。然后去看nodemanager日志也是如此。这时候笔者第一个想到要去看container的执行日志。container具体的日志目录位置是通过YARN的配置文件&#xff08;如yarn-site.xml&…

虚拟机CentOS密码重置

1&#xff0c;reboot重启 在出现下面的界面1按e 如果有选项就选择“CentOS Linux &#xff08;3.10.0-327.e17.x86_64&#xff09;7 &#xff08;Core&#xff09;”【我的电脑没有直接显示界面2】 界面1 界面2 2&#xff0c;在上述界面2中继续按e进入编辑模式 找到“ro cr…

AI办公自动化-用kimi批量重命名Word文档

文件夹里面有很多个word文档&#xff0c;标题里面都含有零代码编程&#xff0c;现在想将其替换为AI办公自动化。 在kimichat中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个编写Python脚本的任务&#xff0c;具体步骤如下&#xff1a; 打开文件夹&am…

翻译/润色找哪里比较专业,机构怎么选?

英文专业术语多&#xff0c;润色是很有必要的&#xff0c;大家可以选择专业的文章翻译润色服务&#xff0c;一定要挑选好正规的机构&#xff0c;这样的机构在出版过程中会为作者提供多项支持&#xff0c;对顺利发表是有帮助的。 科研领域英文论文专业润色包含这些内容&#xff…

SC-Lego-LOAM建图与ndt_localization的实车实现

参考&#xff1a;https://blog.csdn.net/weixin_44303829/article/details/121524380 https://github.com/AbangLZU/SC-LeGO-LOAM.git https://github.com/AbangLZU/ndt_localizer.git 将建图和定位分别使用lego-loam和ndt来进行&#xff0c;实车上的效果非常不错&#xff0c;…

SeetaFace6人脸特征提取与对比C++代码实现Demo

SeetaFace6包含人脸识别的基本能力&#xff1a;人脸检测、关键点定位、人脸识别&#xff0c;同时增加了活体检测、质量评估、年龄性别估计&#xff0c;并且顺应实际应用需求&#xff0c;开放口罩检测以及口罩佩戴场景下的人脸识别模型。 官网地址&#xff1a;https://github.co…

Threejs 动态修改InstanceMesh实例化几何体中单个实例的颜色

目录 InstanceMesh多实例 场景 思路 注意点 实现 效果 InstanceMesh多实例 instanceMesh 是使用InstancedMesh类来创建实例化的几何体。它适用于当需要大量重复的几何体时&#xff0c;但是每个实例之间有不同的变换属性&#xff08;如位置、旋转、缩放等&#xff09; 场…

LangChain:大模型框架的深度解析与应用探索

在数字化的时代浪潮中&#xff0c;人工智能技术正以前所未有的速度蓬勃发展&#xff0c;而大模型作为其中的翘楚&#xff0c;以生成式对话技术逐渐成为推动行业乃至整个社会进步的核心力量。再往近一点来说&#xff0c;在公司&#xff0c;不少产品都戴上了人工智能的帽子&#…

如何更好地使用Kafka? - 运行监控篇

要确保Kafka在使用过程中的稳定性&#xff0c;需要从kafka在业务中的使用周期进行依次保障。主要可以分为&#xff1a;事先预防&#xff08;通过规范的使用、开发&#xff0c;预防问题产生&#xff09;、运行时监控&#xff08;保障集群稳定&#xff0c;出问题能及时发现&#…

模拟无线音频传输实验

zkhengyang进数字音频系统研究开发交流答疑群(课题组) 一个单管调频无线话筒模块一台调频收音机&#xff0c;全部自己动手制作调试&#xff0c;无线话筒模块可以接话筒mic&#xff0c;人讲话&#xff0c;收音机接受到语音信号&#xff0c; 或者直接输入模拟音频音乐信号&#…

CentOS 8.5 安装配置 squid 6.9 代理服务器 Windows10 系统设置http代理 详细教程

1 下载地址: 官网下载 2 通过xftp等方式上传到服务器 #查看环境 [rootlocalhost ~]# cat /etc/redhat-release CentOS Stream release 8 [rootlocalhost ~]# uname -a Linux localhost.localdomain 4.18.0-552.el8.x86_64 #1 SMP Sun Apr 7 19:39:51 UTC 2024 x86_64 x86_6…

24寸2K显示器 - HKC G24H2

&#x1f525;&#x1f5a5;️ 嘿&#xff0c;大家好&#xff01;今天&#xff0c;我要给大家介绍一款超棒的显示器——HKCG24H2&#xff01;这款显示器可是个全能选手&#xff0c;无论你是工作狂人还是游戏迷&#xff0c;它都能满足你的需求&#xff01; &#x1f60e;&#x…

AWTK 开源串口屏开发(18) - 用 C 语言自定义命令

AWTK-HMI 内置了不少模型&#xff0c;利用这些模型开发应用程序&#xff0c;不需要编写代码即可实现常见的应用。但是&#xff0c;有时候我们需要自定义一些命令&#xff0c;以实现一些特殊的功能。 本文档介绍如何使用 C 语言自定义命令。 1. 实现 hmi_model_cmd_t 接口 1.1…

wordpress主题 7B2 PRO主题5.4.2免授权直接安装

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 WordPress 资讯、资源、社交、商城、圈子、导航等多功能商用主题&#xff1a;B2 PRO 其设计风格专业且时尚&#xff0c;功能十分强大&#xff0c;包括多栏布局、自定义页面、强大的主…