Centos7にgit、Nginx、Cloud9を入れた話

# はじめに
自分かよく使う構成なのでまとめました。

# やっていくこと

・Nginxのインストール(yumリポジトリがないから)
・gitとCloud9のインストール
・作業用ディレクトリの作成とCloud9の起動

# 実践

## Nginxのインストール

公式にやり方が乗っているので、その上で自分が使うものをインストールしていきます。
[nginx: Linux packages](http://nginx.org/en/linux_packages.html)

```
$ sudo yum install -y yum-utils
$ sudo vi /etc/yum.repos.d/nginx.repo
```

書き込むもの

```/etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
```

うまくいっているかの確認。以下の通りになればおk。

```
$ yum info nginx
利用可能なパッケージ
名前                : nginx
アーキテクチャー    : x86_64
エポック            : 1
バージョン          : 1.18.0
リリース            : 1.el7.ngx
容量                : 772 k
リポジトリー        : nginx-stable/7/x86_64
要約                : High performance web server
URL                 : http://nginx.org/
ライセンス          : 2-clause BSD-like license
説明                : nginx [engine x] is an HTTP and reverse proxy server, as well as
                    : a mail proxy server.
```

そしたら、インストールして起動までの設定もやっていく。

```
$ sudo yum install -y nginx
$ sudo systemctl enable nginx
$ sudo systemctl start nginx
```

ここで確認したくなるけど、多分表示されない。初期の設定だと、`firewall`と`SELinux`に捕まるからその設定をしにいく。また、この時`Cloud9`用のポートも開けておく。

```
$ sudo vi firewall.sh
```

```firewall.sh
#!/bin/sh

firewall-cmd --permanent --add-service=http --zone=public
firewall-cmd --permanent --add-service=https --zone=public
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --reload
```


```
$ sudo bash firewall.sh
```

これ以降、スクリプトを多用する。よくわからなかったら、全部の先頭に`sudo`をつけて実行してくれれば良い。

次に`SELinux`の設定。

```
$ sudo vi /etc/selinux/config
SELINUX=permissive
```

今回はpermissiveを試してみます。不安であれば、`disabled`でも良いと思います。設定を有効化するために再起動します。

```
$ sudo reboot
```

これでアクセスできるはずです。URLは、`http://localhost`または、端末のIPがわかれば`http://端末のIP`でいけるはずです。


## gitとCloud9のインストール

gitデフォルトで入ってるのでもいいんですが、最新のが良い場合は設定する必要があります。ツールのインストールをしていきましょう。

```install.sh
#!/bin/sh

# 必要なライブラリ取得
yum install -y glibc-static
yum install -y epel-release
yum install -y nodejs npm

npm install -g n
n stable

yum install -y npm --enablerepo=epel
npm install forever -g


# centos用の依存ライブラリーのインストール
yum -y install gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker autoconf wget
```

そうしたら、gitをインストールしていきます。

```
# ディレクトリへ移動
cd /usr/local/src

# サイトからgitの圧縮ファイルをインストール
sudo wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz

# ファイルを解凍
sudo tar xzvf git-2.9.4.tar.gz

# 圧縮ファイルを削除
sudo rm -rf git-2.9.4.tar.gz

# 解凍した Git ディレクトリに移動
cd git-2.9.4/

# make コマンドでインストール
sudo make prefix=/usr/local all
sudo make prefix=/usr/local install
```

gitのバージョン確認をしましょう。うまくいかなかったら再起動をしてみるとうまくいくかもしれせん。

```
$ git --version
```

Cloud9のインストール

```
$ cd
$ git clone https://github.com/c9/core.git c9sdk
$ cd c9sdk/
$ scripts/install-sdk.sh
```

## 作業用のディレクトリの作成とCloud9の起動

作業用ディレクトリを作成します。

```
$ cd
$ mkdir workspace
# $ chmod 777 workspace
```

そうしたら以下のコマンドで起動できます。

```
$ cd ~/c9sdk
$ node server.js -p 8080 -a user:password -w /home/user/workspace/ --listen サーバのIPアドレス
```
ログインするときに、ユーザー名とパスワードを聞かれているので、
ユーザー名：user
パスワード：password
と入力してください。止め方は、`ctl + c`です。

ただCLIを使えないと不便なので`forever`を利用していきます。

```
$ cd ~/c9sdk
$ forever start ~/c9sdk/server.js -p 8080 -a user:password -w /home/user/workspace/ --listen サーバのIPアドレス
```

止め方。

```
# 以下のコマンドでpidの番号を調べてください
$ forever list
例) pid 1950

$ forever stop 1950
```

## 参考

[CentOS 7に最新版のNode.jsをインストールしてみよう！](http://exrecord.net/how-to-install-latest-nodejs)