美文网首页程序员ruby小白课程实战--宠物论坛
1.3 Ruby On Rails环境安装 创建并启动项目

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

作者: 808cb3be8e58 | 来源:发表于2018-12-02 12:37 被阅读69次

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

    相关文章

      网友评论

        本文标题:1.3 Ruby On Rails环境安装 创建并启动项目

        本文链接:https://www.haomeiwen.com/subject/qwkjcqtx.html