You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redmine迁移至Debian9后访问登录页报500错误求助

Redmine迁移Debian 9后访问500报错修复方案

报错根因

错误提示unknown keywords: permitted_classes, aliases是跨发行版直接拷贝Redmine核心程序文件导致的Ruby依赖不兼容:

  • permitted_classes、aliases是Ruby YAML解析组件Psych 3.1.0及以上版本才支持的传参
  • Debian 9默认软件源搭载的Ruby版本为2.3,内置Psych版本为2.x系列,无法识别上述两个参数
  • 直接从Ubuntu环境拷贝/usr/share/redmine等核心程序目录,没有适配Debian 9的依赖环境,Redmine运行时调用YAML解析方法传入旧版Psych不支持的参数,直接触发500错误。

修复操作步骤

  • 安装Debian 9源内适配的Redmine核心依赖
    不要直接使用从Ubuntu拷贝的核心程序文件,先通过apt安装匹配Debian 9环境的Redmine基础包,自动安装适配版本的Ruby、Psych及其他依赖:
    apt update
    # 按原服务使用的数据库选择安装对应依赖,用MySQL就装redmine-mysql,PostgreSQL就装redmine-pgsql
    apt install -y redmine redmine-mysql libapache2-mod-passenger
    
  • 同步业务数据与自定义配置
    核心程序安装完成后,只迁移业务相关内容,不要覆盖核心程序文件:
    • 将原服务器导出的Redmine数据库备份,导入Debian 9上为Redmine创建的空数据库中
    • 将原服务器/etc/redmine目录下的database.yml(数据库连接配置)、configuration.yml(站点全局配置)两个自定义配置文件,同步到Debian 9的/etc/redmine目录,将文件属主调整为www-data:www-data保证可读
    • 将原Redmine的自定义主题、第三方插件、上传附件目录,分别同步到Debian 9 Redmine安装路径下的themes、plugins、files目录,同样调整对应权限
  • 修正Apache配置并清理缓存
    • 检查之前同步的Apache vhost配置,将里面的Redmine路径、Passenger相关路径修改为Debian 9上Redmine的实际安装路径(Debian 9源安装的Redmine默认路径为/usr/share/redmine)
    • 执行命令清空旧缓存:
      rm -rf /var/cache/redmine/*
      
  • 执行数据结构适配
    进入Redmine安装目录,执行迁移命令保证数据库结构、插件结构和当前安装的Redmine版本匹配:
    cd /usr/share/redmine
    bundle exec rake db:migrate RAILS_ENV=production
    bundle exec rake redmine:plugins:migrate RAILS_ENV=production
    bundle exec rake tmp:cache:clear RAILS_ENV=production
    
  • 重启服务生效
    systemctl restart apache2
    

跨服务器迁移Redmine时,禁止跨发行版/跨大版本系统直接拷贝核心程序目录,优先使用目标系统包管理器安装适配环境的核心程序,仅同步业务数据、自定义配置、插件、主题、附件类内容,可避免90%以上的依赖兼容问题。

内容的提问来源于stack exchange,提问作者Moatez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:15:39