[心得]在AWS EC2 上裝ROR+nginx+mysql -SERVER

看板Ruby作者 (victor.st)時間9年前 (2015/05/21 12:39), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
如何在AWS EC2上設定 就請自己GOOGLE吧 使用 AWS EC2 環境 AMI:Ubuntu Server 14.04 LTS (HVM), SSD Volume Type - ami-9a562df2 建置環境 開始建置環境,建立一台新的 Instance 後,ssh 連進去開始建置。 $ ssh -i YOUR_KEY ubuntu@ec2.xxx.xxx.xxx.xx 更新一下 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://www.ptt.cc/bbs/Ruby/M.1432183193.A.460.html

05/21 21:51, , 1F
p598有點舊, 建議裝p645, 至少沒有openssl漏洞
05/21 21:51, 1F

05/25 10:21, , 2F
還有要修改.bashrc
05/25 10:21, 2F

05/25 10:21, , 3F
Source ~/.rvm/scripts/rvm
05/25 10:21, 3F

05/25 10:22, , 4F
Rvm 2.0.0@rails-4.0
05/25 10:22, 4F

10/02 20:57, , 5F
感謝
10/02 20:57, 5F
文章代碼(AID): #1LNM6PHW (Ruby)
文章代碼(AID): #1LNM6PHW (Ruby)