部署开源版禅道,修改apache端口无效解决

遇到一个问题,我部署了一个开源版的禅道,具体版本是21.2 , 这是一个可以一键部署的版本,因为其内置了 apache,redis,mysql,php, xxd 这些都不用自己单独安装,只需要下载,解压,然后 切换到 zbox 目录下,执行以下命令就可以了

bash 复制代码
./zbox start

如果步修改任何的配置,上面提到的这些软件都是按照默认的端口来启动

bash 复制代码
Apache              80             stopped   2.4.62                   
PHP                 -              stopped   8.1.30    prefork        
MySQL               3306           stopped   10.6.20   MariaDB        
XXD                 11443 11444    stopped   9.2.1                    
Roadrunner          -              stopped   2023.3.12 @zentao        
Redis               6379           stopped   6.2.16    Cache    

但是当我们的服务器上这些端口被其他的服务占用的时候,我们就需要修改这些软件的端口,来保证正常启动。

我遇到的情况是我的80端口被nginx占用,我需要将其修改为8899 这个端口,然后我就修改了

/opt/zbox/etc/apache 目录下的apache配置文件,httpd.conf , 将apache的监听端口修改为8899

还有一处也也可以配置apache的端口

但我发现是注释的就没管它,然后启动了,放开是确实是好用的,但是过了一段时间,服务器欠费了,被强制关机了,续费重启之后,无论无何,apache都起不来,提示说是80端口被占用了,但是我明明配置的是8899,为啥要用80启动呢

说明配置文件中只有一个配置监听的地方,但是已经改为8899

说明启动的配置文件只有这一个,百思不得其解,哪里出了问题了,解决了一天没解决。

重点:我发现启动的时候,有一个提示

说明启动的时候,会从/opt/zbox/.env 这里加载信息,所以我就打开看看这个文件,执行ll -a

确实有这么个文件

bash 复制代码
export ZENTAO_ENV=zbox-linux    #一键安装包名称
export APACHE_HOST=127.0.0.1    #Apache服务IP
export APACHE_PORT=8899           #Apache服务端口
export MYSQL_HOST=127.0.0.1     #MySQL服务IP
export MYSQL_PORT=3306          #MySQL服务端口
export MYSQL_PASS=123456        #MySQL服务密码
export MYSQL_SOCK=/opt/zbox/tmp/mysql/mysql.sock #MySQL服务Socket
export DEFAULT_USER=nobody      #默认用户
export DEFAULT_GROUP=nogroup    #默认用户组
export MYSQL_SERVICE=enabled    #启动MySQL服务
export CHECK_MYSQL=true         #检查MySQL数据
export APACHE_SERVICE=enabled   #启动Apache服务
export XXD_SERVICE=enabled      #启动喧喧服务
export ROADRUNNER_SERVICE=enabled #启动roadrunner服务
export REDIS_SERVICE=enabled    #启动Redis服务
export REDISCLI_AUTH=pass4Redis #Redis服务密码
export ZT_CACHE_ENABLE=true     #禅道启用缓存
export ZT_CACHE_DRIVER=redis    #禅道缓存驱动
export ZT_CACHE_SCOPE=private   #禅道缓存作用域
export ZT_CACHE_NAMESPACE=zentao #禅道缓存命名空间
export ZT_CACHE_LIFETIME=0       #禅道缓存有效期
export ZT_REDIS_HOST=127.0.0.1   #禅道Redis服务IP
export ZT_REDIS_PORT=6379        #禅道Redis服务端口
export ZT_REDIS_PASSWORD=pass4Redis #禅道Redis服务密码
export ZT_REDIS_SERIALIZER=igbinary #禅道Redis序列化方式
export PATH=/opt/develop_tool/jdk1.8.0_251/bin:/opt/develop_tool/apache-maven-3.8.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/zbox/bin

然后我把这里的 apache 端口修改为8899,重新启动,正常了。

其实还可以通过其他的方法来解决这个问题,那就是通过命令行,在启动的时候指定apache的端口

bash 复制代码
./zbox start --aport=8899

这个可以从 zbox 这个可执行文件中看出来

bash 复制代码
while true; do
  case "$1" in
    --aport)
      if ! [[ "$2" =~ ^[0-9]+$ ]] || [[ "$2" -lt 1 ]] || [[ "$2" -gt 65535 ]]; then
        echo "Invalid Apache port: '$2'"
        exit 1
      fi
      aport="$2"
      shift 2
      ;;
    --mport )
      if ! [[ "$2" =~ ^[0-9]+$ ]] || [[ "$2" -lt 1 ]] || [[ "$2" -gt 65535 ]]; then
        echo "Invalid MySQL port: '$2'"
        exit 1
      fi
      mport="$2"
      shift 2
      ;;
    --rport )
      if ! [[ "$2" =~ ^[0-9]+$ ]] || [[ "$2" -lt 1 ]] || [[ "$2" -gt 65535 ]]; then
        echo "Invalid Redis port: '$2'"
        exit 1
      fi
      rport="$2"
      shift 2
      ;;
    --)
      shift
      break
      ;;
    *)
      echo "Invalid option: '$1'"

可以看到可以通过 --aport 来指定apache的端口,--mport 来指定mysql的端口,--rport 来指定redis的端口

相关推荐
小小龙学IT1 天前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache
Shepherd06191 天前
【IT 运维】Apache 使用 mod_remoteip 恢复 Cloudflare 后的真实访客 IP
运维·tcp/ip·apache
嘿黑嘿呦1 天前
chap 8排序
算法·蓝桥杯·排序算法·软件工程
旧曲重听11 天前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
isyangli_blog1 天前
SDN 基本应用实践 —— 使用命令行实现简易防火墙功能实验报告
服务器·php·apache
承渊政道1 天前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程
apcipot_rain2 天前
计科八股20260616(1)——堆存中位数、链表判环、黑白测试、敏捷开发与瀑布模型、配置管理、持续集成、池化
数据结构·算法·软件工程
lisw052 天前
【计算机科学技术】路由器(route):概念、历史、内容与战略!
机器学习·智能路由器·软件工程
培培说证2 天前
大数据、人工智能、计算机、软件工程,到底怎么选?
大数据·人工智能·软件工程
小小龙学IT2 天前
Apache Pulsar 深度解析:从架构设计到生产落地
apache