1.3 Ruby On Rails运行环境安装 创建并启动项目

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shine_a/article/details/84872866

一. 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地址,我们看到以下界面,说明启动成功了
image.png

可能出现的错误一:(连接错误)

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需要先配置连接。
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重启项目之后,刷新页面,就可以了
database.yml

猜你喜欢

转载自blog.csdn.net/shine_a/article/details/84872866