作者nvizero (victor.st)
看板Ruby
标题[心得]在AWS EC2 上装ROR+nginx+mysql -SERVER
时间Thu May 21 12:39:44 2015
如何在AWS EC2上设定
就请自己GOOGLE吧
使用 AWS EC2 环境
AMI:Ubuntu Server 14.04 LTS (HVM), SSD Volume Type - ami-9a562df2
建置环境
开始建置环境,建立一台新的 Instance 後,ssh 连进去开始建置。
$ ssh -i YOUR_KEY
[email protected]
更新一下 package 资讯。
$ sudo apt-get update
安装 RVM + Ruby + Rails 执行以下两个指令,参考:RVM 官网
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
$ \curl -sSL
https://get.rvm.io | bash -s stable --rails
让你可以直接下指令使用 rvm、ruby、rails,执行下面两行指令
$ source ~/.rvm/scripts/rvm
$ echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
可以看一下目前安装到的版本,会看到 ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
$ ruby -v
安装一些 Rails 要用到的程式
$ sudo apt-get install nodejs
安装一些可能需要用到的常用程式
$ sudo apt-get install mysql-common mysql-client libmysqlclient-dev
$ sudo apt-get install git git-flow
如果你在同一台上面用 mysql
$ sudo apt-get install mysql-server
安装 Passenger 和 Nginx
使用 Passenger 作为 App Server,参考:Passenger 官网
准备安装 Passenger 的前置动作
加上官方的 APT Repos,加入 PGP key
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
加上 apt 对 https 支援
$ sudo apt-get install apt-transport-https ca-certificates
建立一个档案在 /etc/apt/sources.list.d/passenger.list
因为我们使用 Ubuntu 14.04 LTS 版本,所以只要在这档案里面加上
# Ubuntu 14.04
deb
https://oss-binaries.phusionpassenger.com/apt/passenger trusty main
保护好这个档案
$ sudo chown root: /etc/apt/sources.list.d/passenger.list
$ sudo chmod 600 /etc/apt/sources.list.d/passenger.list
完成後更新一下
$ sudo apt-get update
安装 Passenger 和 Nginx
$ sudo apt-get install nginx-extras passenger
安装完後,这个动作会让我们的 ruby 回去使用到旧版的。执行: /usr/bin/ruby -v 会看到变成 1.9.3,因此我们要修正回我们要的新版。
$ sudo rm /usr/bin/ruby
$ cd /usr/bin
$ sudo ln -s /home/ubuntu/.rvm/rubies/default/bin/ruby ruby
编辑 Nginx 的设定,启用 Passenger 相关设定。位置:/etc/nginx/nginx.conf
将 passenger_root 和 passenger_ruby 拿掉前面 # 号取消注解。
重新启动 Nginx 去让刚刚修改的设定生效
$ sudo service nginx restart
安装完後,用浏览器连上自己机器看看。
如果连不上,请记得检查一下 EC2 的 Security Group 有没有开启 port 80 和 443。
到这边你已经准备好你的开发/布署环境了
开始建立第一个 Rails App 或是 deploy 你的 Project
cd 回到自己 home 目录,建立一个新专案,执行
$ cd ~
$ rails new my-first-project
到 my-first-project 内的 public 资料夹执行 pwd 看一下路径复制起来後面要用
$ cd my-first-project
$ pwd
注解原本的 Nginx default server
修改 /etc/nginx/site-available/default
$ cd /etc/nginx/sites-available
$ sudo vi default
将 listen 80 default_server; 这行前面加上 # 注解起来
在 /etc/nginx/site-available 下新增一个档案取为 my-first-project
$ sudo touch my-first-project
$ vi my-first-project
内容如下:
自行将 YOUR_EC2_INSTANCE_PUBLIC_DNS 和 PATH_TO_YOUR_PROJECT_PUBLIC_DIR
分别改为你的 EC2 Public DNS 如:ec2-52-1-1-6.compute-1.amazonaws.com或是买的网址和刚刚 public 资料夹的路径,如:/home/ubuntu/my-first-project/public,完成後存档离开
server {
listen 80 default_server;
server_name YOUR_EC2_INSTANCE_PUBLIC_DNS;
passenger_enabled on;
passenger_app_env development;
root PATH_TO_YOUR_PROJECT_PUBLIC_DIR;
}
启用你的网站
$ cd ../sites-enabled
$ sudo ln -s ../sites-available/my-first-project my-first-project
$ sudo service nginx restart
以上参考
http://cateyes.logdown.com/posts/259480-install-ruby-22-rails-42-passenger
但是装好後我自己是用ruby 2.0 & rails-4.0
先装RAILS 4.0
gem install rails -v 4.0 --no-ri --no-rdoc
再装ruby-2.0
rvm install ruby-2.0.0-p598
然後再COPY你的专案到AWS EC2上
在专案下bundle install
rails server 可以运行应该就OK了
然後再去 /etc/nginx/sites-enable/你的专案设定档
指向到你的专案下即可
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.224.48.223
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ruby/M.1432183193.A.460.html
1F:推 abc0: p598有点旧, 建议装p645, 至少没有openssl漏洞 05/21 21:51
2F:→ nvizero: 还有要修改.bashrc 05/25 10:21
3F:→ nvizero: Source ~/.rvm/scripts/rvm 05/25 10:21
5F:推 livil80101: 感谢 10/02 20:57