Railsローカル環境構築
2018年01月24日
目次
railsのローカル環境構築
こんにちはウェブエンジニアのジワタネホです。
今日はrailsのローカル環境構築を備忘録として。
まああんまり何回もやることではないから、やる度に最新のトレンドが変わってたりするかもですが。
みなさんの参考になれば!!
ローカル環境構築概要
まず本記事のゴールから
- 作業環境はMac High Sierra
- 作業は、ターミナルとテキストエディタ(私はsublimetext)
- 仮装環境はVagrant。
- で、仮装環境のOSはCentOS7。
- DBはMysql(MariaDB)
- railsのバージョンは5系
こんなところでしょうか。
参考サイト
ほぼ以下二つの記事でいけると思います。
https://qiita.com/SanoHiroshi/items/892a8516f4a6445e1e05
https://gabekore.org/mac-ruby-rails-overview
手順1:仮想環境準備
細かい説明は省きます。VagrantとVirtualBoxをインストールします。
ローカルで開発を進めるために、サーバーを自分のパソコンに作ると言うイメージを持っていれば良いと思います。
手順2:Vagrant環境構築
以下コマンドで仮想サーバーを構築します。
$ mkdir Vagrant $ cd Vagrant $ vagrant init bento/centos-7.1
これでvagrantの設定ファイルが作成されます。
今回はcentos7で行きます。
で、作成された設定ファイルを修正して、ポート設定をします。
とは言っても以下だけ。
$ vi Vagrantfile
Vagrant.configure(2) do |config| # The most common configuration options are documented and commented below. # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. # Every Vagrant development environment requires a box. You can search for # boxes at https://atlas.hashicorp.com/search. config.vm.box = "bento/centos-7.1" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. # config.vm.box_check_update = false # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. //ここの#をはずして書き換える config.vm.network "forwarded_port", guest: 3000, host: 3000 # Create a private network, which allows host-only access to the machine # using a specific IP. # config.vm.network "private_network", ip: "192.168.33.10" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. # config.vm.network "public_network"
ここまで言ったら仮想サーバーを起動します。最初は少し時間がかかります。
$ vagrant up
手順3:共有ファイルマウント
仮想サーバーのファイルとローカルファイルを共有します。
これにより、ローカルのファイルを編集すると仮想サーバーにある同ファイルも更新されます。
$ vi Vagrantfile # Share an additional folder to the guest VM. The first argument is # the path on the host to the actual folder. The second argument is # the path on the guest to mount the folder. And the optional third # argument is a set of non-required options. 40行目あたりコメントアウトして名前を変える config.vm.synced_folder "../", "/your_app_name"
第一引数が仮想サーバー側のパス。第二引数がローカルファイルのパスです。
二番目の名前はご自由にどうぞ。
あとは以下コマンドで必要なものをインストールします。
#仮想環境 $ vagrant ssh $ sudo yum install kernel-devel $ sudo yum install gcc make $ exit #ローカル $ vagrant plugin install vagrant-vbguest $ vagrant vbguest 設定を反映させるコマンド $ vagrant reload
うまくマウントできているか確認します。
$ vagrant ssh $ cd /your_app_name/ $ ls Vagrantfile
上記の結果が出ればとりあえずok
手順4:Ruby,rails等のインストール
ざっと以下をコマンドでインストール
$ vagrant ssh $ sudo yum update $ sudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison git Gitが入ったか確認 $ git --version git version 2.2.2 rbenvをいれる $ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ source ~/.bashrc $ exec $SHELL -l $ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build $ cd ~/.rbenv/plugins/ruby-build $ sudo ./install.sh 以下のコマンドが使えればOK。 $ rbenv install -l Rubyのインストール $ rbenv install 2.3.0; rbenv rehash $ rbenv global 2.3.0 ちゃんと入ったか確認 $ ruby -v ruby 2.2.2 $ which gem ~/.rbenv/shims/gem $ which ruby ~/.rbenv/shims/ruby bundlerをいれてRailsのインストールする $ gem install bundler --no-rdoc --no-ri Successfully installed bundler-1.10.6 $ sudo rbenv rehash $ gem install rails $ rbenv rehash $ rails -v Rails 4.2.3 $ which rails ~/.rbenv/shims/rails
手順5:MySQL設定
$ sudo yum -y install mariadb-server $ sudo vi /etc/my.cnf [mysqld] #この一行を追記する character-set-server=utf8 データベース起動 $ sudo systemctl start mariadb 自動起動設定 $ sudo systemctl enable mariadb rootやセキュリティの設定を一括で行う $ sudo mysql_secure_installation rootで入れるか試す $ mysql -u root -p railsで使う準備 $ sudo yum install mysql-devel $ gem install mysql2 共有フォルダへ移動する $ cd /vagrant $ rails new AppName --skip-bundle -d mysql $ cd Vagrant
手順6:あとちょっと!!
さてrailsアプリのファイルがとりあえずできましt。
最後にローカル環境で、Gemfileを編集します。
コメントアウトを外す gem 'therubyracer', platforms: :ruby
$ bundle install
あとはDBを作成します。
まずは、config.database.ymlを編集します。
default: &default adapter: mysql2 encoding: utf8 pool: 5 username: root ここに「sudo mysql_secure_installation」を打った時に設定したrootのパスワードを設定する password: パスワードを追記 socket: /var/lib/mysql/mysql.sock
テーブルを作ります。
$vagrant ssh $ mysql -u root -p MariaDB [(none)]> CREATE DATABASE Vagrant_development; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> CREATE DATABASE Vagrant_test; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> CREATE DATABASE Vagrant_production; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> quit
そしてrails起動!!
$ rails s -b 0.0.0.0 => Booting WEBrick => Rails 4.2.5.1 application starting in development on http://0.0.0.0:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2016-02-26 18:30:18] INFO WEBrick 1.3.1 [2016-02-26 18:30:18] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux] [2016-02-26 18:30:18] INFO WEBrick::HTTPServer#start: pid=6551 port=3000
これでlocalhost:3000にアクセスできるはず!!
最後に
備忘録的にザーッと書きました。
細かい意味など気になる方は、各コマンドをググってもらえればwww
本日はここまで!