マグカップの裏

プログラムとか、思ったこととか、料理とか

CentOS7にCloud9を導入してみた話

大体は題名の通り。
以前より下記記事にてAndroid上でのコーディングを考えていた。



厳密にはAndroid上でのコーディングではなくなったのだが、別にスタンドアロンである必要はないのでサーバ上にインストールしたCloud9を使ってコーディングするぜ!ということになったのである。


なのでCloud9にインストールする手順のメモ。

環境

  • 以前Codiadだかをインストールしたときと同じ、Windows上のvmwareにインストール。
  • OSはCentOS7
  • ブリッジ接続にして、ポートフォワードとかは各自適切な設定をした上でやろう

必須環境のインストール

まず、どうもCloud9はPythonを使っているようだ。
個別にインストールしてもいいけど色々依存はあるので面倒だから私は下記を使った。

yum groupinstall -y 'Development Tools'

まあすでに前に一度やってたのでやらなくてもよかった。
これでいいんです。
あとは必要な依存としては下記をやっておく。

yum install -y glibc-static

これはgroupinstallでははいらなかったので個別に。

あとはnodeとかなんだけど、個別でいれなくてもCloud9は自分でいれてくれる。
でも私は個別でいれたかったからいれた、いれない場合nodeコマンドを打つときにCloud9がインストールしたパスを調べてやりましょう。

nodeのインストールはこう。

$cd /tmp
$wget https://nodejs.org/dist/v4.2.1/node-v4.2.1.tar.gz
$tar xvf node-v4.2.1.tar.gz
$cd node-v4.2.1
$./configure
$make
$su
#make install


node -vとかやってバージョンが表示されればおk。バージョンがかなり違うんですが普通に動いてくれたから問題ないでしょう()
動かなかった場合は知りません。

Cloud9をインストール

Cloud9のインストールの注意ですが、まず一般ユーザでインストールしましょう。Cloud9にroot権限を与えればrootでも使えるのかもしれませんが、危険ですし面倒なので。


こんな感じ。

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


すごいたくさん色々標準出力にでてきます。
最後にSuccess!!みたいなのが出てきたら下記を実行。

$node server.js -p 8080 --listen IPADDRESS -a :

これで自身のアドレス:8080にアクセスすれば繋がるはず。
Firewallとかは頑張ってください。

でもこれだと外部から繋いだときに色々ダサいので、nginxでリバースプロキシやります。
SSLの証明書は各自用意してください。私は貧乏人なのでオレオレ証明書です。
こんな感じで「/etc/nginx/conf.d/cloud9.conf」とかに書きましょう。

server {
    listen       443 default ssl;
    ssl on;
    ssl_certificate /var/www/ssl/server.crt;
    ssl_certificate_key /var/www/ssl/server.key;
    server_name  サーバにアクセスできるURIとか;
    location / {
        proxy_pass   http://Cloud9のListenしてるIP:8080;
    }
}

これでnginxがフロントエンドで443で受け付けて、443へのアクセスがserver_name宛に来ていたら8080ポートにぶん投げてくれます。
あとは今までコーディングしていた環境にあるファイルとかを持ってきましょう。
gitとか使うなり、共有フォルダをつくってマウントするなり、ここは比較的簡単かな。