Ubuntu 上安装 Redmine 5.1 指南

在这里插入图片描述

文章目录

  • 官网安装文档:
  • 命令步骤
  • 相关介绍
    • Gem
    • Ruby
    • Rails
    • Bundler
  • 安装 Redmine
    • 更新系统包列表和软件包:
    • 安装必要的依赖:
    • 安装 Ruby:
    • 安装 bundler
    • 下载 Redmine 源代码:
    • 安装 MySQL
    • 配置 Redmine 的数据库配置文件:
    • 换源
    • 安装 Redmine 的依赖包:
        • 如何修复在 ubuntu 上安装 rails 项目包时出现的权限错误
    • 生成 Session 存储密钥:
    • 创建数据库架构对象
    • 数据库默认数据集
    • 运行
    • 端口转发


官网安装文档:

Wiki Guide
https://www.redmine.org/projects/redmine/wiki/RedmineInstall

centos7.9安装Redmine 5.1

命令步骤

sudo apt update
sudo apt install mysql-server

# ----------------------------------------------------------------
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

use mysql;
update user set host='%' where user='root' and host='localhost';
flush privileges; 
grant all on *.* to 'root'@'%';
flush privileges; 

mysql -u root -p
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

# ----------------------------------------------------------------
# Ruby环境
sudo apt install ruby-full
# 安装 RubyGems 编译或构建工具
sudo apt install -y build-essential libmysqlclient-dev imagemagick libmagickwand-dev

# gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
# gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
# gem sources -l

sudo gem install bundler
# sudo gem install rails
# sudo gem install rails -v 6.1.7.8

bundle config mirror.https://rubygems.org https://gems.ruby-china.com
# bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems

# ----------------------------------------------------------------
wget https://www.redmine.org/releases/redmine-5.1.3.tar.gz
tar -xf redmine-5.1.3.tar.gz
cd redmine-5.1.3/config/
cp database.yml.example database.yml
vim database.yml
cd ..

# ----------------------------------------------------------------
sudo chown -R liuqz:liuqz /var/lib/gems/
sudo chown -R liuqz:liuqz /usr/local/bin
bundle config set --local without 'development test rmagick'
bundle install

# ----------------------------------------------------------------
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
# zh
bundle exec rails server -e production  -b 0.0.0.0
# bundle exec rails server -e production -b 0.0.0.0 -p 3002
# bundle exec rails server -e production -b 0.0.0.0 -p 3001
# nohup bundle exec rails server -e production -b 0.0.0.0 -p 3000 &

相关介绍

Gem

Linux Gem 是一个用于管理 RubyRails 应用程序的包管理器,它提供了一种简单的方式来安装、更新和管理 Ruby 和 Rails 应用程序所需的依赖项。

linux gem是什么

Ruby

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。

Ruby 百科

Rails

Rails 是一个 Web 应用程序框架,它包含根据 模型-视图-控制器 (MVC) 模式创建数据库支持的 Web 应用程序所需的一切。

Rails Github

Bundler

   ‌Bundler 是一个用于管理 Ruby 项目依赖关系的工具。‌ 它可以帮助开发人员确保项目的 Gem 包版本一致性,避免由于不同开发环境导致的依赖冲突问题。Bundler 通过 Gemfile 文件定义项目的依赖关系,使得依赖管理更加清晰和可维护‌。
   
   Bundler 的最新功能包括:

  • ‌自动依赖解决‌:确保安装和升级软件包时不会出现依赖错误。
  • 并行安装‌:支持并行安装多个软件包,加快安装速度。
  • ‌交互式界面‌:提供交互式界面,方便浏览、安装和卸载软件包。
  • ‌定制脚本支持‌:允许用户编写定制脚本来执行特定的软件包操作。
  • ‌安全更新‌:自动检查和应用软件包的安全更新,确保系统安全‌

安装 Redmine

在Ubuntu 22.04上搭建Redmine的步骤如下:

更新系统包列表和软件包:

sudo apt update
sudo apt upgrade -y

安装必要的依赖:

sudo apt install -y build-essential libmysqlclient-dev imagemagick libmagickwand-dev

# sudo apt-get install build-essential libssl-dev libreadline-dev zlib1g-dev

安装 Ruby:

sudo apt install -y ruby-full

安装 bundler

sudo gem install bundler

下载 Redmine 源代码:

wget https://www.redmine.org/releases/redmine-5.1.3.tar.gz
wget https://www.redmine.org/releases/redmine-5.0.0.tar.gz
tar xzvf redmine-5.0.0.tar.gz
mv redmine-5.0.0 /var/www/redmine
cd /var/www/redmine

安装 MySQL

ubuntu22安装mysql8.0

sudo apt install -y mysql-server mysql-client
# sudo systemctl enable mysql
# sudo systemctl start mysql
# sudo mysql_secure_installation

# ----------------------------------------------------------------

sudo mysql # 连接到 mysql 服务器 

# -- 连接mysql服务器后需要执行两条命令
# -- 修改root登录通过密码验证,并设置root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# -- 刷新权限表
FLUSH PRIVILEGES;

use mysql;
# -- 更新root用户可以远程在任何机器上登录
update user set host='%' where user='root' and host='localhost'; 
# -- 刷新权限表,使配置生效。注意:此时就要刷新一下权限表
flush privileges; 
#-- all on 表示所有权限;% 表示通配所有的host 可以远程访问。
grant all on *.* to 'root'@'%';
#-- 再次刷新权限表
flush privileges;
exit

# ----------------------------------------------------------------

# 登录 MySQL
mysql -u root -p

# 创建redmine数据库和用户
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

配置 Redmine 的数据库配置文件:

cp config/database.yml.example config/database.yml
nano config/database.yml

在文件中找到 production 部分并修改以下配置:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "my_password"
  encoding: utf8mb4

换源

gem sources --remove https://rubygems.org/ 

gem sources --add https://gems.ruby-china.com/
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/

# 查看一下修改
gem sources -l

# 修改 bundle 配置
bundle config mirror.https://rubygems.org https://gems.ruby-china.com
# 或
bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems

安装 Redmine 的依赖包:

cd /var/www/redmine

# 解决 bundler install 没有权限的问题
sudo chown -R liuqz:liuqz /var/lib/gems/
sudo chown -R liuqz:liuqz /usr/local/bin

bundle config set --local without 'development test rmagick'
bundle install
# OR
bundle install --verbose

react-native工程执行bundler install挂死或超时问题
国内使用bundler install等命令时,经常出现卡住或响应慢的现象,替换为国内源即可解决问题

如何修复在 ubuntu 上安装 rails 项目包时出现的权限错误
chown -R l:l /usr/local/bin
# OR
bundle config path <path>

如何修复在 ubuntu 上安装 rails 项目包时出现的权限错误?
使用 bundler 2.4.x 的 Bundler::PermissionError 写入错误

生成 Session 存储密钥:

bundle exec rake generate_secret_token

或者,您可以将此秘密存储在 config/secrets.yml 中:
http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

创建数据库架构对象

通过在应用程序根目录下运行以下命令来创建数据库结构:

RAILS_ENV=production bundle exec rake db:migrate

数据库默认数据集

RAILS_ENV=production bundle exec rake redmine:load_default_data
# 选择 zh 中文
# OR
RAILS_ENV=production REDMINE_LANG=fr bundle exec rake redmine:load_default_data

运行

bundle exec rails server -e production
# OR
bundle exec rails server -e production  -b 0.0.0.0
# OR
nohup bundle exec rails server -e production -b 0.0.0.0 -p 3000 &

端口转发

netstat -ano | findstr :3000
netsh interface portproxy show v4tov4  

netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=172.23.244.22 protocol=tcp

netsh interface portproxy add v4tov4 listenport=5244 listenaddress=0.0.0.0 connectport=5244 connectaddress=172.19.221.125 protocol=tcp

vitualbox NAT模式多虚拟机网络配置

Windows 上为 WSL2 设置端口转发,实现局域网访问
如何转发 wsl 的应用端口

防火墙
高级安全 Window Defender 防火墙,入站规则,开放 3000 端口

   
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/900013.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 基于 poi 和 itextpdf 实现 excel 转 pdf

目录 问题 实现思路 pom Excel2PDFUtil Excel2PDFUtilTest 输出结果 问题 工作中遇到一个需求&#xff0c;需要实现 excel 文件的预览&#xff0c;实现的思路就是将 excel 转成 pdf 文件&#xff0c;上传到文件服务器上得到文件地址&#xff0c;预览时只需要返回 pdf 预…

Uni-App-02

条件编译 条件编译概念 不同的运行平台终归有些专有的特性&#xff0c;无法实现跨平台完全兼容&#xff0c;例如&#xff1a;微信小程序导航栏右上角的关闭图标。 uni-app提供了一种“条件编译”机制&#xff0c;可以针对特定的平台编译执行特定的代码&#xff0c;否则不执行。…

[JAVAEE] 线程安全的案例(一)-单例模式

目录 一. 单例模式 二. 单例模式的使用时机 三. 单例模式的关键代码 四. 单例模式的几种实现方式 4.1 饿汉方式(急) 4.2 懒汉模式(缓) a. 解决原子性的问题 b. 解决程序运行效率低下的问题 c. 解决指令重排序的问题(其次是为了解决内存可见性的问题) 五. 总结 一. …

【大模型实战篇】大模型分词算法BPE(Byte-Pair Encoding tokenization)及代码示例

词元化是针对自然语言处理任务的数据预处理中一个重要步骤&#xff0c;目的是将原始文本切分成模型可以识别和处理的词元序列。在大模型训练任务中&#xff0c;就是作为大模型的输入。传统的自然语言处理方法&#xff0c;如基于条件随机场的序列标注&#xff0c;主要采用基于词…

Nest.js 实战 (十五):前后端分离项目部署的最佳实践

☘️ 前言 本项目是一个采用现代前端框架 Vue3 与后端 Node.js 框架 Nest.js 实现的前后端分离架构的应用。Vue3 提供了高性能的前端组件化解决方案&#xff0c;而 Nest.js 则利用 TypeScript 带来的类型安全和模块化优势构建了一个健壮的服务端应用。通过这种技术栈组合&…

phpstorm中使用FTP功能和自动上传配置介绍

phpstorm中使用FTP功能和自动上传配置介绍 一、引言 PHPStorm 是一款强大的 PHP IDE&#xff0c;它提供了许多便捷的功能来提高开发效率。其中&#xff0c;内置的 FTP 功能允许开发者直接在 IDE 中上传文件到服务器&#xff0c;而自动上传配置则可以进一步简化这一过程。本文…

ISUP协议视频平台EasyCVR私有化视频平台视频汇聚/存储系统怎么选?

一、EasyCVR视频监控存储系统的核心优势 TSINGSEE青犀EasyCVR视频汇聚平台是一个具备高度集成化、智能化的视频监控汇聚管理平台&#xff0c;拥有远程视频监控、录像、存储、回放、语音对讲、云台控制、告警等多项核心功能。该系统采用先进的网络传输技术&#xff0c;支持高清…

Servlet(三)-------Cookie和session

一.Cookie和Session Cookie和Session都是用于在Web应用中跟踪用户状态的技术。Cookie是存储在用户浏览器中的小文本文件&#xff0c;由服务器发送给浏览器。当用户再次访问同一网站时&#xff0c;浏览器会把Cookie信息发送回服务器。例如&#xff0c;网站可以利用Cookie记住用…

轻松掌握Win10录屏技巧:四大神器推荐!

在Win10系统中&#xff0c;录屏功能的应用越来越广泛&#xff0c;无论是用于工作演示、在线教学还是游戏分享&#xff0c;一款好用的录屏软件都是必不可少的。今天&#xff0c;我们将推荐四款录屏工具&#xff01; 福昕录屏大师 直达链接&#xff1a;www.foxitsoftware.cn/RE…

字符串大小的比较

1.字符串中每一个字符都对应一个码值&#xff0c;字符串比较大小时从第一个字符开始比较出现结果时输出 如下图所示&#xff1a;

力扣之613.直线上的最近距离

文章目录 1. 613.直线上的最近距离1.1 题意1.2 准备数据1.3 题解1.4 结果截图 1. 613.直线上的最近距离 1.1 题意 表&#xff1a; Point ----------------- | Column Name | Type | ----------------- | x | int | ----------------- 在SQL中&#xff0c;x是该表的主键列。 …

《计算机视觉》—— 换脸

效果如下&#xff1a; 完整代码&#xff1a; import cv2 import dlib import numpy as npJAW_POINTS list(range(0, 17)) RIGHT_BROW_POINTS list(range(17, 22)) LEFT_BROW_POINTS list(range(22, 27)) NOSE_POINTS list(range(27, 35)) RIGHT_EYE_POINTS list(range(36…

PON架构(全光网络)

目前组网架构 世界上有一种最快的速度又是光&#xff0c;以前传统以太网络规划满足不了现在的需求。 有线网 无线网 全光网络方案 场景 全光网络分类 以太全光网络 PON&#xff08;Pas-sive-Optical Network 无源光网络&#xff09; 再典型的中大型高校网络中 推荐万兆入…

电脑技巧:Rufus——最佳USB启动盘制作工具指南

目录 一、功能强大&#xff0c;兼容性广泛 二、界面友好&#xff0c;操作简便 三、快速高效&#xff0c;高度可定制 四、安全可靠&#xff0c;社区活跃 在日常的电脑使用中&#xff0c;无论是为了安装操作系统、修复系统故障还是进行其他需要可引导媒体的任务&#xff0c;拥…

目前最新 Reflector V11.1.0.2067版本 .NET 反编译软件

目前最新 Reflector V11.1.0.2067版本 .NET 反编译软件 一、简介二、.NET Reflector的主要功能包括&#xff1a;1. **反编译**: 反编译是将已编译的.NET程序集&#xff08;如.dll或.exe文件&#xff09;转换回可读的源代码。这使得开发者可以查看和学习第三方库的实现细节&…

【分立元件】电阻的额定电压和最高电压

在文章:【分立元件】贴片电阻的额定功率中我们讲到使用电阻器时,不仅要注意额定功率,还要注意电压相关的一些项目。 本文我们将对与电阻基本参数关联的额定电压和元件最高电压这两个术语及其定义(包括它们之间的关系)进行解说。 额定电压 如下所示国巨片式电阻规…

排序算法 —— 希尔排序

目录 1.希尔排序的由来 2.希尔排序的思想 3.希尔排序的实现 实现分析 实现代码 代码优化 4.希尔排序的总结 1.希尔排序的由来 希尔排序是对直接插入排序的优化。在直接插入排序算法中&#xff0c;如果数据是有序or接近有序的时候&#xff0c;直接插入排序算法的时间复杂…

跨时钟域处理(单bit)_2024年10月21日

慢时钟域同步到快时钟域&#xff1a;打两拍 在快时钟域clk下对慢时钟域信号进行打两拍&#xff08;亚稳态概率很低&#xff09; 脉冲宽度改变&#xff0c;但不影响同步结果 快时钟域同步到慢时钟域&#xff08;两种方法&#xff09; ① 脉冲展宽同步 在快时钟域clk下对快时…

LeetCode199. 二叉树的右视图(2024秋季每日一题 47)

给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: [] 提示:…

软件压力测试如何进行?深圳软件测试机构分享

软件压力测试是每个重要软件测试工作的一部分&#xff0c;是一种基本的软件质量保证行为。压力测试不是在常规条件下运行手动或自动测试&#xff0c;而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网…