Vagrant/CentOS7 – Railsのインストール

概要

Vagrant + VirtualBox + CentOSの環境にRuby、MySQLをインストール後、Railsをインストールするのにいろいろと躓きながら進めた記録。

構成

  • Vagrant : 2.2.14
  • VirtualBox : 6.1.18
  • Box : bento/CentOS-7.7
  • mysql : Ver 8.0.23 for Linux on x86_64
  • Ruby : ruby 3.0.0p0
  • Rails : Rails 6.1.3

インストール概略

階層が下のものは今回必要になったもの。

  • SELinux、firewalldの停止
  • Railsインストール
    • sasscインストール
      • g++インストール
    • mysql-develインストール
      • Node.jsインストール
  • Railsサーバー実行
    • webpackerインストール
      • Node.jsインストール(再掲)
      • Yarnインストール

利用手順

アプリケーション生成

sqlite3がデフォルトで未インストールではエラーが出るため、コマンドラインでmysqlを指定。

  • rails new app_name -d mysql
  • rails new app_name --database=mysql

database.ymlの修正

データベースを使わない場合は、development、test、productionの各database:をコメントアウト/削除。

Railsサーバー起動

アプリケーションディレクトリー内で以下を実行。

rails s -b 0.0.0.0

ブラウザから以下でアクセス。

localhost:3000

Railsに影響する機能の停止

Railsをインストール・稼働させるにあたって、Railsに影響を与える機能を停止させる。

SELinux

アクセス制御機能のSELinuxのステータスがEnforsingの場合にはPermissiveになるよう設定する。

firewalld

ファイアーウォール・サービスfirewalldが有効の場合は無効化する。

Railsのインストール

Rails本体のインストール

インストール後のバージョン確認。

エラー1~アプリ生成時~sassc

sasscパッケージがない

Railsインストール後にアプリケーションを生成しようとすると、sasscインストール時にエラーとなる。

sasscインストール時にg++がない

メッセージに従ってsasscをインストールしようとするとエラーになる。g++がないのが原因らしい。

参考サイト:centos7でsassc 2.0.0 with native extensionsのインストールに失敗

gcc-c++はあるようだが・・・

インストールしてみる。

sasscのインストール成功

gcc-c++をインストールしてみると、無事sasscがインストールできた。

エラー2~アプリ生成時~sqlite3

sqlite3エラー

再度アプリケーションを生成すると、まだsqlite3に関するエラーが残っている。使いたいのはmysql。

mysql-develのインストール

mysqlを使いたいので、mysql-develの存在を確認。

yum list | grep mysql-devl

存在しない場合はインストール。

Node.jsがないというエラー

生成時にエラーが発生したアプリケーションをいったん削除し、データベースにmysqlを指定してアプリケーションを生成。

railsサーバー起動でもエラー

webpackerエラー

ここでいったんrails sでサーバーを起動すると、webpackerの設定ファイルがないというエラー。

webpackerインストールエラー

webpackerインストール時の”Please run rails webpacker:install”に従ってインストールしようとすると、ここでも”Node.jsがない”というエラーが出てサーバーが起動しない。

Node.jsのインストール

アプリケーション生成時、Railsサーバー実行時に共通してNode.jsに関するエラーが出ているので、Node.jsをインストール

当初、最新版のv15.10.0をインストールした。

再度webpackerインストールでエラー

再度webpackerをインストールしようとすると、Node.jsの警告とYarnに関するエラーが出てストップ。

Node.jsのダウングレード

Node.jsの警告も気持ち悪いので、ダウングレード。

ダウングレードしたNode.jsを使用。

ここで再度webpackerをインストールしようとすると、まだ”Yarnがインストールされていない”というエラーが残っている。

Yarnのインストール

npmでYarnをインストールする。

参考:Yarn公式サイト

webpackerインストール

Node.jsとYarnがそろったので、webpackerがインストールできた。

Railsサーバー起動・接続

vagrantfile設定

vagrantfileには以下の1行を設定している。

サーバー起動・接続

ここでrails sでサーバーを起動するが、ブラウザーがつながらない。

参考サイト(Rails4.2:Vagrant上の仮想マシンで起動したRailsにホストのブラウザからアクセス出来ない)のおかげで、Railsサーバーを以下で立ち上げるとよいことが分かった。

この状態で、ホストのブラウザーからlocalhost:3000でつながった。

アプリケーション生成~成功

ここで再度アプリケーションを生成して成功。

viなどでdatabase.ymlを修正。

Railsサーバー起動。

ホストのブラウザーからlocalhost:3000で接続。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です