Cce0300e4a6cec2ab703bc39c42b8531

求救,怎麽在VPS上面搭建ROR環境?

2011-12-01 20:50:43 +0800hangzaiRuby 節點 中發起
最後由 hechian2011-12-02 20:49:28 +0800回應 , 274次閱讀

自己實驗了好幾天了 各種辦法都不行。。

有没有簡單可行的教程? 多謝大家了!

截至 2011-12-02 20:49:28 +0800,共收到 6 條回應
19e786a2a74377ff6e052d87fd8d1fa8
xdite 1樓, 於2011-12-01 21:14:49 +0800回應
19e786a2a74377ff6e052d87fd8d1fa8
xdite 2樓, 於2011-12-01 21:16:26 +0800回應

好像已經試過了?那不然把問題貼出來大家幫你看看?

Cce0300e4a6cec2ab703bc39c42b8531
hangzai 3樓, 於2011-12-01 21:20:15 +0800回應

#2楼 @xdite 没事這樣吧,我一會在重裝一次好了。然後看要還是有問題 就把問題貼出來給大家看好了! 先謝謝你了, lrthw.github.com/ex16/ 這個教程是你翻譯的麽? 我一直再看 很好! 很適合我這種新手。

Cce0300e4a6cec2ab703bc39c42b8531
hangzai 4樓, 於2011-12-01 21:21:16 +0800回應

#2楼 @xdite #2楼 @xdite 我是完全按照這個教程來的!
#如何在 VPS 上架设 Rails 生产环境

VPS OS: Ubuntu 10.10
Local OS: Mac OS X 10.6.8
HTTP Server: nginx + unicore
Ruby: 1.9.2-p290
Rails: 3.1.x
Update: 2011-11-05

注意:区分本地操作和 VPS 上的操作

# VPS 的 root 用户
root@vps:~$

# VPS 的 deployer 用户
deployer@vps:~$

# 本地操作
mac: ~$

###1. 新建专用用户

不用系统提供的 root 用户,新建一个专门用来部署的用户:

# 添加 deployer 用户,设置用户组为 staff
root@vps:~$ useradd -m -g staff -s /bin/bash deployer

# 为 deployer 设置密码
root@vps:~$ passwd deployer

# 根据提示输入两次密码

设置用户权限:

root@vps:~$ visudo -f /etc/sudoers

添加以下内容:

%staff ALL=(ALL) ALL

###2. SSH 设置

生成 dsa 密匙:

mac: ~$ ssh-keygen -t dsa

会在 ~/.ssh/ 中生成两个文件:

- id_dsa:私有密匙
- id_dsa.pub:公共密匙

打开 ~/.ssh/config(不存在则新建):

mac: ~$ sudo mvim ~/.ssh/config

编辑:

# VPS
Host vps
  HostName 100.100.100.100
  User deployer
  IdentityFile ~/.ssh/id_dsa

其中:
- Host 名称随意,便于记忆就好,因为以后连接 SSH 时要用到
- HostName 是 VPS 的 IP 地址

使用 deployer 账户连接 VPS,新建 ~/.ssh 目录:

deployer@vps:~$ mkdir .ssh

退出,回到本地。将刚刚生成的公共密匙拷贝到 VPS 上:

mac: ~$ scp ~/.ssh/id_dsa.pub deployer@vps:.ssh/authorized_keys2

以后就可以不用密码直接连接到 VPS 了:

mac: ~$ ssh vps

如果觉得有必要,可以同样对 root 用户进行相应的设置。

###2. 校正时区

deployer@vps:~$: sudo dpkg-reconfigure tzdata

选择 Asia-> Chongqing,测试设定时候正确

deployer@vps:~$ date

###3. 更新源

deployer@vps:~$ sudo apt-get update
deployer@vps:~$ sudo apt-get upgrade

###4. 安装通用包

编译器等:

deployer@vps:~$ sudo apt-get install gcc
deployer@vps:~$ sudo apt-get install build-essential

需要的库:

deployer@vps:~$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev
deployer@vps:~$ sudo apt-get install curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev
deployer@vps:~$ sudo apt-get install libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev
deployer@vps:~$ sudo apt-get install libxslt-dev autoconf libc6-dev nodejs

Vim 编辑器:

deployer@vps:~$ sudo apt-get install vim-nox

###5. 安装 nginx

deployer@vps:~$ sudo bash -c 'echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/nginx-stable-$(lsb_release -cs).list'
deployer@vps:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C && sudo aptitude update
deployer@vps:~$ sudo apt-get install nginx

# 查看是否安装成功
deployer@vps:~$ nginx -v

###6. 编译、安装 Ruby

Ruby 版本:1.9.2-p290

bash
# 创建源文件存放目录
deployer@vps:~$ mkdir src
deployer@vps:~$ cd src

# 解压
deployer@vps:~/src$ wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
deployer@vps:~/src$ tar -xzvf ruby-1.9.2-p290.tar.gz
deployer@vps:~/src$ cd ruby-1.9.2-p290

# 编译
deployer@vps:~/src/ruby-1.9.2-p290$ ./configure
deployer@vps:~/src/ruby-1.9.2-p290$ make
deployer@vps:~/src/ruby-1.9.2-p290$ make test
deployer@vps:~/src/ruby-1.9.2-p290$ sudo make install

# 查看是否安装成功,安装的目录
deployer@vps:~$ ruby -v
deployer@vps:~$ which ruby

###7. 升级 Rubygems

Ruby 1.9.2 内建了对 Rubygems 的支持,但是版本过低,升级到最新版本

bash
deployer@vps:~$ sudo gem update --system

###8. 设置 .gemrc

主要目的是设置 gem 安装时不安装 ri 和 rdoc 文件。

bash
deployer@vps:~$ sudo bash -c 'curl http://raw.github.com/gist/1341422/.gemrc > ~/.gemrc'

###9. 安装 Rails

bash
deployer@vps:~$ sudo gem install rails

###10. 安装 unicorn

bash
deployer@vps:~$ sudo gem install unicorn

###11. 生成测试 app

bash
deployer@vps:~$ mkdir sites
deployer@vps:~$ cd sites

deployer@vps:~/sites$ rails new test_app

###12. 设置 nginx

bash
deployer@vps:~$ sudo bash -c 'curl http://raw.github.com/gist/1341422/nginx.conf > /etc/nginx/nginx.conf'

###13. 设置 unicorn

bash
deployer@vps:~/sites/test_app$ sudo bash -c 'curl -L http://raw.github.com/gist/1341422/unicorn.rb > config/unicorn.rb'

###14. 测试 unicorn

bash
deployer@vps:~/sites/test_app$ unicorn -c config/unicorn.rb -D

打开站点地址,应该就可以看到 Rails 的欢迎界面了。

###15. 设置 unicorn 随系统自运行

bash
deployer@vps:~$ sudo bash -c 'curl -L http://raw.github.com/gist/1341422/unicorn.sh > /etc/init.d/unicorn'

deployer@vps:~$ sudo chmod +x /etc/init.d/unicorn
deployer@vps:~$ sudo update-rc.d unicorn defaults

`

###参考资源
- [linode上安装ubuntu,lemp与wordpress](http://www.yangzhiping.com/tech/linode-ubuntu-lemp-wordpress.html)
- [Serving Rails Apps with RVM, Nginx, Unicorn and Upstart](http://brandontilley.com/2011/01/29/serving-rails-apps-with-rvm-nginx-unicorn-and-upstart.html)
- [Deploying Rails to Linode](http://gist.github.com/958437)
- [Slicehost Forum: duplicate MIME type "text/html"](http://forum.slicehost.com/comments.php?DiscussionID=3763)

27d2c919c9c28be9267ca2175e17ad9e
Tim_Wu 5樓, 於2011-12-02 14:57:07 +0800回應

我用thin 還蠻簡單的說.

Ff7afae5b23125e25e18ad8c0404bd78
hechian 6樓, 於2011-12-02 20:49:28 +0800回應

其實我想問的是,是哪邊不行?

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊