【Ruby on Rails全栈课程】1.3 Ruby On Rails运行环境安装 创建并启动项目

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 一. Ruby On Rails环境安装1、打开Ubuntu系统(Windows系统打开虚拟机登录到Ubuntu系统;IOS系统在终端打开rails-va文件夹cd rails-va,输入vagrant up,再输入vagrant ssh),更新源列表

一. 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重启项目之后,刷新页面,就可以了


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
前端开发 测试技术 数据库
使用Ruby on Rails进行快速Web开发的技术探索
【8月更文挑战第12天】Ruby on Rails以其高效、灵活和易于维护的特点,成为了快速Web开发领域的佼佼者。通过遵循Rails的约定和最佳实践,开发者可以更加专注于业务逻辑的实现,快速构建出高质量的Web应用。当然,正如任何技术框架一样,Rails也有其适用场景和局限性,开发者需要根据项目需求和个人偏好做出合适的选择。
|
2月前
|
前端开发 测试技术 API
揭秘Ruby on Rails的神秘力量:如何让你的Web应用飞起来?
【8月更文挑战第31天】Ruby on Rails(简称RoR)是一个基于Ruby语言的开源Web应用框架,自2005年发布以来,因简洁的语法、强大的功能和高效的开发效率而广受好评。RoR采用MVC架构,提高代码可读性和可维护性,拥有庞大的社区和丰富的库支持。本文通过示例代码展示其强大之处,并介绍RoR的核心概念与最佳实践,帮助开发者更高效地构建Web应用。
30 0
|
2月前
|
前端开发 API C++
在Ruby世界中寻找你的Web框架灵魂伴侣:Rails vs Sinatra
【8月更文挑战第31天】在Ruby的世界里,选择Web框架如同挑选衣物,需根据场合和需求。Rails与Sinatra是两大热门框架,前者以其“约定优于配置”理念和全面的功能成为企业级应用的首选;后者则以轻量级和灵活性著称,适用于快速原型开发和小规模应用。通过对比两者特性,如Rails的MVC架构与Sinatra的简洁API,我们可以看到它们各有所长。选择合适的框架,如同找到旅途中的最佳伙伴,让开发之路更加顺畅愉悦。这场探索之旅教会我们,没有绝对的好坏,只有最适合的选择。
25 0
|
2月前
|
安全 前端开发 数据安全/隐私保护
如何在Ruby on Rails中打造坚不可摧的OAuth认证机制
【8月更文挑战第31天】在构建现代Web应用时,认证与授权至关重要。本文介绍如何在Ruby on Rails中实现OAuth认证,通过使用`omniauth`和`devise` gems简化流程。首先安装并配置相关gem,接着在`User`模型中处理OAuth回调,最后设置路由及控制器完成登录流程。借助OAuth,用户可使用第三方服务安全地进行身份验证,提升应用安全性与用户体验。随着OAuth标准的演进,这一机制将在Rails项目中得到更广泛应用。
35 0
|
3月前
|
SQL 安全 数据库
Ruby on Rails 数据库迁移操作深度解析
【7月更文挑战第19天】Rails 的数据库迁移功能是一个强大的工具,它帮助开发者以版本控制的方式管理数据库结构的变更。通过遵循最佳实践,并合理利用 Rails 提供的迁移命令和方法,我们可以更加高效、安全地管理数据库结构,确保应用的稳定性和可扩展性。
|
4月前
|
前端开发 测试技术 数据库
Ruby on Rails:快速开发Web应用的秘密
【6月更文挑战第9天】Ruby on Rails,一款基于Ruby的Web开发框架,以其高效、简洁和强大备受青睐。通过“约定优于配置”减少配置工作,内置丰富功能库加速开发,如路由、数据库访问。活跃的社区和海量资源提供支持,MVC架构与RESTful设计确保代码清晰可扩展。高效的数据库迁移和测试工具保证质量。Rails是快速构建Web应用的理想选择,未来将持续影响Web开发领域。
|
5月前
|
开发框架 安全 前端开发
使用Ruby on Rails进行快速Web开发
【5月更文挑战第27天】Ruby on Rails是一款基于Ruby的高效Web开发框架,以其快速开发、简洁优雅和强大的社区支持著称。遵循“约定优于配置”,Rails简化了开发流程,通过MVC架构保持代码清晰。安装Ruby和Rails后,可使用命令行工具创建项目、定义模型、控制器和视图,配置路由,并运行测试。借助Gem扩展功能,优化性能和确保安全性,Rails是快速构建高质量Web应用的理想选择。
|
5月前
|
Ruby
|
5月前
|
JSON 数据格式 Ruby
下一篇
无影云桌面