Linuxでparse-serverを立てる一連の流れ



#Ubuntu16.04の場合
##nodeを入れる

```
#最新のnodeとnpmを入れる
sudo apt-get update -y
sudo apt-get install -y nodejs npm
sudo npm cache clean
sudo npm install n -g
sudo n stable
sudo apt-get purge -y nodejs npm
sudo npm update -g npm
sudo chown -R $USER:$(id -gn $USER) /home/ubuntu/.config
```

##Parse関係を入れる
```
sudo npm install -g parse-server parse-dashboard
```

##MongoDBを入れる
参考: https://docs.mongodb.com/master/tutorial/install-mongodb-on-ubuntu/
2017/06/22の時点で最新

```
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org
```

#Amazon Linuxの場合
##nvmを入れる
最新バージョンは https://github.com/creationix/nvm#installation を参照

```
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
```
	
##nodeを入れる
v8.1.2は2017/06/22の時点で最新

```
nvm install v8.1.2
```

##Parse関係を入れる

```
npm install -g parse-server parse-dashboard
```

##MongoDBを入れる
参考: https://docs.mongodb.com/master/tutorial/install-mongodb-on-amazon/#configure-the-package-management-system-yum

2017/08/31の時点で最新
変更するならバージョン番号あたりを

```
sudo sh -c "echo '[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc' > /etc/yum.repos.d/mongodb-org-3.4.repo"

sudo yum install -y mongodb-org
```

#MongoDBとりあえず起動確認してみる
serviceで起動させる場合には **777** にしておく必要がある

```
mkdir -m 777 -p /media/volume0/mongodb/log
mkdir -m 777 -p /media/volume0/mongodb/db
mongod --config mongod.conf
```

	
##mongod.conf
公式を[参考](https://docs.mongodb.com/v3.0/reference/configuration-options/)にYAMLで書く
デフォルトでは`/etc/mongod.conf`を読みに行くので書き換える

```yaml
storage:
    dbPath: /media/volume0/mongodb/db
    journal:
    enabled: true
    engine: "wiredTiger"
    wiredTiger:
    engineConfig:
        directoryForIndexes: true
        cacheSizeGB: 1
processManagement:
   fork: true
net:
    port: 27017
    bindIp: 127.0.0.1

systemLog:
    destination: file
    path: /media/volume0/mongodb/log/mongodb.log
    logAppend: true
```

#mongodをserviceで起動する

```
sudo service mongod start
```

##自動起動
###Ubuntu16.04の場合

```
sudo systemctl enable mongod.service 
```

##マシンを再起動したら起動しなくなる場合がある
`/data/db`が無いとか言われる場合があり、その場合は `mongod -f /etcmongod.conf`


###Amazon Linuxの場合
`sudo ntsysv`で確認できるように、勝手に自動起動するようになっている？

#Volumeをマウント
##Ubuntu16.04の場合
ext4でフォーマットしてマウントして所有者変更

```
sudo mkdir -m 775 -p media/volume0 #好きなmount場所
sudo chown ubuntu /media/volume0/
sudo mkfs.ext4 /dev/vdc #vdcは場合による
sudo mount /dev/vdc /media/volume0/
```

###自動マウント
`sudo blkid /dev/vdc`で取得したUUIDを`/etc/fstab`に追記

```
UUID=<YOUR_UUID>       /media/volume0  ext4    user_xattr      0       1
```
	

#parse-serverとparse-dashboardの起動

この記事を参考にする。[Parse Serverの死活管理と設定変更したらすぐ自動で反映されるようにする](http://qiita.com/KoheiKanagu/items/b02fed82ddad4ed51928)


# apache2でリバースプロキシ
`/etc/apache2/conf-enabled/*.conf`の例

```
ProxyPass        /parse http://localhost:4040/parse
ProxyPassReverse /parse http://localhost:4040/parse
ProxyRequests    off

ProxyPass        /your_parse_mountPath http://localhost:1340/your_parse_mountPath
ProxyPassReverse /your_parse_mountPath http://localhost:1340/your_parse_mountPath
ProxyRequests    off
```

localhost:4040はparse-dashboard
localhost:1340はparse-server

/parseはparse-dashboardのパラメータが `--mountPath /parse` だったのでそれに合わせている。
すると、`http://localhost:4040/parse/apps` でdashboardにアクセスできる。


## Amazon Linuxの場合

```
sudo yum install httpd
sudo service httpd start
sudo chkconfig httpd on
```
`chkconfig --list httpd`で確認
実行レベル2、3、4、5でonなら良い
参考: [チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html)

設定ファイルは
`/etc/httpd/conf.d/YOUR.conf`

restartはこれ
`sudo /etc/init.d/httpd restart`


## Ubuntu16.04の場合

```
sudo apt-get install apache2
```

自動起動は勝手になってる？

設定ファイルは
`/etc/apache2/conf-enabled/YOUR.conf`

restartはこれ
`sudo /etc/init.d/apache2 restart`


#tips

##VSCodeでサーバ上のファイルを編集したい
`ext install remote-vscode`をインストールして、`>Remote: Start Server`しておく
[remote-vscode](https://github.com/rafaelmaiolla/remote-vscode)

.ssh/configを

	Host parse
	     hostname xxx.xxx.xxx.xxx
	     user your_user
	     ForwardAgent yes
	     RemoteForward 52698 localhost:52698


サーバ側にrmateを入れる

	sudo wget -O /usr/local/bin/rmate https://raw.github.com/aurora/rmate/master/rmate
	sudo chmod a+x /usr/local/bin/rmate



`rmate hogehoge.txt`でvscodeが起動する

##sudoするときに`sudo: unable to resolve host`が出たら

	sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'