[关闭]
@JCChan 2016-07-25T11:39:45.000000Z 字数 4083 阅读 1937

Ubantu + Ruby + + MySQL + Nginx + Redmine部署记录

Linux


      周五的时候老大布置了一个任务下来,要部署一个Redmine用于研发部,同时升级工作室的Redmine,于是正好试试另外一套Linux系统——Ubantu,毕竟和CentOS的命令差别还是有一点的。
      先说说配置吧。
(1) 操作系统:Ubantus 16.04 LTS,内存2GB,2vCPUs,60GB硬盘,都是一些基本配置。
(2) rvm + ruby-2.3.1 + rails
(3) MySQL-Server-5.7.0
(4) Nginx
(5) Redmine-3.3.0
      接下来开始讲讲部署过程。
1. 在虚拟机中选好标准配置。
图片1
2. 下载ubuntu-16.04-server-amd64.iso,默认会选择国内大学的ftp站点,因此速度杠杠的,装入虚拟光驱,调整固件从光驱启动,进入以后选择英文安装界面。
图片2
3. 由于有CentOS基础,分区的步骤就不再多做详细的介绍,分配一个swap分区,一个boot分区,剩下留给根分区即可。
图片3
4. 差不多安装到最后一步的时候,由于默认就是服务器版的,不存在要选择图形界面的问题,这里与CentOS最大的不同就是Ubantu要手动安装SSH服务器,不然后面要手动安装,SSH是远程的时候必须的,安装上。
图片4
5. 在Ubantu安装过程中会有一步让你创建一个账户来控制机器,这里创建了一个账户,所以也就以这个账户登录,这里就有与CentOS的第二点不同,root账户密码哪去了?事实上,在这个时候root密码应该是空的,但是当你su进去的时候发现不对。事实上,可以使用sudo passwd root修改root密码,而且在这里是必须这样做,在写博客之前我就曾经用过普通账号进行部署,结果卡在最后一步,编译的程序由于没有权限无法启动,所以后面的操作中,建议类似CentOS一样,直接用root账户进行操作。这里我还做了一个事情就是用了XShell重新登录,是因为我是在实验室远程回宿舍的电脑,宿舍电脑再打开VMware来操作,直接操作的话会发现莫名其妙字符输入多,或者是在图形界面下鼠标无法使用的情况,应该是远程协议使用了TCP的缘故吧,这在Linux里面敲密码是非常麻烦的一个事情。
图片5
图片6
6. 更新一遍软件包列表,使用命令

  1. apt-get update //普通用户下为sudo apt-get update,后同,除非特殊注明。
  2. apt-get upgrade

图片7
7. 我个人推荐的安装参考顺序为rvm→ruby→rails→Nginx→MySQL→Redmine,因此我也按照这个顺序来介绍部署过程。

一、Rvm+Ruby+Rails

  1. rvm是用于管理多个ruby版本的一个管理器,用它安装ruby是最为合适的,虽然可以直接apt-get install ruby,但是这样子做依赖关系就比较麻烦,因此推荐还是从rvm开始安装起。
  1. gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
  2. curl -sSL https://get.rvm.io | bash -s stable
  3. //如果上面的连接失败,可以尝试:
  4. curl -L https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable

      安装完以后会显示这个页面代表着安装成功!
图片8
2. 载入Rvm环境。

  1. source /etc/profile.d/rvm.sh
  1. 检查Rvm是否安装成功。
  1. root@shopREDcngua001:~# rvm -v
  2. rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

      这样就代表环境变量设置成功!
4. 用Rvm安装ruby环境

  1. rvm requirements //此时会更新一大堆的依赖包,耐心等待即可。

图片9

  1. rvm install 2.3.0 //安装较为稳定的2.3.0版本,也需要一定时间,耐心等待即可。

图片10
5. 设置ruby默认版本

  1. rvm use 2.3.0 --default
  1. 由于某些原因,调整gem安装目录至国内镜像,在这里衷心感谢ruby-china的支持!当然,这里也可以改成淘宝的镜像。
  1. gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org
  2. gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org
  1. 安装bundlers
  1. gem install bundler
  1. 安装rails
  1. gem install rails
  1. 检查各个安装包版本
    图片11
  2. 可做适当的升级
  1. gem update --system

      至此第一部分安装已经完毕。

二、Nginx

      由于nginx和ruby之间,以及passenger之间有依赖关系,查看网络上的安装配置,最后发现不能够直接apt-get install来安装,要从passenger中进行安装,步骤如下。
1. 安装passenger

  1. gem install passenger
  1. 安装curl模块
  1. apt-get install libcurl4-openssl-dev
  1. 使用passenger自带的一个命令来安装nginx,这句命令会自己下载最新版的nginx和编译的passenger module
  1. passenger-install-nginx-module

图片12
图片13
4. 这里选择1,自动帮我们安装即可。
图片14
5. 安装开始以后会先需要安装PCRE,后面我们手动安装PCRE,所以在这里先跳过。
图片15
6. 设定安装目录,默认即可,这一步确认后也是有不少东西安装,耐心等待即可。
图片16
7. 安装成功界面!
图片17
8. 下面开始手动安装PCRE,切换到/opt/nginx

  1. wget https://sourceforge.net/projects/pcre/files/pcre/8.39/pcre-8.39.tar.gz
  2. tar -zxvf pcre-8.39.tar.gz
  3. cd pcre-8.39
  4. ./configure
  5. make & make install
  6. /*万幸这个手动安装没有报错*/

      至此nginx安装已经全部完毕。

三、MySQL

  1. MySQL是几个安装包里面最为简单的一个,只需一条命令即可。
  1. apt-get install mysql-server
  1. 安装过程中会有要求输入MySQL的root密码,这个是登录MySQL用的。
    图片18
  2. 测试mysql-server是否安装成功
  1. mysql -u root -p
  2. password: //输入刚才设置的root密码。

达到这里时就代表安装成功!

  1. mysql>

四、Redmine

  1. 切换到/opt目录
  1. wget http://www.redmine.org/releases/redmine-3.3.0.tar.gz
  2. tar -zxvf redmine-3.3.0.tar.gz
  3. cd redmine-3.3.0
  1. 打开Gemfile,将source文件替换为淘宝源,保存退出。
  1. source 'https://ruby.taobao.org'
  1. 设置数据库基本用户名,密码等
  1. CREATE DATABASE redmine CHARACTER SET utf8;
  2. CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password'; # 这里的my_password是你的redmine数据库账号的密码
  3. GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
  1. 设置连接数据库
  1. cp config/databse.yml.example config/database.yml #获取配置文件
  2. vim config/database.yml

      由于是用于生产环境,只用修改一处地方即可,修改并保存。
图片20
5. 下面开始进行一些依赖包的安装,返回到redmine-3.3.0目录,根据bundle install --without development test的提示来安装,缺少什么就装什么,每装完一个就运行一次这条命令,详细看看报错信息就知道缺少什么依赖包没装。

  1. apt-get install imagemagick //生成图片的依赖库。
  2. gem install mysql2 -v '0.3.21'
  3. apt-get install libmysqlclient-dev
  4. gem install rbpdf-font
  5. gem install rmagick -v '2.15.4
  6. apt-get install libmagickwand-dev

直到这一步才算是完成。
图片21
6. Session存储密钥

  1. rake generate_secret_token
  1. 生成redmine的数据库表结构和初始化数据
  1. RAILS_ENV=production rake db:migrate //生成表结构
  2. RAILS_ENV=production rake redmine:load_default_data //初始化数据

图片22
8. 创建上传文件的目录和设置文件夹的权限

  1. useradd redmine
  2. passwd redmine //设置redmine账户的密码
  3. mkdir -p tmp tmp/pdf public/plugin_assets/
  4. chown -R redmine:redmine files log tmp public/plugin_assets
  5. chmod -R 755 files log tmp public/plugin_assets/
  1. 测试redmine的安装
  1. ruby bin/rails server webrick -e production
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注