前言
整整一天都在安装这个东西
看了太多的文章,综合很多人的和自己的操作记录一下
也希望像这种安装类文档是自己安装过再发布给别人参考
下面是我安装好多遍确认没有什么问题了,总结下的内容
当然有不完善的还请留言指出,我也是头一次安装这个!
首先先确认安装环境
我是用自己的虚拟机搭建的, 建议新手也先试一下用虚拟机搭建,你肯定会遇到很多很多的问题的,关键你还很难在国内找到正确的解决方式;
我也是第一次安装这玩意,之前只是在公司在用这个;以为还是很简单的,但是这个活活搭建了很多遍, 参考的文档相当多, 当然也是踩了很多的坑!
这篇文章可能在你看来也有很多坑, 但是我是实实在在自己操刀安装了一遍; 如果你已经确认了你的环境和各方面和我的相同, 那我认为你应该是可以安装完成的!
安装环境
| 安装环境 | 版本号 | 备注 |
|---|---|---|
| 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.29b0360b937aa4dee47/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
如果已经安装了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
设置软链接, 重启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 服务已经⽣效了,在2、3、4、5运⾏级别随系统启动⽽⾃动启动,以后可以直接使 ⽤ service 命令控制 mysql 的启停。
将 MYSQL的 BIN⽬录加⼊ 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_/article/details/
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 `<top (required)>' 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 `<top (required)>'
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) 62a9852e1fcb757ebcaf29e2c23a53216e3ac0fbffcd9e101f175e1f20ccd9ba5cf069c80f213e1e67c0e3b0ce74dfec5cefded70bb5bd0b158a76b0 [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" ... == 801 RenameCommentsToContent: migrating ========================== -- rename_column(:comments, :comments, :content) -> 0.0138s == 801 RenameCommentsToContent: migrated (0.0140s) ================= == 918 AddVerifyPeerToAuthSources: migrating ======================= -- change_table(:auth_sources) -> 0.0225s == 918 AddVerifyPeerToAuthSources: migrated (0.0225s) ============== == 945 ChangeSqliteBooleansTo0And1: migrating ====================== == 945 ChangeSqliteBooleansTo0And1: migrated (0.0000s) ============= == 603 ChangeSqliteBooleansDefault: migrating ====================== == 603 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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/37334.html