@玛酷猫7 年前
PS:做个系列,记录下各个知识点,方便以后回顾查询,就叫Ruby:从入门到放弃好了(大雾)。
虽然都推荐在类Unix环境上面做Ruby的开发,更贴近于真实服务器的环境,同时也不会遇到各种Windows上奇葩的坑,不过考虑类Unix也同样存在学习成本,并不是主要学习方向,同时也需要在Windows下跑其他一些应用,比如游戏什么的,经过搜索娘的指引,选取这种折中的方法,在Windows平台下使用虚拟机跑类Unix系统。
首先还是安装对应的一系列软件了:
- Vagrant:http://www.vagrantup.com/downloads.html
- VirtualBox:https://www.virtualbox.org/wiki/Downloads
- Vagrant Box:http://www.vagrantbox.es/ (虽然一般都推荐使用Ubuntu,不过这边项目服务器是CentOS7,所有镜像也就选取CentOS7的64位最小安装版镜像,免去了下安装光盘重头装系统的过程)
- jre:https://www.java.com/en/download/manual.jsp (Java运行环境,貌似不是必须的,不过很多地方会用到,也顺道装上好了)
- Git:https://git-scm.com/downloads
- TortoiseGit:https://tortoisegit.org/download/ (考虑到以后开发,这个git工具也顺便装了好了)
- RubyMine:https://www.jetbrains.com/ruby/ (IDE,对于大神来说,一个文本编辑器就能搞定,比如vim,Textmate或者Sublime,我这个菜鸟还是老老实实找个懒人版的好了,之所以选取这个,之前做PHP的时候一直使用PhpStorm,JetBrains家的产品还是比较熟悉的,减少下上手难度吧)
- secureCrt:https://www.vandyke.com/download/securecrt/7.2/index.html (SSH终端程序,免费版最新的版本,虽然也是好多年前的,个人习惯使用这个,虽然vagrant也可以使用命令连接虚拟机)
差不多就这么多吧,乱七八糟都装好后就开始配置了。
在工作目录新建一个文件夹,比如Ruby_project,win+x进入命令提示符,使用cd命令进入刚刚建立的文件夹,然后用下面命令配置
#添加box到vagrant列表,比如box存放在d盘根目录 vagrant box add centos7 vagrant-centos-7.2.box #初始化,会在目录下生成Vagrantfile的配置文件 vagrant init centos7 #启用 vagrant up #关闭虚拟机命令 vagrant halt #重启虚拟机命令 vagrant reload
启动起来后,虚拟机会挂载Ruby_project到虚拟机的vagrant目录下面,这时候用secureCrt连接虚拟机,账号密码都是vagrant,root密码同样是vagrant
由于没有单独配置虚拟机的IP地址,默认虚拟机也会使用127.0.0.1来访问,这需要配置下Vagrant的环境,将访问端口映射到虚拟机上,编辑目录下面的Vagrantfile文件,加入下面的端口配置,整体文件看起来像这样
Vagrant.configure("2") do |config| config.vm.box = "centos7" config.vm.hostname = "dev" config.vm.network "forwarded_port", guest: 3000, host: 3000 config.vm.network "forwarded_port", guest: 80, host: 8080 end
Rails端口使用3000,Nginx的80端口映射到本机的8080端口。其实单独配置IP更方便一些,以后端口一多,一个一个配置很麻烦。
重启后登录虚拟机,开始配置虚拟机的Rails环境
#更新yum yum update #安装EPEL yum install epel-release yum repolist #安装依赖库 yum install curl-devel nano sqlite-devel libyaml-devel #安装RVM,安装指定版本的Ruby gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 curl -L https://get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh #set up system environment for Ruby, 这步不可少 rvm reload rvm install 2.0.0 #这里指定ruby版本 #由于众所周知的原因,修改gem的源 gem source -r https://rubygems.org/ gem source -a https://gem.ruby-china.org #安装nodeJs作为JavaScript的运行环境 yum install nodejs #安装指定版本的rails gem install bundler gem install rails -v 3.2.12 #安装nginx yum install nginx
到这里虚拟机环境基本配置完毕了,其他各个插件根据各个项目中的Gemfile在bundle install中进行安装和调整。
在vagrant目录下,输入以下代码
#新建一个项目 rails new hello_world #进入项目目录 cd hello_world #检查并安装对于的gem bundle install #启动项目 rails s
打开浏览器,输入127.0.0.1:3000 就能看到rails的默认欢迎页了。
启动RubyMine,在之前Ruby_project目录下会出现hello_world的项目目录,直接用RubyMine打开这个文件夹,就能看到该项目的具体源码,这样在IDE中的源码修改会直接作用于虚拟机上。
PS:在Windows下使用Vagrant存在一个问题,就是由于VirtualBox虚拟机的共享文件机制的I/O问题,项目跑起来后,在浏览器浏览很非常的慢,从日志上面看各种资源的读取时间都是几十甚至几百毫秒。网上都说更改共享方式,使用nfsd方式,不过我改过后无法挂载共享盘。问题还没有彻底解决。准备换种共享模式,虚拟机共享目录,本机连接虚拟机的共享目录,这样项目实质是存在虚拟机上,避免I/O的缓慢问题,IDE读取文件慢可以接受,毕竟不会一次打开很多页面。