サイトアイコン IT NEWS

自宅サーバー(CentOS 7)にCloud9をインストールする方法

cloud9-centos7-install

この度、AWSに買収されたCloud9のサービスが終了となりますので、今まで構築してきたデータを移行する先として、AWSではなく自宅サーバーCentOS 7)にCloud9をインストールして、これまでと同じように利用できる環境を構築したいと思います。

Cloud9をインストール

事前準備

Cloud9を動作させるには、PythonやらNode.jsやら諸々必要になります。
以下の参考サイトを一部引用して準備を進めていきます。

まず、wgetNode.jsやらは割愛させていただきます。
Pythonについては、CentOS 7にデフォルトで入っているバージョン2.7.5をそのまま使用するものとします。
著者の環境では、全てインストール済みで揃っていると思ったのですが、いざインストールしてみるとglibc-staticが不足していました。

yum install glibc-static

事前準備の注意点はこれくらいでしょうか。

SDKインストール

それでは本題のCloud9 SDKCentOS 7にインストールして行きましょう。
上記の参考サイトでは、インストールする前に一般ユーザーに切り替えたり、言語設定をしていましたが、結果的にしなくても動いたので、今回は割愛させていただきます。
Cloud9のインストール手順は公式のGitHubそのままで間違いないです。

インストール中はしばらく時間がかかります。
完了したらファイアウォールにもおまじないをかけておきましょう。

Cloud9の起動

ここで少しハマってしまいました。
公式サイトでは、

node server.js

で起動するよ〜なんて言っています。
確かに間違いではないのですが、自分が思った通りに動作させたい場合は、オプション設定してあげる必要があります。
最終的にはこのようになりました。

node ~/c9sdk/server.js -l 0.0.0.0 -p 8080 -a username:password -w /var/www/html/

永続化したい場合は、foreverを入れてnodeの箇所をforever startに変更すると良いでしょう。

オプションの解説

-l 0.0.0.0

ハマった原因がまさにコレです!
これを記述してあげないと、他の端末からアクセスできませんでした。
原因は詳しく調べていませんが、デフォルトではCloud9をインストールしているサーバーのローカルIPではなく、自分自身、つまり127.0.0.1localhost)からしかアクセスできないのだと思います。(解釈が間違っていたらごめんなさい)

-p 8080

ポート指定です。
デフォルトでは8181になっています。
8080は他にも使われるかもしれませんのでお好みで。

-a username:password

Cloud9htpasswdをかけます。
セキュリティのために設定しておきましょう。
usernameにお好みのユーザー名
半角コロン[:]で挟んで、passwordにお好みのパスワード

-w /var/www/html/

これが一番重要です。
このオプションは、ワークスペースディレクトリパスを設定します。
上記の例はApacheのデフォルトパスを指定していますが、使用するサーバーの種類やワークスペースを別の場所に設定する場合は、このオプションの値を変更してあげましょう。

Cloud9インストールまとめ

Cloud9が起動せずにハマって、Node.jsの[-l]オプションで解決する方法を見つけた際に、偶然インストールの全体的な手順も掲載されていたのでまとめてみました。

# 必要なライブラリ取得
yum install -y glibc-static
yum install -y epel-release
yum install -y nodejs
yum install -y npm --enablerepo=epel# Cloud9 SDKをインストール
cd ~
git clone  c9sdk
cd c9sdk
scripts/install-sdk.sh# ファイアウォール設定
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload# 確認
firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client http https mysql ssh
  ports: 8080/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:# サーバー起動
node ~/c9sdk/server.js -l 0.0.0.0 -p 8080 -a username:password -w /var/www/html/

引用:CentOS – さくらVPS CentOS7でCloud9が起動できない|teratail以上になります。
次回はOSが起動したタイミングでサーバを起動する方法をご紹介する予定です。

モバイルバージョンを終了