2018年5月8日火曜日

Cloud9を自サーバにインストールしてどこでもコーディング

勉強の為に転載しました。
https://kijtra.com/article/cloud9-install/

2015/09/14  Cloud9  Editor
Cloud9 はWebサービスとして提供されているオンラインIDEだけど、オープンソースなので自前のサーバー(さくらVPS等)にインストールしても使うことができるため、なんとなく使ってみた。
今回は さくらインターネットのVPS で最安の 512プラン を持っていたので、そこで使ってみた。
OSは CentOS 6.7 ( yum -update により6.6から6.7になった)。
自前インストールだと Node.js を使ってコマンドによりサーバーを立ち上げ、そこにアクセスして使うことになる。
でも使うたびに毎回サーバーを起動する必要があるので、最終的には 立ち上げっぱなし の状態にし、さらに サブドメイン下で動くように したい。
Cloud9 SDK の公式Github
https://github.com/c9/core/

必要なライブラリ等のインストール

Cloud9 のインストールに最低限必要なのは Python2.7以上 と glibc-static というyumパッケージ。
その2つをインストールする。
※ Node.js周りのものはCloud9インストーラが勝手に入れてくれるので、自分で入れなくても良い
まずは glibc-static 。
  1. sudo yum install glibc-static
次にPython。
少し手順が多いので下項で。

Python2.7.9のインストール

CentOS6 の yum リポジトリには Python2.6 までしかないため、どうしてもソースからインストールする必要がある。
また、すでに入っている Python2.6.6 はそのままにして、2.7 を別でインストールすることになる。
いくつか調べると以下のサイト(英語)のインストール方法が一般的なようなので、基本的にこの通りにする。
http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/
まず必須ライブラリのインストール。
  1. sudo yum groupinstall "Development tools"
  2. sudo yum install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
上記参考サイトでは wget が入っていないので追加している。(後ほど使うため)
また、ウチの環境では yum groupinstall "Development tools" が、以下のようなメッセージが出て動かないような感じだった。
Warning: Group development does not have any packages.
No packages in any requested group available to install or update
それでもまあ最終的にCloud9を使えてるのでよしとするw
次にライブラリのパスを設定する。
CentOS6 では、デフォルトで /usr/bin/python にパスが通っているけど、Python2.7は /usr/local/bin/python2.7 というパスにインストールされる。
そのためPythonライブラリ群のパスを指定する必要があるらしく、 /etc/ld.so.conf というファイルを編集する。
  1. sudo vi /etc/ld.so.conf
以下のように記述する。(2行目が追記した部分)
  1. include ld.so.conf.d/*.conf
  2. /usr/local/lib
上記の設定を反映するコマンド。
  1. sudo /sbin/ldconfig
次にPythonのソースをダウンロードしてインストール。
  1. wget http://python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
  2. tar xf Python-2.7.9.tar.xz
  3. cd Python-2.7.9
  4. ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared
  5. make
  6. sudo make altinstall
最後の altinstall が、Python2.6.6 とは別にインストールするという指示らしい。
わりと時間がかかるけど、終わったら念のためもう一度パス設定を反映する。
(これをやらないとパスが通らないことがあった)
  1. sudo /sbin/ldconfig
インストールされたか確認
  1. python2.7 -V
  2. # 「Python 2.7.9」と出ればOK

Cloud9 SDK のインストール

手順は簡単だけど、注意点としては root権限ではインストールできない という点。
sudo -s とか su - とかでrootに成っている場合は一般ユーザーに切り替える。
その 一般ユーザーのルートディレクトリでインストールする ので、ディレクトリ移動。
  1. cd ~
それと、もう一つ注意点としてシェルが日本語になっているとうまくいかない。
念のため確認して英語にしておく。
  1. sudo vi /etc/sysconfig/i18n
以下のように記述
  1. LANG="en_US.UTF-8"
やっと本体インストール。
GitでSDKを c9sdk というディレクトリにダウンロードする。
  1. git clone git://github.com/c9/core.git c9sdk
ダウンロードフォルダに移動して・・・
  1. cd c9sdk
インストーラを実行
  1. scripts/install-sdk.sh
これもかなり時間がかかるけど、成功すると以下のようなメッセージが出る。
Success! run ‘node server.js -p 8080 -a :’ to launch Cloud9
node server.js -p 8080 -a : というコマンドで立ち上げできるよ!というメッセージだけど、今はまだ無視。

サブドメインでアクセスできるようにする

Cloud9を立ち上げると、そのままでは http://XXX.XXX.XXX.XXX:8080 というようなアドレスでしかアクセスできない。
なので、http://c9.example.com といったURLでアクセスできるようにする。

Apacheの場合

  1. <VirtualHost *:80>
  2. ServerName c9.example.com
  3. ProxyPass / http://127.0.0.1:8080/
  4. ProxyPassReverse / http://127.0.0.1:8080/
  5. ProxyPreserveHost On
  6. </VirtualHost>

Nginxの場合

  1. server {
  2. listen 80;
  3. server_name c9.example.com;
  4. location / {
  5. proxy_pass http://127.0.0.1:8080;
  6. }
  7. }

Cloud9 IDE、起動!

ここまでがわりと長い・・・。
起動コマンドは以下のような感じ。
オプションについては公式GitHubに説明がある
  1. node ~/c9sdk/server.js -p 8080 -w ~/public/ -a username:password
ひとつずつ説明すると、
  • node ・・・ Node.js使用コマンド
  • ~/c9sdk/server.js ・・・ サーバー起動スクリプト
  • -p 8080 ・・・ 使用するポート
  • -w ~/public/ ・・・ 「~/public/」以下のディレクトリがCloud9管理対象
  • -a username:password ・・・ Basic認証する場合の ID:パスワード
といったコマンド。
これで http://c9.example.com にアクセスするとIDEが起動するはず。
ちなみに編集権限のないディレクトリ内のは当然編集できない。
なので、サーバーの別ユーザーのディレクトリを編集したい場合は、そのユーザーでログインしてCloud9をインストールする必要がある。
ちなみにIDEの設定などは ~/.c9/ というディレクトリに保存される。
SASS とか LESS とかの Builderスクリプト とか使う場合はそこに設定ファイルを保存することになる。
起動が確認できたら、いったんサーバーを落として(Ctrl + C)、下記立ち上げっぱなしにする設定に進む。

「node forever」で立ち上げっぱなしにする

npmが入っていない場合は入れる。
  1. sudo yum install npm
forever をグローバルインストールする。
(グローバルである必要はない)
  1. sudo npm install forever -g
forever を使って Cloud9 IDE を起動
  1. forever start ~/c9sdk/server.js -w /home/kijtra/public/dev -p 8080 -a username:password
以下のように出れば起動中。
  1. info: Forever processing file: /home/example/c9sdk/server.js
実行中ものをの表示したい場合
  1. forever list
Cloud9 IDE を停止する場合
  1. forever stop ~/c9sdk/server.js

以上だけど、Pythonのインストールあたりからわりと試行錯誤でやっと成功した感じ。
virtualenv とか使ったりしたけど、うまくいかなかった。
また、Cloud9自体が使っている人がほとんどいないので苦労した。
でも SASS や LESS 、CofeeScript のコンパイルができて、しかも Emmet にも対応しているのはびっくりした。
「SublimeText Mode」なるものもあり、見た目や動作を SublimeTextそっくりにすることもできる。
個人サイトなんかはすべてブラウザで完結できそう。

0 コメント:

コメントを投稿