402v /posts/railsxiang-mu-da-jian-mache-ubuntupei-zhi-railskai-fa-huan-jing

Rails开发指南 - 第一个Rails项目

断断续续研究Ruby on Rails也有两年时间,因为纯粹基于个人爱好所以一直没有认真总结一下,借着这次搭建Ghost博客的机会重新搞了一次Rails的自动化部署。

有些问题(比如database.yml文件处理、unicorn重启、首次发布是否必须先运行cap deploy:setup)纠结了挺久,最终本文采用的是全程自动化并且保证操作一致性的方案。这一系列文章的导航:

#运行环境

介绍中默认shell用的是zsh,bash或者sh的话只需要在操作过程中将.zshrc配置文件换成bash的.bashrc(ubuntu下默认)或者.bashprofile即可。

同时推荐一下zsh,主要是因为强大的Oh My Zsh

我的工作环境本地电脑是MBP,所以用mac osx编写代码托管到github,服务器端是Ubuntu 14.04,每次客户端项目本地开发调试完成之后,自动化部署提交到Ubuntu服务器上。因此项目的环境和配置都分为两个方面

###Server端

  1. Ubuntu14.04;
  2. DigitalOcean在SGP的Droplet,直接用的Ghost Application镜像;
  3. 自动化部署到deploy账户,除了nginx重启其他都不需要root权限(sudo)
  4. rbenv 0.4.0-183-gc18a3f9
  5. Ruby 2.0.0p645
  6. Rails 4.0.0
  7. Nginx: nginx version: nginx/1.4.6 (Ubuntu)
  8. unicorn 4.9.0

###Client端

  1. Mac OSX 10.11.1
  2. rbenv 0.4.0-183-gc18a3f9
  3. Ruby 2.0.0p645
  4. Rails 4.0.0
  5. Capistrano 3.1.0

#Ubuntu上账户环境的前期准备

  1. 创建deploy账户
  2. 给deploy账户增加权限

#Ruby开发环境搭建

Mac OSX 和 Ubuntu都适用下面的配置方法,稍有不同的地方都已经注明。注意一下shell基于的zsh,其他shell的rc文件名会不同。

Ubuntu配置在deploy账户下。

###安装Ruby版本控制工具(rbenv)

ruby版本管理工具用rvm和rbenv都可以,这里已rbenv为例

  1. 克隆rbenv@github到本地

     git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    
  2. 将rbenv配置到shell环境

     echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
     echo 'eval "$(rbenv init -)"' >> ~/.zshrc
    
  3. 使shell配置生效

     source ~/.zshrc
    
  4. 这时候在shell中输入type rbenv输出rbenv is a shell function,表示安装成功。

建议直接去rbenv@github上仔细的读一遍Readme,反正这些内容早晚都是要了解的。按照教程快速配置完环境之后建议其他的部分也都去读一下官方文档。

其实在Mac OSX上更方便的方式是用homebrew安装rbenv,但上面介绍的办法通用而且不麻烦,在Ubuntu和mac上都适用。

###安装Ruby

  1. rbenv默认不提供install命令,需要安装ruby-build插件:

     git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    
  2. Ubuntu下安装ruby需要先安装依赖,运行:

     apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
    

其他环境的依赖可以在这里找到。

  1. 正式进入Ruby的安装,运行rbenv install 2.0.0-p645(2.0.0-p645我通常用这个版本的ruby,初学搭建时建议严格按照教程中的ruby和gems版本,否则可能出现版本冲突等问题)

  2. waiting for a really long time,然后可以看到ruby安装完成

  3. 使用这个ruby版本

     rbenv global 2.0.0-p645
    

###安装Rails Rails的安装很简单,gem install rails即可,也可以指定gem版本为4.0.0。

特别要注意的是,在Mac安装rails需要先安装Command Line Tools

安装方法可选择下面其中一种:

  1. 在Terminal运行xcode-select --install
  2. 也可以打开Xcode.app,选择"Xcode" - "Open Developer Tool" - "More Developer Tools"打开网站直接安装;
  3. 直接跳转到官网安装。

如果本机之前安装过rails的其他版本,可以考虑卸载掉。1

###安装bundler Bundler为ruby app提供了简便的gem list以及gem版本的管理工具,是rails开发必须安装的工具。安装同样很简单:gem install bundler,使用时cd进入app目录。

  1. 初始化bundle,会帮你新建gemfile(下面rails new app的时候会直接帮你做了,所以不需要自己再运行)

     bundle init
    
  2. 添加一个gem到Gemfile,也可以vim打开手动编辑

     echo 'gem "rspec"' >> Gemfile
    
  3. 安装Gemfile中指定的gem list

     bundle install
    
  4. 执行某个bundle命令:

     bundle exec rspec
    

Gemfile的编写方式详见这里

#Mac OSX下创建Rails App并提交到Git

###Rails项目搭建

  1. rails new app_path,如果在已创建的目录中初始化rails环境则运行rails new .

  2. rails很方便,但同时也容易让我们忽略了整个项目结构,可以在terminal中运行如下命令了解rails帮你创建的目录环境:

     // 输出目录树
     ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
    

目录树很长就不贴图了,大家的目录结构都是一样的,简单介绍几个重点目录: 3. app路径是我们编写程序,实现逻辑的地方: * rails默认采用MVC结构,包含controllermodelview三个目录,页面html相关的内容在view路径下的*.html.erb文件内; * assets目录下存储所有的页面资源:js、css(scss and less)、images、fonts等等; 4. config路径下是项目相关的配置文件,如后续要配置unicorn的unicorn.rb文件,capistrano的deploy.rb文件和设置页面访问路由的routes.rb等等; 5. lib路径主要用于各个gem放置一些他们需要的文件,如assets文件和可执行的rake文件(tasks); 6. public目录即为访问网站的root路径,nginx配置时的root会指定到它。

###第一次运行Rails项目 在rails app目录下运行rails s或者rails server,在本地浏览器访问:http://localhost:3000(3000是rails server的默认端口)即可看到rails的初始项目,非常简单。

###Rails项目提交到Github

  1. 在rails项目目录下初始化git环境并commit;
  2. 提交代码到github的流程大家都会就不细说了,详细步骤参见这里

后续开发就因网站内容而异了,简单的可以去网上down一个Bootstrap的模板拷贝到自己的项目中,别忘了添加bootstrap-sass之类的gem。


Where to go:Rails开发指南 - Nginx+Unicorn的服务器配置

#参考连接

  1. guide
  2. rails command line

#脚注

Footnotes

  1. Rails某个版本的卸载方法

    gem uninstall rails -v 4.2.4
    rails -v  // Rails 4.2.4
    gem uninstall railties -v 4.2.4
    rails -v // Rails 4.0.0
    

评论 · 0

还没有评论。