整整一天都在安装这个东西
看了太多的文章,综合很多人的和自己的操作记录一下
也希望像这种安装类文档是自己安装过再发布给别人参考
下面是我安装好多遍确认没有什么问题了,总结下的内容
当然有不完善的还请留言指出,我也是头一次安装这个!
我是用自己的虚拟机搭建的, 建议新手也先试一下用虚拟机搭建,你肯定会遇到很多很多的问题的,关键你还很难在国内找到正确的解决方式;
我也是第一次安装这玩意,之前只是在公司在用这个;以为还是很简单的,但是这个活活搭建了很多遍, 参考的文档相当多, 当然也是踩了很多的坑!
这篇文章可能在你看来也有很多坑, 但是我是实实在在自己操刀安装了一遍; 如果你已经确认了你的环境和各方面和我的相同, 那我认为你应该是可以安装完成的!
安装环境 | 版本号 | 备注 |
---|---|---|
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版本是需要注意的,不然会导致不能安装成功!
这个不知道从哪弄得,这个是从别人那里抄来的,借鉴一下就行;
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 |
这一步尤为重要,我看了很多的文章,有的有,有的没有
最后测试下来, 先安装会让后面的安装更加顺利一点, 绝对起到先发制人的效果!
[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
如果已经安装了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
上述教你卸载了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数据库安装已经完成。
参考链接 :
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
建立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
官网访问地址 :
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的安装下载到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