1. 程式人生 > >1.3 Ruby On Rails執行環境安裝 建立並啟動專案

1.3 Ruby On Rails執行環境安裝 建立並啟動專案

一. 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

[email protected]-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