【问题标题】:Move Redmine Server whilst keeping external database在保留外部数据库的同时移动 Redmine 服务器
【发布时间】:2020-04-06 20:11:51
【问题描述】:

我目前在 nginx 服务器上运行 redmine。实际的 MySQL 数据库位于外部服务器上,一切正常。

现在我想将它移动到另一台机器上的 Apache 服务器上,最好不要更改/移动数据库。

这可能吗,还是我总是需要导出/导入数据库?很高兴坚持使用相同版本的 redmine(在我的例子中是 4.0.1.、Ruby 2.5.1-p57、Rails 5.2.2,没有安装插件)。如果是肯定的,Ruby/Rails 版本的条件是什么?它们都必须和我在旧版本上的完全一样吗?

【问题讨论】:

    标签: redmine


    【解决方案1】:

    数据库方案不受 ruby​​ 版本影响,仅受 Redmine 版本影响,因为新版本可能会在数据库中添加或删除内容。 因此,在您的情况下,将旧 Redmine 复制粘贴到新服务器应该可以。

    但是您必须确保新的 Redmine 服务器(可能是新 IP)具有访问 MySQL 数据库的适当权限。

    而且你必须遵循升级教程,因为你的新服务器需要拉取并安装 Ruby Gems,从 tmp 文件夹中清除旧缓存等...

    https://www.redmine.org/projects/redmine/wiki/RedmineUpgrade

    【讨论】:

    • 谢谢。听起来令人鼓舞。但是,很难找到有用的指南来在 Ubuntu 上使用 Apache 安装特定(而不是作为软件包)版本的 Redmine。
    【解决方案2】:

    Aleksander 的回答让我相信这是可以做到的,但我最终坚持了我最初的方法,直到我成功了,而不是改变他的建议。

    恐怕我忘记了各种位的来源,主要来自 redmine 帮助页面。

    我的完整解决方案是

    sudo apt update
    sudo apt upgrade
    sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev ruby-full
    sudo apt install apache2 libapache2-mod-passenger
    sudo gem update
    sudo gem install bundler
    
    sudo curl -L https://www.redmine.org/releases/redmine-4.0.1.tar.gz -o /tmp/redmine.tar.gz
    sudo tar zxf /tmp/redmine.tar.gz
    sudo mv redmine-4.0.1 /opt/redmine
    sudo touch /opt/redmine/Gemfile.lock
    sudo chown www-data:www-data /opt/redmine/Gemfile.lock
    sudo chmod a+w /opt/redmine/Gemfile.lock
    sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
    sudo ln -s /opt/redmine/public /var/www/html/redmine
    
    cd /opt/redmine
    mkdir -p /opt/redmine/app/assets/config && echo '{}' > /opt/redmine/app/assets/config/manifest.js
    bundle install
    bundle exec rake generate_secret_token 
    

    请注意,上面的清单行仅适用于我的特定 redmine 版本,它与后来的 sprockets 版本不兼容。另请注意,更改权限 a+w 可能过多,但否则我会遇到权限问题。

    然后我们必须再做一些手动调整。使用文本编辑器打开文件:

    sudo nano /opt/redmine/config/database.yml
    

    并将生产更改为以下

    production:
      adapter: mysql2
      database: myredminedatabasename
      host: mysqlserver.somewhere.com
      username: dbusername
      password: "dbpassword"
      encoding: utf8
    

    需要将PassengerDefaultUser这一行添加到/etc/apache2/mods-available/passenger.conf(其他两行保持不变,即使略有不同)

    <IfModule mod_passenger.c>
      PassengerDefaultUser www-data
      PassengerRoot /usr
      PassengerRuby /usr/bin/ruby
    </IfModule>
    

    更改 /etc/apache2/sites-available/000-default.conf 以将以下内容与其他部分一起插入,以便 apache 知道按照符号链接进入 Rails。还要注意第一行设置 DocumentRoot,这是我个人的绊脚石之一。

    DocumentRoot /var/www/html/redmine
    <Directory /var/www/html/redmine>
        RailsBaseURI /redmine
        PassengerResolveSymlinksInDocumentRoot on
    </Directory>
    

    我们还需要将旧服务器上的 /opt/redmine/files 文件夹的内容复制到相同位置的新服务器。

    同时在 /opt/redmine/config/configuration.yml 中复制电子邮件设置。

    然后重启你的服务器,它应该可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多