当前位置: 首页 > news >正文

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 -lsudo gem install bundler
# sudo gem install rails
# sudo gem install rails -v 6.1.7.8bundle 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: mysql2database: redminehost: localhostusername: redminepassword: "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/binbundle 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=tcpnetsh 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 端口

   
 

相关文章:

Ubuntu 上安装 Redmine 5.1 指南

文章目录 官网安装文档&#xff1a;命令步骤相关介绍GemRubyRailsBundler 安装 Redmine更新系统包列表和软件包&#xff1a;安装必要的依赖&#xff1a;安装 Ruby&#xff1a;安装 bundler下载 Redmine 源代码&#xff1a;安装 MySQL配置 Redmine 的数据库配置文件&#xff1a;…...

从变量的角度理解 Hooks , 变得更简单了

从变量角度理解Hooks 在React的世界里&#xff0c;Hooks的引入为函数式组件带来了前所未有的灵活性和能力。它们让我们得以完全摆脱class式的写法&#xff0c;在函数式组件中完成生命周期管理、状态管理、逻辑复用等几乎全部组件开发工作。这次&#xff0c;我们就从变量的角度…...

LabVIEW Modbus通讯稳定性提升

在LabVIEW开发Modbus通讯程序时&#xff0c;通讯不稳定是一个常见问题&#xff0c;可能导致数据丢失、延迟或错误。为了确保通讯的可靠性&#xff0c;可以从多个角度进行优化&#xff0c;以下是一些有效的解决方案&#xff0c;结合实际案例进行分析。 1. 优化通讯参数设置 通讯…...

(8) cuda分析工具

文章目录 Nvidia GPU性能分析工具Nsight SystemNvidia GPU性能分析工具Nsight System Nvidia GPU性能分析工具Nsight System NVIDIA Nsight Systems是一个系统级的性能分析工具&#xff0c;用于分析和优化整个CUDA应用程序或系统的性能。它可以提供对应用程序整体性能的全面见…...

C语言 | Leetcode C语言题解之第517题超级洗衣机

题目&#xff1a; 题解&#xff1a; int findMinMoves(int* machines, int machinesSize){int sum0;for(int i0;i<machinesSize;i){summachines[i];}if(sum%machinesSize!0){return -1;}int psum/machinesSize;int ans0;int cur0;for(int i0;i<machinesSize;i){cur(mac…...

Java多线程编程基础

目录 编写第一个多线程程序 1. 方式一 : 继承Thread类, 重写run方法 2. 方式二: 实现Runnable接口, 重写run方法 3. 方式三: 使用Lambda表达式 [匿名内部类] [Lambda表达式] 在上个文章中, 我们了解了进程和线程的相关概念. 那么, 在Java中, 我们如何进行多线程编程呢? …...

刷代随有感(134):单调栈——下一个更大元素I(难点涉及哈希表与单调栈的结合)

单调栈处理的是下标&#xff01; 题干&#xff1a; 代码&#xff1a; class Solution { public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {stack<int>ddst;unordered_map<int,int>umap;vector<int…...

Linux云计算 |【第五阶段】CLOUD-DAY5

主要内容&#xff1a; 容器的镜像编排&#xff0c;commit简单镜像创建&#xff0c;Dockerfile制作服务镜像&#xff08;语法、创建镜像&#xff09;、创建复杂镜像&#xff08;Docker微服务架构、示例&#xff1a;NGINXPHP&#xff09;、私有仓库 一、简单镜像创建 1、自定义…...

被上传文件于后端的命名策略

上一篇博客我们了解了前端上传的文件资源应该存放在后端项目中的什么位置&#xff0c;那么随之而来的另一个问题——我们应该如何为上传的文件命名呢&#xff1f;往往直接采用原文件名并不稳妥&#xff0c;会导致命名冲突、文件冲突、数据库管理冲突等多种问题&#xff0c;下面…...

哈希表 算法专题

哈希表简介 是什么 存储数据的容器有啥用? "快速"查找某个元素什么时候用哈希表 频繁地查找某个数(有序用二分)怎么用哈希表 容器用数组模拟 字符串中的字符 范围比较小的数 一. 两数之和 两数之和 class Solution {public int[] twoSum(int[] nums, int targe…...

unity3d————[HideInInspector]

在Unity3D中&#xff0c;[HideInInspector]是一个属性修饰符&#xff0c;它的主要作用是在Unity的Inspector窗口中隐藏变量或属性。以下是关于[HideInInspector]的详细解释和作用&#xff1a; 作用 隐藏变量或属性&#xff1a;当你在脚本中使用[HideInInspector]修饰符时&…...

Soanrquber集成Gitlab 之 导入Gitlab项目

集成Gitlab 之 导入Gitlab项目 说明&#xff1a; Sonarquber里面的项目&#xff0c;顺便设置&#xff0c;只要在集成CI的时候&#xff0c;使用这个项目的项目标识即可。 当然项目名称一一对应是最好的了&#xff0c;所以这里讲导入Gitlab的项目&#xff0c;项目名称一一对应&…...

论区块链技术及应用

引言 区块链技术作为一种革命性的创新&#xff0c;近年来在全球范围内得到了广泛关注和应用。其去中心化、透明性和不可篡改的特性&#xff0c;使其在多个领域展现出了巨大的潜力。从金融到物联网&#xff0c;从医疗管理到政务监管&#xff0c;区块链正在改变我们处理信息和进…...

GPT避坑指南:如何辨别逆向、AZ、OpenAI官转

市面上有些说自己是官转&#xff0c;一刀只需要1块甚至几毛钱&#xff0c;并声称官方倍率的&#xff0c;很大可能就是使用的是 逆向或Azure。 如何鉴别逆向 逆向的种类很多&#xff0c;主要分为3类 逆向不知名A| 镜像站或偷的 key。成本约等于0&#xff0c;调用聊天数据可能在…...

Qt 文本文件读写与保存

Qt 文本文件读写与保存 开发工具&#xff1a;VS2013 QT5.8 设计UI界面&#xff0c;如下图所示 sample7_1QFile.h 头文件&#xff1a; #pragma once#include <QtWidgets/QMainWindow> #include "ui_sample7_1QFile.h"class sample7_1QFile : public QMainWin…...

Linux基础环境搭建(CentOS7)- 安装Scala和Spark

#Linux基础环境搭建&#xff08;CentOS7&#xff09;- 安装Scala和Spark Linux基础环境搭建&#xff08;CentOS7&#xff09;- 安装Scala和Spark 大家注意以下的环境搭建版本号&#xff0c;如果版本不匹配有可能出现问题&#xff01;&#xff08;spark不要下2.4版本的 会报错…...

SpringBoot 下的Excel文件损坏与内容乱码问题

序言 随着打包部署的方式的改变&#xff0c;原本正常运行的代码可能带来一些新的问题&#xff0c;比如我们现在使用SpringBoot 的方式生成Jar包直接运行&#xff0c;就会对我们再在Resource下的Excel文件产生影响&#xff0c;导入与预期不符的情况发生cuiyaonan2000163.com 比…...

官宣下代GPU存在缺陷,50系显卡或将迎来涨价

如果说 AMD 在 Ryzen 3000 系列还是和 intel 在 CPU 方面棋差一着的话&#xff0c;Ryzen 5000 系列就是打了个漂亮的翻身仗了。 凭借先进的 7nm 工艺制程和全新架构&#xff0c;让后来 intel 急忙推出「14nm」的 11 代酷睿也难以望其项背。 直到 intel 12 代发布的时候&#xf…...

使用pytorch实现LSTM预测交通流

原始数据&#xff1a; 免费可下载原始参考数据 预测结果图&#xff1a; 根据测试数据test_data的真实值real_flow&#xff0c;与模型根据测试数据得到的输出结果pre_flow 完整源码&#xff1a; #!/usr/bin/env python # _*_ coding: utf-8 _*_import pandas as pd import nu…...

C/C++(八)C++11

目录 一、C11的简介 二、万能引用与完美转发 1、万能引用&#xff1a;模板中的 && 引用 2、完美转发&#xff1a;保持万能引用左右值属性的解决方案 三、可变参数模板 1、可变参数模板的基本使用 2、push 系列和 emplace 系列的区别 四、lambda表达式&#xf…...

使用three.js 实现 自定义绘制平面的效果

使用three.js 实现 自定义绘制平面的效果 预览 import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls.jsconst box document.getElementById(box)const scene new THREE.Scene()const camera new THREE.PerspectiveCam…...

玩转Docker | 使用Docker部署捕鱼网页小游戏

玩转Docker | 使用Docker部署捕鱼网页小游戏 一、项目介绍项目简介项目预览二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署捕鱼网页小游戏下载镜像创建容器检查容器状态下载项目内容查看服务监听端口安全设置四、访问捕鱼网页小游戏五、总结一、项目介绍…...

第2章 Android App开发基础

第 2 章 Android App开发基础 bilibili学习地址 github代码地址 本章介绍基于Android系统的App开发常识&#xff0c;包括以下几个方面&#xff1a;App开发与其他软件开发有什么不一 样&#xff0c;App工程是怎样的组织结构又是怎样配置的&#xff0c;App开发的前后端分离设计…...

通过 SYSENTER/SYSEXIT指令来学习系统调用

SYSENTER指令—快速系统调用 指令格式没有什么重要的内容,只有opcode ,没有后面的其他字段 指令的作用: 执行快速调用到特权级别0的系统过程或例程。SYSENTER是SYSEXIT的配套指令。该指令经过优化&#xff0c;能够为从运行在特权级别3的用户代码到特权级别0的操作系统或执行过程…...

Nginx开发实战——网络通信(一)

文章目录 Nginx开发框架信号处理函数的进一步完善(避免僵尸子进程)(续&#xff09;ngx_signal.cxxngx_process_cycle.cxx 网络通信实战客户端和服务端1. 解析一个浏览器访问网页的过程2.客户端服务器角色规律总结 网络模型OSI 7层网络模型TCP/IP 4层模型3.TCP/IP的解释和比喻 最…...

w外链如何跳转微信小程序

要创建外链跳转微信小程序&#xff0c;主要有以下几种方法&#xff1a; 使用第三方工具生成跳转链接&#xff1a; 注册并登录第三方外链平台&#xff1a;例如 “W外链” 等工具。前往该平台的官方网站&#xff0c;使用手机号、邮箱等方式进行注册并登录账号。选择创建小程序外…...

获取平台Redis各项性能指标

业务场景 在XXXX项目中把A网的过车数据传到B网中&#xff0c;其中做了一个业务处理&#xff0c;就是如果因为网络或者其他原因导致把数据传到B网失败&#xff0c;就会把数据暂时先存到redis里&#xff0c;并且执行定时任务重新发送失败的。 问题 不过现场的情况比较不稳定。出…...

STM32 HAL 点灯

首先从点灯开始 完整函数如下&#xff1a; #include "led.h" #include "sys.h"//包含了stm32f1xx.h&#xff08;包含各种寄存器定义、中断向量定义、常量定义等&#xff09;//初始化GPIO口 void led_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开…...

【http作业】

1.关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld #关闭防火墙 [rootlocalhost ~]# setenforce 0 2.下载nginx包 [rootlocalhost ~]# mount /dev/sr0 /mnt #挂载目录 [rootlocalhost ~]# yum install nginx -y #下载nginx包 3.增加多条端口 [rootlocalhost ~]# n…...

WPF+MVVM案例实战(十一)- 环形进度条实现

文章目录 1、运行效果2、功能实现1、文件创建与代码实现2、角度转换器实现3、命名空间引用3、源代码下载1、运行效果 2、功能实现 1、文件创建与代码实现 打开 Wpf_Examples 项目,在Views 文件夹下创建 CircularProgressBar.xaml 窗体文件。 CircularProgressBar.xaml 代码实…...

网站被k换域名 老域名能不能跳转/手机网站制作软件

具体分析见算法导论第十五章&#xff0c;代码如下&#xff1a; #include<iostream> using namespace std; //p为矩阵链&#xff0c;p[0],p[1]代表第一个矩阵&#xff0c;p[1],p[2]代表第二个矩阵&#xff0c;length为p的长度 //所以如果有六个矩阵&#xff0c;length7&a…...

wordpress 主页布局/nba赛季排名

RCF的使用教程 RCF(Remote Call Framework)是一个使用C编写的RPC框架&#xff0c;在底层RCF支持多种传输实现方式(transport implementations). 包括TCP&#xff0c;UDP&#xff0c;多播&#xff0c;组播&#xff0c;win32命名管道和unix domain socket。下面我以一个例子讲述…...

品牌网站源码asp/营销培训讲师

以前写的做个总结&#xff0c;留念 1&#xff0c;MBRBOOTKIT –鬼影?0?3鬼影系列?0?3特点&#xff1a;只支持XP 系统&#xff0c;基于国外的开源版本修改。?0?3从MBR里&#xff0c;挂中断13H,驻留高端内存&#xff0c;挂NTLDR 加载&#xff0c;对NTOS的函数进行HOOK,在NT…...

Add-ons wordpress/google play官网下载

1. 什么是ORM? 对象-关系映射&#xff08;Object-Relational Mapping&#xff0c;简称ORM&#xff09;&#xff0c;面向对象的开发方法是当今企业级应用开发环境中的主流开发方法&#xff0c;关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业…...

wordpress 加入js/seo免费课程视频

此博文通过MATLAB APP Design实现对学生成绩的处理,具体的功能包括读取表格数据、添加学生数据、计算总成绩、成绩排序+以及表格的保存。 一、APP 界面设计展示 1. 在画布中拖入面板、表格和四个按钮,布局如下。将面板的title写为“学生成绩计算器”并居中,将四个按钮的t…...

网站建设公司做前端/网站建站在线制作

/** 【需求】服务端接收客户端发送过来的数据&#xff0c;并打印在控制台上。* * 建立TCP服务端的思路&#xff1a;* * 1.创建服务端Socket服务&#xff0c;通过ServerSocket。* * 2.服务端必须对外提供一个端口&#xff0c;否则客户端无法连接。* &#xff08;连接服务器&…...