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

发布于:2025-06-09 ⋅ 阅读:(19) ⋅ 点赞:(0)

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

./zbox start

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

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
确实有这么个文件

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的端口

./zbox start --aport=8899

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

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的端口