LoginSignup
3
3

More than 3 years have passed since last update.

EC2にapache + rails環境を構築する

Last updated at Posted at 2020-03-14

参考サイト

es2の設定
(デプロイ編①)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
Linuxグループ作成方法!groupaddで意外とすぐできる
usermodコマンドについて詳しくまとめました 【Linuxコマンド集】

apacheインストール
Red Hat

passengerインストール
phusion/passenger - Github

mysqlインストール
CentOS7.3 に MySQL5.7 をインストールした時のメモ - Qiita

apache,rbenvインストール参考サイト
EC2にRails5環境を構築する - Qiita

getの設定
Git
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!エラー
SSH接続エラー回避方法:.ssh/known_hostsから特定のホストを削除する/削除しないで対処する3つの方法 - Qiita

バージョン

アプリケーション version
AMI Amazon Linux 2
Ruby 2.5.3
Rails 5.2.3
Apache 2.4.41
MySQL 5.7
Passenger 6.0.4

インスタンス設定

・ユーザの作成

$ sudo adduser <ユーザ名>
$ sudo passwd <ユーザ名>
$ sudo visudo
##vim~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
root     ALL=(ALL) ALL # の下に追記
<ユーザ名> ALL=(ALL) NOPASSWD:ALL
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ su - <ユーザ名>

・グループの作成、グループにユーザ追加

$ sudo groupadd <グループ名>
$ tail /etc/group
$ sudo usermod -g <グループ名> <ユーザ名>
$ id <ユーザ名>

・タイムゾーンを日本時間に設定

$ date
$ sudo cp -r /usr/share/zoneinfo/Japan /etc/localtime
$ sudo vim /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=true
$ date

apacheインストール

・apacheインストール

$ sudo yum -y update
$ sudo yum -y install httpd
$ sudo systemctl start httpd
$ sudo systemctl status httpd
$ sudo systemctl enable httpd.service
$ httpd -version

mysqlインストール、設定

・mysqlインストール

$ sudo yum -y install mysql-devel
$ sudo yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
$ sudo yum info mysql-community-server
$ sudo yum -y install mysql-community-server
$ mysqld --version

・mysqlの設定

$ sudo systemctl start mysqld
$ sudo systemctl status mysqld
$ sudo systemctl enable mysqld
$ sudo cat /var/log/mysqld.log | grep password
$ sudo mysql_secure_installation
$ mysql -u root -p

# ポリシー変更してパスワードの変更
mysql> SHOW VARIABLES LIKE 'validate_password%';
mysql> set global validate_password_length=6;
mysql> set global validate_password_policy=LOW;
mysql> use mysql
mysql> update user set authentication_string=password('パスワード') where user='root'; 
mysql> flush privileges;

Gitのインストール、設定

gitのインストール

$ sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
$ sudo yum -y install git2u yum-utils
$ sudo yum-config-manager --disable ius
$ git --version

# git flow install
$sudo curl -OL https://raw.githubusercontent.com/nvie/gitflow/develop/contrib/gitflow-installer.sh
$ sudo bash gitflow-installer.sh
$ git-flow

$ cd
$ mkdir .ssh
$ chmod 700 .ssh
$ ll -al
$ cd .ssh
$ ssh-keygen
$ cat <キー名>.pub

# 公開鍵をgithubに登録

# キーを命名した場合↓
$ sudo vi config
##vim~~~~~~~~~~~~~~~~~~~~~~~~
Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/<キー名>
  User git
##~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ ssh -T git@github.com

rbenvインストール手順

・rbenv install

$ sudo yum install -y gcc gcc-c++ openssl-devel readline-devel
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ cat ~/.bash_profile
$ source ~/.bash_profile
$ rbenv -v
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ rbenv install -l

Railsアプリをインスタンス上に配置、立ち上げまで

$ sudo mkdir /sample
$ chown <ユーザ名>:<グループ名> /sample/
$ cd /sample
$ mkdir rails
$ cd rails
$ git clone <クローンするアプリ>

・Rubyのバージョン確認

$ cd <アプリのパス>
$ cat .ruby-version

・rubyのインストール

$ rbenv install -v 2.5.3
$ rbenv rehash
$ rbenv global 2.5.3
$ ruby -v

・bundlerのインストール

$ cat Gemfile.lock
##cat~~~~~~~~~~~~~~~~~
BUNDLED WITH
   2.0.2
##~~~~~~~~~~~~~~~~~~~~

$ gem install bundler -v 2.0.2

・ railsアプリ立ち上げ

$ bundle install --path vendor/bundle
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ bundle exec rails s -d
$ ps aux | grep puma
$ curl http://localhost:3000
$ $ kill -9 <pumaのプロセスid>

Passengerのインストール

・passengerのインストール

$ gem install passenger
$ passenger-install-apache2-module

apache設定

$ sudo vim /etc/httpd/conf.d/sample.conf

##vim~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<VirtualHost *:80>
  ServerName <ip または ドメイン>
  DocumentRoot /sample/rails/<アプリ名>/public
  RackEnv production
  <Directory /sample/rails/<アプリ名>/public>
    AllowOverride all
    Require all granted
  </Directory>
</VirtualHost>

# passengerのモジュールインストール時に出でくるものを貼る
LoadModule passenger_module /home/*****/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /home/*****/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/passenger-6.0.4
  PassengerDefaultRuby /home/*****/.rbenv/versions/2.5.3/bin/ruby
</IfModule>

##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$ sudo systemctl restart httpd

でブラウザーからアクセスするとアプリが立ち上がっていると思います。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3