自己实操linux安装redmine

前言

整整一天都在安装这个东西

看了太多的文章,综合很多人的和自己的操作记录一下

也希望像这种安装类文档是自己安装过再发布给别人参考

下面是我安装好多遍确认没有什么问题了,总结下的内容

当然有不完善的还请留言指出,我也是头一次安装这个!

首先先确认安装环境

我是用自己的虚拟机搭建的, 建议新手也先试一下用虚拟机搭建,你肯定会遇到很多很多的问题的,关键你还很难在国内找到正确的解决方式;

我也是第一次安装这玩意,之前只是在公司在用这个;以为还是很简单的,但是这个活活搭建了很多遍, 参考的文档相当多, 当然也是踩了很多的坑!

这篇文章可能在你看来也有很多坑, 但是我是实实在在自己操刀安装了一遍; 如果你已经确认了你的环境和各方面和我的相同, 那我认为你应该是可以安装完成的!

安装环境

安装环境 版本号 备注
centOS7 CentOS Linux release 7.9.2009 (Core) 看版本号的命令 : cat /etc/system-release
MySQL mysql-8.0.11 也可以安装5.7或者5.6的,没有强制要求
Ruby ruby 3.0.3 ruby的版本很重要,这个关系到redmine是否兼容
RubyGems 3.3.3 后期安装如果出现版本不对的情况再重装
Rails Rails 4.2 同上
redmine 4.1 这个大版本要控制好
nginx 1.21.4 没什么要求,就是为了配置redmine

注意 : ruby的版本和redmine版本是需要注意的,不然会导致不能安装成功!

Ruby和redmine对应版本

这个不知道从哪弄得,这个是从别人那里抄来的,借鉴一下就行;

Redmine version Supported Ruby versions Rails version used
4.1 (upcoming) Ruby 2.3, 2.4, 2.5, 2.6 Rails 5.2
4.0 Ruby 2.2 (2.2.2 and later), 2.3, 2.4, 2.5, 2.6 Rails 5.2
3.4 Ruby 1.9.3, 2.0.0, 2.1, 2.2, 2.3, 2.4 Rails 4.2

安装依赖和配置host

这一步尤为重要,我看了很多的文章,有的有,有的没有

最后测试下来, 先安装会让后面的安装更加顺利一点, 绝对起到先发制人的效果!

[root@localhost ~]# yum -y install gcc gcc-c++ make automake autoconf curl-devel openssl openssl-devel zlib-devel ImageMagick-devel 

配置host

为什么要配置host呢?

慢,慢的离谱!

你要不配也没事, 就是慢的MMP

当然配置了好像也快不了太多, 但是绝对比不配强

这时候我写这篇文章是在公司里, 我们网速还是可以的,带宽是达到1000M的,就这还是下载死慢…

[root@localhost ~]# vim /etc/hosts

199.232.4.133 raw.githubusercontent.com
#github
140.82.114.4 github.com
199.232.69.194 github.global.ssl.fastly.net
199.232.68.133 raw.githubusercontent.com

然后重启网卡
sudo /etc/init.d/network restart

大型卸载现场

为什么这一步要放在前面呢?

主要目的就两个:

​ 第一 我安装次数太多了,会有很多安装包和安装目录什么的! 这时候你再去安装, 没有问题就见鬼了! 所以我是演示一下卸载重装的步骤, 还原最初环境!

​ 第二 就是保证一下你们安装的系统环境是不是和我一样, 不然遇到问题也该MMP了

请注意我的操作路径

卸载清除Ruby 和 redmine相关的目录(使用的是root用户) :

[root@localhost ~]# su - root 
上一次登录:三 12月 29 11:20:07 CST 2021从 192.168.0.147pts/0 上
[root@localhost ~]# 

[root@localhost ~]# find / -name ruby
/usr/bin/ruby
/usr/lib/gems/ruby
/usr/lib64/ruby
/usr/lib64/gems/ruby
/usr/share/ruby
/usr/share/swig/2.0.10/ruby
/usr/local/rvm/src/rvm/gemsets/ruby
/usr/local/rvm/src/rvm/patches/ruby
...
[root@localhost ~]# find / -name ruby | xargs rm -rf

[root@localhost ~]# find / -name gem
/usr/bin/gem
/usr/share/locale/gem
/usr/local/rvm/src/rubygems-3.0.9/bin/gem
/usr/local/rvm/src/ruby-2.7.3/bin/gem
...
[root@localhost ~]# find / -name gem | xargs rm -rf


[root@localhost ~]# find / -name rails
/root/.bundle/cache/compact_index/rubygems.org.443.29b0360b937aa4d161703e6160654e47/info/rails
/usr/local/rvm/src/rvm/scripts/extras/rails
/usr/local/rvm/gems/ruby-2.7.3/bin/rails
/usr/local/rvm/gems/ruby-2.7.3/wrappers/rails
/usr/local/rvm/gems/ruby-2.7.3/gems/rails-dom-testing-2.0.3/lib/rails
....
[root@localhost ~]# find / -name rails | xargs rm -rf


[root@localhost ~]# find / -name rvm
/usr/local/rvm
/usr/local/rvm/src/rvm
/usr/local/rvm/src/rvm/bin/rvm
/usr/local/rvm/src/rvm/lib/rvm
...
[root@localhost ~]# find / -name rvm | xargs rm -rf


[root@localhost ~]# find / -name redmine
/usr/local/mysql/data/redmine
/usr/local/redmine
/usr/local/redmine/test/integration/lib/redmine
...
[root@localhost ~]# find / -name redmine | xargs rm -rf

检查 :

这下子相关的全部都删除了

[root@localhost ~]# ruby -v
bash: ruby: 未找到命令...
[root@localhost ~]# gem -v
bash: gem: 未找到命令...
[root@localhost ~]# rails -v
bash: rails: 未找到命令...
[root@localhost ~]# find / -name ruby
[root@localhost ~]# find / -name gem
[root@localhost ~]# find / -name rvm
[root@localhost ~]# find / -name rails
[root@localhost ~]# find / -name redmine

卸载重装MySQL, 新环境的就卸载系统自带的就行了, 不是新环境的慎重考虑!

卸载系统自带的Mariadb(如果有的话)

首先先查询已安装的Mariadb

[root@localhost ~]# rpm -qa | grep mariadb
mariadb-5.5.68-1.el7.x86_64
mariadb-devel-5.5.68-1.el7.x86_64
mariadb-server-5.5.68-1.el7.x86_64
mariadb-libs-5.5.68-1.el7.x86_64

有的话全部卸载掉 : 
[root@localhost ~]# yum -y remove mariadb-5.5.68-1.el7.x86_64 mariadb-devel-5.5.68-1.el7.x86_64 mariadb-server-5.5.68-1.el7.x86_64 mariadb-libs-5.5.68-1.el7.x86_64

然后这是卸载已经安装MySQL了

检查系统是否安装了MySQL

[root@localhost /]# rpm -qa|grep mysql

img

如果已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令

# mysql 5.7
[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

# MySQL 8.0
[root@localhost ~]# rpm -e --nodeps mysql-8.0.11-linux-glibc2.12-x86_64

再次执行查询命令,查看是否删除

[root@localhost /]# rpm -qa | grep mysql

删除MySQL相关的文件夹

#查询所有MySQL对应的文件夹
whereis mysql
#删除相关目录或文件(要删除所有的文件目录)
rm -rf /usr/bin/mysql /usr/include/mysql 

#查询关于mysql的文件目录
find / -name mysql
#删除相关目录或文件(要删除所有的文件目录)
find / -name mysql | xargs rm -rf

#验证是否删除完成
whereis mysql
find / -name mysql

创建用户

因为安装gem依赖的时候会有很多都不能够使用root权限的

bundle install的安装要在非root目录下面

创建一个www用户
[root@localhost ~]# id www >/dev/null 2>&1 || useradd www

赋予管理员权限
[root@localhost ~]# echo "www    ALL=(ALL)       ALL" >>/etc/sudoers

修改www用户密码 
[root@localhost ~]# passwd www
更改用户 www 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# 

拓展

查看当前操作的用户 :

#要查看当前登录用户的用户名
whoami 
#表示打开当前伪终端的用户的用户名
who am i 
#当前用户的登陆时间
who mom likes

修改用户密码 :

首先切换到root用户下 : 
[root@localhost ~]# su - root 

[root@localhost ~]# passwd www
Changing password for user www.
New password: 输入密码
BAD PASSWORD: The password is shorter than 7 characters
Retype new password: 确认密码

删除用户 :

如果一个用户的账号不再使用,可以从系统中删除。
删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
[root@localhost ~]# vim /etc/passwd
或者
userdel 选项 用户名
[root@localhost ~]# userdel -r www

linux安装MySQL

上述教你卸载了MySQL, 自然是要教你怎么安装了, 不然感觉写这个就一点不地道了!

容易造成会的人不想看, 不会的人看不懂…

MySQL比较繁琐, 要有点耐心! 现在我安装习惯了,按照这个我三分钟不要就搞定了,纯傻瓜式操作!

如果非首次安装,请按照上述方式卸载 !

MySQL官网链接 :

https://downloads.mysql.com/archives/community/

下载命令:

#mysql 8.0
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
#mysql 5.7
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

检查mysql用户组和用户是否存在,如果没有,则创建

[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
[root@localhost /]# 
    
#删除用户组和用户
[root@localhost local]# userdel mysql

安装Mysql :

1、在执行wget命令的目录下或你的上传目录下找到Mysql安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
执行解压命令:

[root@localhost ~]# tar zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# mv -f mysql-8.0.11-linux-glibc2.12-x86_64 /usr/local/mysql
    
同时新建`/usr/local/mysql/data`⽬录,后续备⽤;
[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# mkdir data

更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

#进入 mysql 目录。下面的命令必须在 mysql 目录下执行。
cd /usr/local/mysql

[root@localhost mysql]# chown -R mysql:mysql ./

准备MySQL配置文件

新建/etc/my.cnf

写入简化配置 :

[root@localhost mysql]# vim /etc/my.cnf

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
# 设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M


#skip-grant-tables

lower_case_table_names:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:
character_set_server:设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;

同时使⽤如下命令创建 /var/lib/mysql⽬录,并修改权限:

[root@localhost ~]# mkdir /var/lib/mysql
[root@localhost ~]# chmod 777 /var/lib/mysql

正式开始安装MySQL :

编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

[root@localhost mysql]# cd /usr/local/mysql/

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

2021-12-13T06:53:25.004274Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: m/Z7Xi
X4r0we

生成的这串为临时root登录密码;

启动MySQL 显示如下结果,说明数据库安装并可以正常启动

[root@localhost mysql]# service mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
 SUCCESS! 

异常情况 :

如果出现如下提示信息

Starting MySQL... ERROR! The server quit without updating PID file

查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令

#查询服务
ps -ef|grep mysql 
ps -ef|grep -v grep
#结束进程
kill -9 PID

#启动服务
sudo /usr/local/mysql/support-files/mysql.server start

img

设置软链接, 重启mysql服务

[root@localhost /]#  ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
[root@localhost /]#  ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /]#  sudo service mysql restart

首次登录mysql,修改密码(密码为生成的临时密码)

#第一种修改方式(修改密码的方式会根据安装的版本不同sql语句不同)
[root@localhost /]#  mysql -u root -p
Enter password:上面生成的临时密码
mysql>SET PASSWORD FOR 'root'@'localhost' = 'root';

如果你刚才没有记临时密码, 那么你用这种方式也是可以修改密码的

#第二种修改方式

#进入mysql配置文件
vim /etc/my.cnf

#在配置文件下添加这个配置
skip-grant-tables
    
#重启mysql
service mysql restart

#通过命令登录mysql,这时的mysql没有密码,遇到Enter password:直接进去即可
mysql -u root -p

#选择你现在的数据库
use mysql;

#修改root的密码,authentication_string = ’ ’ 意思是将你的密码设置空,等下输入同样不用输入密码直接进入mysql服务
update user set authentication_string = '' where user = 'root';

#再次打开my.cnf配置文件,删除刚才添加的配置,去掉或者注释掉下面这行
skip-grant-tables

#重启mysql服务
service mysql restart

#进入mysql服务修改密码
mysql -u root -p

#更新mysql数据库密码
ALTER USER USER() IDENTIFIED BY 'root';

注意:输入密码时,Enter password 后面不会有任何显示,此时实际是输入成功的,输入完密码后直接回车即可。或使用:mysql -u root -p 密码 ,回车后,即可直接进入数据库

开放远程连接 :

mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
mysql>quit;

设置开机自动启动 :

将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
修改 `/etc/init.d/mysqld` ,修改其 `basedir` 和 `datadir` 为实际对应⽬录:  
[root@localhost mysql]# vim /etc/init.d/mysqld

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

⾸先增加 mysqld 服务控制脚本执⾏权限:
[root@localhost mysql]# chmod +x /etc/init.d/mysqld

同时将 mysqld 服务加⼊到系统服务:
[root@localhost mysql]# chkconfig --add mysqld

最后检查 mysqld 服务是否已经⽣效即可(2,3,4,5为开即可)[root@localhost mysql]# chkconfig --list mysqld

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

mysqld         	0:1:2:3:4:5:6:关


这样就表明 mysqld 服务已经⽣效了,在2345运⾏级别随系统启动⽽⾃动启动,以后可以直接使
⽤ service 命令控制 mysql 的启停。

MYSQLBIN⽬录加⼊ PATH环境变量

这样⽅便以后在任意⽬录上都可以使⽤ mysql 提供的命令。

编辑 ~/.bash_profile ⽂件,在⽂件末尾处追加如下信息 :

[root@localhost mysql]# vim ~/.bash_profile

#MySQL
export PATH=$PATH:/usr/local/mysql/bin

最后执⾏如下命令使环境变量⽣效 : 
[root@localhost mysql]# source ~/.bash_profile

至此,mysql数据库安装已经完成。

安装RVM软件

参考链接 :

https://blog.csdn.net/weixin_42165041/article/details/105808771

RVM称作Ruby Version Management,用于管理RUBY的版本功能,可以实现自动安装。

安装一些常用依赖 :

[liu@localhost ~]$ yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget curl

设置host :

[root@localhost ~]# vim /etc/hosts

199.232.4.133 raw.githubusercontent.com
#github
140.82.114.4 github.com
199.232.69.194 github.global.ssl.fastly.net
199.232.68.133 raw.githubusercontent.com

然后重启网卡
sudo /etc/init.d/network restart

执行命令 :

[liu@localhost ~]$ curl -sSL https://rvm.io/mpapis.asc | gpg --import - 
[liu@localhost ~]$ curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import - 

执行脚本下载安装rvm :

这一步会很慢

[liu@localhost ~]$ curl -L get.rvm.io | bash -s stable

使配置文件生效 : 
[liu@localhost ~]$ source /etc/profile.d/rvm.sh

  * To start using RVM you need to run `source /etc/profile.d/rvm.sh`
 

检查 :

[liu@localhost ~]$ sudo find / -name rvm -print
/usr/local/rvm
/usr/local/rvm/src/rvm
/usr/local/rvm/src/rvm/bin/rvm
/usr/local/rvm/src/rvm/lib/rvm
/usr/local/rvm/src/rvm/scripts/rvm
/usr/local/rvm/bin/rvm
/usr/local/rvm/lib/rvm
/usr/local/rvm/scripts/rvm

[root@localhost ~]# rvm -v
rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

下载RVM依赖包 :

[root@localhost ~]# rvm requirements
Checking requirements for centos.
Requirements installation successful.
[root@localhost ~]#

卸载RVM :

[root@localhost local]# rvm implode
[root@localhost ~]# find / -name rvm

安装ruby

建立gemset

[root@localhost ~]# rvm gemset create

指定ruby版本,会同时安装gems

[root@localhost ~]# rvm install 2.7.0

检查 :

[root@localhost ~]# ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
[root@localhost ~]# gem -v
3.1.2

查看目前使用的资源地址 :

[root@localhost rubygems]# gem source
*** CURRENT SOURCES ***

https://rubygems.org/
[root@localhost rubygems]#

Ruby 的默认源使用的是 cocoapods.org,国内访问这个网址有时候会有问题;

更新站点资源地址 :

移除默认源 : 
[root@localhost rubygems]# gem sources --remove https://rubygems.org/

添加新源 : 
[root@localhost rubygems]# gem sources -a https://mirrors.aliyun.com/rubygems/

看看是否更换成功 : 
[root@localhost rubygems]# gem source -l

通过gem安装bundler :

[root@localhost ~]# gem install bundler

通过gem安装rake :

[root@localhost ~]# gem install rake

通过gem安装rails :

[root@localhost ~]# gem install rails -v 4.2

拓展 :

更换gem版本

gem update --system 2.3.0

指定ruby版本

rvm 2.7.0 --default

指定rails版本

gem install rails -v 1.3.4

移除指定版本

rvm remove 2.5.0

卸载ruby :

[root@localhost ~]# yum -y remove ruby
[root@localhost ~]# ruby -v
bash: ruby: 未找到命令...
[root@localhost ~]# gem -v
bash: gem: 未找到命令...

[root@localhost ~]# find / -name ruby
/usr/lib64/ruby
/usr/share/ruby
/usr/share/swig/2.0.10/ruby
[root@localhost ~]# rm -rf /usr/lib64/ruby /usr/share/ruby /usr/share/swig/2.0.10/ruby

[root@localhost ~]# find / -name gem
/usr/share/locale/gem
[root@localhost ~]# rm -rf /usr/share/locale/gem

整合nginx

linux安装Nginx

​ 官网访问地址 :

http://nginx.org/en/download.html

资源下载链接 :
wget http://nginx.org/download/nginx-1.21.4.tar.gz

创建安装目录并解压 :

[root@localhost ~]# tar zxvf nginx-1.21.4.tar.gz
[root@localhost ~]# mv nginx-1.21.4 /usr/local/nginx
[root@localhost ~]# mkdir -p /application/nginx

安装passenger

passenger将会自动编译安装nginx,首先创建规范目录,并准备好nginx的源码,这里使用最新的nginx-1.21.4

使用gem安装passenger :

[root@localhost ~]# gem install passenger

使用passenger安装支持nginx的模块 :

[root@localhost ~]# passenger-install-nginx-module

选择 : 2

选择自己的nginx的源码位置 : /usr/local/nginx/

选择自己nginx的编译位置 : /application/nginx/

确认 yes


信息提示在/application/nginx/conf/nginx.conf的配置中添加下面的内容

The Nginx configuration file (/application/nginx/conf/nginx.conf)
must contain the correct configuration options in order for Phusion Passenger
to function correctly.


  http {
      ...
      passenger_root /usr/local/rvm/gems/ruby-2.7.0/gems/passenger-6.0.12;
      passenger_ruby /usr/local/rvm/gems/ruby-2.7.0/wrappers/ruby;
      ...
  }
   
另外在配置服务启动主页
server {
		....
		# 将主页改成redmine的
        location / {
            root   html/redmine/public;
            index  index.html index.htm;
            passenger_enabled on;
        }

安装Redmine

将redmine的安装下载到nginx的html目录下

然后你要注意我的操作目录是哪里,不然你会失败的

资源访问链接 :

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

[root@localhost html]# cd /application/nginx/html
资源下载 :
wget https://www.redmine.org/releases/redmine-4.2.0.tar.gz

解压并新建安装目录 :

[root@localhost html]# tar zxvf redmine-4.2.0.tar.gz 
[root@localhost html]# mv redmine-4.2.0 redmine

redmine数据库连接配置 :

[root@localhost ~]# cd /application/nginx/html/redmine/config
[root@localhost config]# cp database.yml.example database.yml
[root@localhost config]# vim database.yml

production:
  adapter: mysql2
  database: redmine
  host: localhost
  port: 3306
  username: redmine
  password: "root"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8

你改完了配置了,你就该给他创建数据库了;

登录MySQL,配置redmine数据库 :

[root@localhost ~]# mysql -u root -p
Enter password: 

#创建redmine数据库
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
Query OK, 1 row affected, 1 warning (0.07 sec)

#给redmine 用户一个使用密码
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.06 sec)

#给redmine授权
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Query OK, 0 rows affected, 1 warning (0.07 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> quit;

总会有人用到这一步的,你肯定会把密码忘了或者想重新改,那这一步就帮你解决了;

#修改redmine的密码为root,注意这里的信息要和上述的一致
mysql> ALTER USER 'redmine'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
Query OK, 0 rows affected (0.06 sec)

执行bundle install

注意要切换至非root用户执行bundle install
中间会有多次失败,提示没有写入的权限
直接将那个提示的目录使用root用户授予777权限
例如 : [root@localhost redmine]# chmod 777 /usr/local/rvm/gems/ruby-2.7.0/wrappers/bundle
然后再返回用户执行bundle install
[www@localhost redmine]# bundle install

说明数据库环境,这一步可能会遇到这样的问题,然后你按照下面的操作就行;

这个问题让我找了好久,最后是在Stack Overflow上有人写了
全网都是翻译这个人的话,这和没说没两样啊~
真心建议要么别写,要么写全了!浪费时间~
[root@localhost config]# rake db:migrate RAILS_ENV="production"
...
Sprockets::Railtie::ManifestNeededError: Expected to find a manifest file in `app/assets/config/manifest.js`
But did not, please create this file and use it to link any assets that need
to be rendered by your app:

Example:
  //= link_tree ../images
  //= link_directory ../javascripts .js
  //= link_directory ../stylesheets .css
and restart your server

For more information see: https://github.com/rails/sprockets/blob/070fc01947c111d35bb4c836e9bb71962a8e0595/UPGRADING.md#manifestjs
/usr/local/redmine/config/environment.rb:14:in `'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)

接着处理上述问题 :

上面这个问题是有提示的说明的
然后官网也有教怎么操作的
既然找不到这个文件我们就创建一下,注意创建这个文件夹的时候要创建在redmine的根目录下(你会发现他的根目录是有app这个目录的,你只需要接着往下创建assets/config/manifest.js)
[root@localhost redmine]# cd /application/nginx/html/redmine/app
[root@localhost app]# mkdir -p assets/config/
[root@localhost app]# touch assets/config/manifest.js
[root@localhost app]# vim assets/config/manifest.js

把下列内容放到里面
注意你粘贴的时候可能会有,一定要保持和下面的一样;
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css


然后再次执行 : 
然后你又发现又有问题,烦不烦?
烦死了,真不晓得怎么这么烂
没关系,继续处理
[root@localhost config]# rake db:migrate RAILS_ENV="production"
....
rake aborted!
ArgumentError: Missing `secret_key_base` for 'production' environment, set this string with `rails credentials:edit`
/usr/local/redmine/config/environment.rb:14:in `'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)

接着处理上述问题 :

它说生产环境找不到这个'secret_key_base"
因为rails出于安全考虑,需要在production 的情况下 ,生成一个key
你说烦不烦,尽是事!!!
怎么办呢?
生成一个,再给读取;
[root@localhost config]# rake secret RAILS_ENV=production
(in /usr/local/redmine)
62a9852e1fcb757ebcaf29e2c23a53216e3ac0fbffcd9e101f175e1f20cc79043742d9ba5cf069c80f213e1e67c0e3b0ce74dfec5cefded70bb5bd0b158a76b0
[root@localhost config]# export SECRET_KEY_BASE=这里是上面你生成的码
然后再次执行命令:
你说巧不巧,解决一个又来一个
接着解决
[root@localhost config]# rake db:migrate RAILS_ENV="production"
...
rake aborted!
Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

接着处理上述问题 :

它说连接不到数据库
你说扯淡不扯淡,我开着数据库,我在这用的好好的
好的
我们找到我们这个mysql.sock位置,给他两创建软链接
[root@localhost config]# find / -name mysql.sock
/var/lib/mysql/mysql.sock
[root@localhost config]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

再再再次执行这个命令 : 
你会看到你的屏幕上的代码在疯狂的跑
我们成功了
因为这个命令是为了生成表结构的
你可以用Navicat连接数据库,然后可以看到redmine数据库有很多表
[root@localhost config]# rake db:migrate RAILS_ENV="production"
...

== 20170723112801 RenameCommentsToContent: migrating ==========================
-- rename_column(:comments, :comments, :content)
   -> 0.0138s
== 20170723112801 RenameCommentsToContent: migrated (0.0140s) =================

== 20180913072918 AddVerifyPeerToAuthSources: migrating =======================
-- change_table(:auth_sources)
   -> 0.0225s
== 20180913072918 AddVerifyPeerToAuthSources: migrated (0.0225s) ==============

== 20180923082945 ChangeSqliteBooleansTo0And1: migrating ======================
== 20180923082945 ChangeSqliteBooleansTo0And1: migrated (0.0000s) =============

== 20180923091603 ChangeSqliteBooleansDefault: migrating ======================
== 20180923091603 ChangeSqliteBooleansDefault: migrated (0.0000s) =============

有人肯定在心里开始埋怨我

为什么不一开始直接把这些错误避开呢?

说真的

乐趣不就解决bug嘛!

你要知道我把这一套流程和坑踩完,到底经历了多少…

修改bundle源的地址
[root@localhost redmine]# vim Gemfile
替换成
source 'https://mirrors.tuna.tsinghua.edu.cn/rubygems'

安装Redmine所需的所有Gem,时间较长
[root@localhost redmine]# bundle install --without development test

生成秘钥 , 导入表结构 :

使用以下命令可生成新的 session 密钥(会生成一个随机密钥),由Rails用来编码存储会话数据的Cookie,从而防止其被篡改。生成新的秘密标记会在重新启动后使所有现有会话失效
[root@localhost redmine]# bundle exec rake generate_secret_token

创建数据库结构:
[root@localhost redmine]# RAILS_ENV=production bundle exec rake db:migrate

将缺省配置数据插入数据库中,选择语言zh
[root@localhost redmine]# rake redmine:load_default_data RAILS_ENV="production"

启动服务 :

默认的登录名和密码都是 admin 。登陆第一次会要求修改用户名和密码。

默认使用如下指令启服务,默认监听端口3000:

[root@localhost redmine]# cd /application/nginx/html/redmine

[root@localhost redmine]# ruby bin/rails server webrick -e production -d


关闭
[root@localhost redmine]# ps -aux |grep ruby
[root@localhost redmine]# kill -9 PID

使用nginx启动 :

[root@localhost ~]# /application/nginx/sbin/nginx 

停止nginx :

[root@localhost ~]# /application/nginx/sbin/nginx -s stop

如果修改了配置⽂件后想重新加载Nginx,可执⾏:

[root@localhost ~]# /application/nginx/sbin/nginx -s reload

你可能感兴趣的:(Linux,ruby,开发语言,后端)