Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑


  • 本篇博客将分享本人在使用禅道是遇到的很多问题希望对大家有所帮助
  • 有些问题只是发现了但现在的能力没办法解决希望大佬能提提意见给点帮助

参考文献:
http://www.zentao.net/


  • 在此禅道的用途就不给大家多做解释了,直接进入正题:
    实验所需安装包:
    链接:https://pan.baidu.com/s/1UZaJeO5RFdlkPmSVlrdopw 密码:uame

注:官网上也可直接下载,在官网上有四个连接,国际版的大家可以随意,个人觉还是本土的好用,但在站点一和站点二两个路径下载的zentao包安装上在初次使用和文件上传中还是有点差别的,站点一在上传带有大附件的东西是,我们看不到是否点击成功,但站点二的可以直观的看到,所以推荐下载站点二的:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第1张图片

这里我们直接安装最新版的禅道10.0版本的,此版本中仅仅优化了图形界面,还填补了许多以前版本的bug

首先我们需要安装lrzsz:

yum -y install lrzsz

把我们准备好的按转包导入/usr/local/src中

解压文件:

tar zxf /usr/local/src/ZenTaoPMS.10.0.stable.zbox_64.tar.gz.tgz -C /opt/
  • 注:这里我安装的是Linux一键安装包官方给出的方法就是直接解压到/opt/目录下直接启动就行,若解压到其他目录下可能目录权限可能出现问题,直接给777权限都不行,所以我们还是别整那些幺蛾子,自己找官方的指示进行即可,若是有目录规定强行要求可以参考官网其他安装方法

解压到此目录下我们就可以直接启动禅道了

  • 下面是禅道的基本操作命令
    启动禅道:
    sh /opt/zbox/zbox start

    关闭禅道:

    sh /opt/zbox/zbox stop

    重启禅道:

    sh /opt/zbox/zbox restart

    修改默认Apache端口:

    sh /opt/zbox/zbox -ap [port]

    修改默认mysql端口:

    sh /opt/zbox/zbox -mp [port]

注:一键安装包是把http和mysql都集成到zentao安装中的(默认http端口是80,mysql是3306,肯能会有端口冲突所以建议修改默认端口),所以不用我们额外安装,若不想使用自带的mysql数据库,可以选择其他的安装方式
首先我们修改Apache port和mysql port:

sh /opt/zbox/zbox -ap 9090
sh /opt/zbox/zbox -mp 3307

启动zentao:

sh /opt/zbox/zbox start

如下:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第2张图片

显示success表示我们成功了,但是真正成功我们得抓端口监听:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑
这是表示我们已经成功了,我们可以通过访问web来查看了:

若修改了Apache端口的访问:

http://ip:[Apache port]

若没修改直接访问IP即可(web默认即为80):

http://ip

访问成功如下:(点击开源版我们就可以开启禅道之旅了)
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第3张图片

进入后我们可以设置语言环境:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第4张图片
当然默认中文就好使了,这时候有人就会有疑问了,怎么还需要登录用户和密码呢,我没创建过啊,是不是我点错了啊,不小心创建了,或者省略了哪一步啊,既然你看到了这边文档那我告诉你,这都不叫事,在禅道10.0版本后为了加强安全性,在首次登录我们需要初始密码,当然网上也可以看到,但是好多都是瞎扯的,正确的用户名和面是:

user:admin
password:123456

登录后系统会让我们修改密码的
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第5张图片
原密码就是我们初始密码:123456

这时候我们安装部署就到此结束了可以使用了,下面要说的就是排坑及一些扩展性的东西


启动禅道时报错:
首先我们需要查看mysql和Apache日志信息有是否有报错
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第6张图片
如果有报错,根据报错进行排查,但一般启动失败有一下几个问题:

  • 启动的用户权限不够,要么使用root,要么sudo(个人建议)
  • 查看是否Apache和MySQL端口被占用
  • tar包解压的位置有问题,没有放在/opt目录下

禅道启动后errror_log中有大量error信息
如:

[Tue Aug 02 10:07:44.338117 2017] [mpm_event:alert] [pid 746:tid 2913958720] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Tue Aug 02 10:07:44.342509 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342585 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342590 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342593 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342598 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342604 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342609 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342613 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342616 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342620 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed
[Tue Aug 02 10:07:44.342623 2017] [mpm_event:crit] [pid 746:tid 2901408576] (22)Invalid argument: ap_queue_pop failed

解决思路方向:

  • 一般这种情况为服务器部署的防护脚本或者资源限制,服务器拒绝了禅道对资源进行申请

禅道数据库问题

  • 禅道启动后本地mysql数据库挂了
  • 禅道启动时数据库启动报错
  • 禅道启动后mysql有端口监听但没有进程ID(这种情况一般在docker容器里面较为常见)

解决思路方向:

  • 本地数据库启动的是3306端口,禅道一键安装包启动的也是3306端口,所以启动的时候出现端口冲突
  • 还有在执行sh /opt/zbox/zbox restart 显示报错:
    Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑
    我们先执行:

    sh /opt/zbox/zbox stop
    在执行:
    sh /opt/zbox/zbox start
  • 禅道启动时数据库时报错,若在没有端口冲突的情况下还报错,那么可能是mysql库的目录权限不对,需要保证mysql的权限如下:
    Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第7张图片

  • 在docker中部署禅道,启动和日志均没有报错,但是在抓端口监听时发现Apache并没有异常,但是mysql却只有端口监听并没有端口监听对应的进程ID,如:
    Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第8张图片
    此图中可以看出Apache是正常的,但mysql极端异常,但是去不影响禅道的正常使用,这个问题我查找了特别多资料都没找到原因和解决办法,若有人遇到相同的问题希望相互探讨下

修改禅道默认附件上传大小
默认在禅道附件上传大小为50M,大于50M时候就无法上传

解决办法:
修改php.ini文件

vim /opt/zbox/etc/php/php.ini

需要修改的地方:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第9张图片
修改配置文件:

cd /opt/zbox/app/zentao/www/

修改两个配置文件,这两个配置文件是影藏的,查看方式:

ll -a /opt/zbox/app/zentao/www/

如下:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第10张图片

两个配置文件分别需要修改的地方:
.htaccess
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第11张图片
.ztaccess
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第12张图片

重启禅道即可:

sh /opt/zbox/zbox restart

查看是否修改成功:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第13张图片
此时附件已经显示可以上传500M

禅道附件已经修改了大小但依旧上传失败显示网络超时或者网络错误
如下:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第14张图片

解决问题思路:
在解决问题的之前我们需要了解下Ajax,这个问题是由于网速导致Ajax默认30超时导致失败
Ajax:

Ajax使用 JavaScript 向服务器提出请求并处理响应而不阻塞用户!核心对象XMLHTTPRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果。
Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息

默认Ajax时间响应时间为30S,当我们上上传文件大小除以没秒上传的带宽大于30的时候就会报错连接超时,网络连接失败这种类型的错误
着需要我们修改Ajax的默认响应时间即可

使用nginx解析域名登录禅道上传附件有问题,但使用IP和port登录上传却没有问题

当我们上传一两兆附件的时候页面都会显示网络错误,或者超时

解决办法思路:
当出现这种情况是,我们程序里的log是没有error信息的,所以我们只能通过浏览器查看浏览器做出的动作(建议使用google,右击查看或者按F12也行)如:
Linux部署禅道及默认端口修改和附件大小限制修改和使用过程各种排坑_第15张图片
在这里面我们可以看到页面返回信息是nginx的,并且信息为too large
此时我们应该明白了问题出在那了,nginx上传文件大小默认是1M,所以我么只要修改下配置即可:
编辑nginx主配文件,在http{}字段添加一行配置:

client_max_body_size 100m;
  • 把上传大小改成100M,但是实际情况还要根据网速来定,因为Ajax默认时间为30S
    修改后重新载入nginx即可:

    nginx -s reload
  • ok,整片博客到此结束,希望看完这篇博客后在玩禅道时候可以少走点弯路,

有志者事竟成,破釜沉舟,百二秦关终属楚;
苦心人天不负,卧薪尝胆,三千越甲可吞吴;