【Rails】CentOSでのRails sでエラー(rails sできるまでと、その後のブラウザ表示)

VirtualBox内のCentOS7で初めて`rails s`を打ち込んだらエラーが発生。
`rails s`で無事に立ち上がった後にも、ブラウザでの接続を間違えていました。
解決までの道のりをメモとして残します。

# 動作環境
- Windows10(ローカルOS)
- CentOS7(リモートOS)
- Oracle VM VirtualBox 6.1(仮想マシン)
- Rails 6.0.3

# rails sをした時のエラー内容
```
/root/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/webpacker-4.2.2/lib/webpacker/configuration.rb:95:in `rescue in load': Webpacker configuration file not found /root/kaimono/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - /root/kaimono/config/webpacker.yml (RuntimeError)
```
```ruby:一部抜粋
Error: No such file or directory @ rb_sysopen - /root/kaimono/config/webpacker.yml (RuntimeError)
```
「Webpackerに関する構成ファイルが見つかりません」と・・・


> Rails6.0以上ではWebpackが標準装備されているため、Webpackerやnode.jsがインストールされていないことが原因です。

【引用元(参考記事)】
[【Railsエラー】Webpackerに関するエラーが出た時の解決方法を簡単に解説](https://techtechmedia.com/webpacker-error/)

# 解決まで(webpackerのインストールまで)
## webpackerのインストール(失敗)
```
rails webpacker:install
```
![Inkedimage1_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480714/dba50049-f755-3333-eaf0-804570628200.jpeg)

ふむ、webpackerの前にNode.jsのインストールが必要そうです。

## Node.jsのインストール
【参考記事】
[CentOS 7.5 に Node.js 11 系の最新版を yum インストールする](https://xn--o9j8h1c9hb5756dt0ua226amc1a.com/?p=3272)

### Node.js 11の公式リポジトリをCentOSに追加
参考記事のとおりに実行

```
yum install https://rpm.nodesource.com/pub_11.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm
```

### パッケージ情報の確認
```
yum info nodejs
```
![image2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480714/6eb9e8e8-978f-eb15-a497-d20a6cbd6c70.png)
公式リポジトリの追加をする前にバージョンを確認しようとするとエラーが発生しました。

### Nodejsのインストール
```
yum install nodejs
```

### バージョンの確認
#### Node.jsのバージョン
```
node --version
```
#### npmのバージョン
```
npm --version
```
![Inkedimage1_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480714/0ccf87b0-4cd7-a1ba-b11d-68b1ad5dfcb9.jpeg)

## webpackerのインストール(リトライ&失敗)
```
rails webpacker:install
```
![Inkedimage2_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480714/087d3c3a-fc90-26fb-c5ed-efa6ef6ce29d.jpeg)
今度は「yarnがインストールされていません」と・・・

## yarnのインストール
### yarnがインストールされているか確認
```
yarn -v
```
![Inkedimage3_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480714/4b9286df-e927-29af-40d8-0311b5794f50.jpeg)
案の定ありませんでした。

### yarnのインストール
【参考記事】
[yarnをインストールする](https://qiita.com/suisui654/items/1b89446e03991c7c2c3d)

```
npm install -g yarn
```

### yarnのバージョン確認
インストールされているか確認したときのコマンドと同じ

```
yarn -v
```
![Inkedimage1_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480714/d69eca2e-73c6-0dab-b556-436bb3c99aa5.jpeg)

## webpackerのインストール(3度目の正直)
```
rails webpacker:install
```
それなりに長い時間待って・・・
![image2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480714/2c42ed4b-ed9d-e43b-d802-3ce91a97e991.png)
かわいらしいアイコンとともに成功です。

これで`rails s`をすると無事にサーバーが立ち上がりました。

# ブラウザでうまく表示されない
```
rails s
```
このコマンドでブラウザに、CentOSで使用しているアドレス(192.168.○○.○○)を指定して接続しても正常に表示されませんでした。

> Macなどローカル開発している場合は特に問題ないのですが、他のサーバーにSSHで接続して開発している場合、接続することができません

【引用元(参考記事)】
[RailsでポートとIPアドレスを指定する方法](https://qiita.com/Tocyuki/items/de66987ead2183e4fcae)

なので、__-b__オプションでアドレスを指定します。

```
rails s -b 192.168.○○.○○
```
これでブラウザに`192.168.○○.○○:3000`を入力したら、無事に表示されました。

【参考記事】
[rails s -b 0.0.0.0 のオプション-bの意味](https://qiita.com/Masato338/items/f162394fbc37fc490dfb)