一. Ruby On Rails环境安装
1、打开Ubuntu系统(Windows系统打开虚拟机登录到Ubuntu系统;IOS系统在终端打开rails-va文件夹cd rails-va,输入vagrant up,再输入vagrant ssh),更新源列表
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get update
2、安装依赖插件
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get install -y git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common
3、安装rbenv(rbenv是一个安装 ruby 和管理控制多个 ruby 版本的工具)
vagrant@vagrant-ubuntu-trusty-64:~$ git clone git://github.com/sstephenson/rbenv.git .rbenv vagrant@vagrant-ubuntu-trusty-64:~$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc vagrant@vagrant-ubuntu-trusty-64:~$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc vagrant@vagrant-ubuntu-trusty-64:~$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build vagrant@vagrant-ubuntu-trusty-64:~$ echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc vagrant@vagrant-ubuntu-trusty-64:~$ exec $SHELL
4、用rbenv安装ruby2.3.5版本。最好找个网速快的地方,大概需要十分钟左右
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv install 2.3.5 #系统返回信息 Downloading ruby-[2.3.5.tar.bz2](2.3.5.tar.bz2)... -> [https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.bz2](https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.bz2) Installing ruby-2.3.5... Installed ruby-2.3.5 to /home/vagrant/.rbenv/versions/2.3.5
运行完再运行这一句
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv global 2.3.5
5、将gem源换成国内源(gem就是咱们做项目需要用到的插件,比如我们需要做一个分页的功能,不需要自己写具体分页的代码,只需要安装上一个名为kaminari的gem,分页功能就可以直接使用了,换成国内源会使下载gem的速度更快)
1)查看现在的gem源
vagrant@vagrant-ubuntu-trusty-64:~$ gem sources -l #系统返回信息 *** CURRENT SOURCES *** https://rubygems.org/
(2)修改gem源
vagrant@vagrant-ubuntu-trusty-64:~$ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ #系统返回信息 https://gems.ruby-china.com/ added to sources https://rubygems.org/ removed from sources
(3)查看修改后的gem源
vagrant@vagrant-ubuntu-trusty-64:~$ gem sources -l #系统返回信息 *** CURRENT SOURCES *** https://gems.ruby-china.com/
6、安装rails 4.2.1版本
(1)安装rails4.2.1版本
vagrant@vagrant-ubuntu-trusty-64:~$ gem install rails -v 4.2.1
(2)告知rbenv安装了新的rails版本
vagrant@vagrant-ubuntu-trusty-64:~$ rbenv rehash
(3)查看当前rails版本
vagrant@vagrant-ubuntu-trusty-64:~$ rails -v
7、安装mysql数据库以及依赖插件,安装过程需要设置mysql密码,该密码一定要记住,之后登录数据库会用到
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get install mysql-server mysql-client libmysqlclient-dev
二、创建一个项目
1、IOS系统:进入共享文件夹,在Ubuntu系统中,/vagrant指的就是本地机器上的rails-va文件夹;Window系统:可以直接在根目录下创建项目。data_system是我们项目的名字
vagrant@vagrant-ubuntu-trusty-64:~$ cd /vagrant vagrant@vagrant-ubuntu-trusty-64:/vagrant$ rails new data_system -d mysql
2、启动项目
(1)打开项目
vagrant@vagrant-ubuntu-trusty-64:/vagrant$ cd data_system/
(2)启动项目
vagrant@vagrant-ubuntu-trusty-64:/vagrant/data_system$ rails s
这一过程出现的错误有点多,我总结了以下几个:
可能会出现错误一:(较常见)
/home/vagrant/.rbenv/versions/2.3.5/lib/ruby/gems/2.3.0/gems/bundler-1.16.3/lib/bundler/runtime.rb:84:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError) Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
解决方法:
/vagrant/data_system$ sudo apt-get install -y nodejs
可能会出现错误二:(不能找到名为railties的gem)
/usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems.rb:270:in `find_spec_for_exe': can't find gem railties (>= 0.a) (Gem::GemNotFoundException) from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/rubygems.rb:298:in `activate_bin_path' from /usr/local/bin/rails:22:in `<main>’
解决方法:
/vagrant/data_system$ gem install railties
可能会出现错误三:(不能加载bundler/setup这个文件)
/Users/xuzhaoning/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError)
解决方法:
/vagrant/data_system$ gem install bundler
可能出现的错误四:(进程冲突)
=> Booting Puma => Rails 5.1.6 application starting in development => Run `rails server -h` for more startup options A server is already running. Check /vagrant/data_system/tmp/pids/server.pid. Exiting
这个是项目启动之后,终止项目没有用ctrl+c终止,导致项目进程没有杀死,后台还在运行,想要重新开启项目,得先把这个进程杀死。
解决方法:
找到这个进程,其中3631是这个进程的pid,我们杀死这个id
vagrant@vagrant-ubuntu-trusty-64:/vagrant/data_system$ ps -axu | grep puma #系统返回信息 vagrant 3631 1.2 3.7 764356 76388 pts/0 Tl 15:43 0:03 puma 3.12.0 (tcp://0.0.0.0:3000) [data_system]
杀死这个进程,再重新启动就可以成功了
vagrant@vagrant-ubuntu-trusty-64:/vagrant/data_system$ kill -9 3631 #系统返回信息 [1]+ Killed rails s
3、启动项目后的操作
(1)启动项目后,终端返回信息如下
vagrant@vagrant-ubuntu-trusty-64:/vagrant/data_symtem$ rails s #系统返回信息 => Booting Puma => Rails 5.1.1 application starting in development on [http://localhost:3000](http://localhost:3000) => Run `rails server -h` for more startup options Puma starting in single mode... * Version 3.8.2 (ruby 2.3.5-p376), codename: Sassy Salamander * Min threads: 5, max threads: 5 * Environment: development * Listening on [tcp://0.0.0.0:3000](tcp://0.0.0.0:3000) Use Ctrl-C to stop
根据上面终端返回信息,我们可以得到两个信息
1)在Ubuntu系统上打开这个地址http://localhost:3000,即可看到项目界面
2)Ctrl-C键可以停止项目运行状态
(2)在浏览器上打开项目
1)使用windows电脑安装VMware的同学直接在虚拟机中打开浏览器输入http://localhost:3000就可以。
2)使用mac电脑安装vagrant的同学,记得我们曾经在rails-va/Vagrantfile文件中设置过这个语句
[config.vm.network](http://config.vm.network) "private_network", ip: "192.168.33.10"
本地电脑的192.168.33.10:3000地址,代表Ubuntu系统上的http://localhost:3000地址
在本地电脑上打开浏览器,输入192.168.33.10:3000地址,我们看到以下界面,说明启动成功了
可能出现的错误一:(连接错误)
mac电脑可能出现的问题,在本地电脑上打开浏览器,输入192.168.33.10:3000地址看到以下界面
出现这个问题导致的原因有很多,主要下面几个:
(1)查看项目是否启动成功,启动成功项目返回的信息类似下面展示。
vagrant@vagrant-ubuntu-trusty-64:/vagrant/data_symtem$ rails s #系统返回信息 => Booting Puma => Rails 5.1.1 application starting in development on [http://localhost:3000](http://localhost:3000) => Run `rails server -h` for more startup options Puma starting in single mode... * Version 3.8.2 (ruby 2.3.5-p376), codename: Sassy Salamander * Min threads: 5, max threads: 5 * Environment: development * Listening on [tcp://0.0.0.0:3000](tcp://0.0.0.0:3000) Use Ctrl-C to stop
如果启动后出现的结果如下,虽然没有报错,但是本地电脑的192.168.33.10:3000地址如果连接错误,就需要重新操作1.1节Mac电脑安装Ubuntu系统–Vagrant 卸载vagrant和virtualbox重新安装。
(2)打开virtualbox软件,打开“设置–网络–网卡二”,查看网络设置是否如图所示,如果不是改成如图所示的网络设置–仅主机网络。
改完之后rails s重启项目,打开本地浏览器看是否还出现连接错误
(3)在本地ping一下192.168.33.10看是否能ping通,出现以下结果说明能ping通。
xuzhaoning@xuchaoningdeMacBook-Air:~/rails-va$ ping 192.168.33.10 #系统返回信息 PING 192.168.33.10 (192.168.33.10): 56 data bytes 64 bytes from 192.168.33.10: icmp_seq=0 ttl=64 time=0.338 ms 64 bytes from 192.168.33.10: icmp_seq=1 ttl=64 time=0.397 ms 64 bytes from 192.168.33.10: icmp_seq=2 ttl=64 time=0.443 ms
出现以下结果说明ping不通
xuzhaoning@xuchaoningdeMacBook-Air:~/rails-va$ ping 192.168.33.10 #系统返回信息 PING 192.168.33.10 (192.169.33.10): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2
如果能ping通,并且rails s项目已经启动成功,并且virtualbox软件设置也正确,百度上也查不到与你一样的错误,就需要重新操作1.1节Mac电脑安装Ubuntu系统–Vagrant 卸载vagrant和virtualbox重新安装
如果ping不通,并且rails s项目已经启动成功,就重新一下启动Ubuntu
xuzhaoning@xuchaoningdeMacBook-Air:~/rails-va$ vagrant reload
启动之后如果还ping不通,这种情况我没有碰到过,具体可以百度,或者评论留言。
可能出现的错误二:(mysql连接错误)
mac电脑和windows电脑都可能出现的问题,打开浏览器,输入192.168.33.10:3000地址看到以下界面,这个问题就是mysql需要先配置连接。
解决方法:
1)打开mysql,-u后面的root为数据库的用户名,默认为root,-p后面为你之前设置的数据库密码
vagrant@vagrant-ubuntu-trusty-64:/vagrant/data_system$ mysql -uroot -p123456. #系统返回信息 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 36 Server version: 5.5.61-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. mysql>
2)在mysql创建名为data_system的数据库
mysql> create database data_system; #系统返回信息 Query OK, 1 row affected (0.09 sec)
3)用sublime软件编辑器中打开data_system这个项目,打开config文件夹下的database.yml文件,分别配置username、password、database这三个参数,comment+s保存文件之后,ctrl+c停止项目,rails s重启项目之后,刷新页面,就可以了