Help us understand the problem. What is going on with this article?

Windows10でRails5.2.3を動かしてみる

More than 1 year has passed since last update.

はじめに

Windows上でのRails開発は決して万人に勧められるものではありません。
Ruby開発においてWindowsがマイノリティであり
さらにRailsを実際に運用するとなると多くの場合Linuxを用いるので
WindowsでRailsを開発するための情報に需要がなくネットに情報を上げている人は限られ
自力でトラブルを解決する必要があり、それが出来ない初心者が手を出してはいけません。

Vagrantを用いてCentOS環境を作った方が数段楽です。
また、Win10ならばWSLで動かす方法もあるらしいです。

(正直ここでこの記事を終わりにしたい)


用意するもの

  • Windows 10(x64版)
    x32でもdlfcnを適切にインストールできればやれないことはない気はしますが
    ここでは確かめていません。
  • Ruby 2.6.3
    MSYS2を既にインストールしてあるのならばdevkit付き版でなくてもいいですが
    MSYS2をインストールしたくないというのは無理です。
    cloud9やpaiza cloudを用いてください

インストール

Rubyをインストールします。

rapture_20190427185644.png
- [x] Add Ruby executable PATH (Ruby実行ファイルをPATHに登録する)
- [x] Associate .rb and .rbw files with this Ruby Installation (.rbおよび.rbwを関連付けする)

については、外したければ外してもいいです。
PATH登録しないと面倒だとは思いますが、関連付けについてはどうでもいいです。

rapture_20190427185723.png
rapture_20190427185926.png

この2箇所の☑については外しません。

rapture_20190428130503.png
この画面がでるので、1 2 3と半角空白区切りで入力してください。

rapture_20190428130523.png
こうなるので最後のsuccessedを確認したらEnterを押して閉じます。

Rubyを起動してみる

その後、任意の作業用ディレクトリを作成し開いたら
rapture_20190428130639.png
アドレスバーにcmdと入力しコマンドプロンプトを起動します。

Railsを起動する際にsqlite3のビルドが厄介なので先にやっておきます。

コマンドプロンプトに入力
ridk exec pacman -S mingw-w64-x86_64-dlfcn --noconfirm
gem install sqlite3

なお、PATH登録をしていない場合はそれぞれフルパスを入力すること

Railsをインストールし起動

あとは、普通に

コマンドプロンプトに入力
gem install rails
rails new .
rails s

ができるはずです。

Windowsでおきるトラブル

最後に、Ruby+Windowsで頻発するトラブルについて書いておきます。

  • UTF-8とShift_JIS(cp932)絡みの文字化け
  • コンソールに日本語が入力できない
  • forkができない
  • コンソールが止まる
  • rbenvが使えなくてめんどくさい
  • フォルダへのパスに日本語が混じっていると動かない(ことがある)
  • Railsのcredentials.yml.encが編集できない

など、とてもめんどくさいので大人しくLinux環境を作りましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away