好像已經試過了?那不然把問題貼出來大家幫你看看?
#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)
我用thin 還蠻簡單的說.
其實我想問的是,是哪邊不行?