次の時代はクラウド開発環境が来るはず!
先の記事では Hack (Hacklang) の開発はFBIDEが本命だと書きました。しかし、まだリリースされていないので、当面vimかemacsを使わざるを得ません。せめて、Web IDEの雰囲気を味わってみたいので、そこそこ知名度のあるICEcoderをインストールしてみました。後の自分用にその手順を記載します。
導入手順
http://icecoder.netの説明に従ってgithubから最新のコードをダウンロード
$ git clone git@github.com:mattpass/ICEcoder
Cloning into 'ICEcoder'...
Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.
Enter passphrase for key '/home/susumuis/.ssh/id_rsa':
remote: Counting objects: 6950, done.
remote: Total 6950 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6950/6950), 3.78 MiB | 796 KiB/s, done.
Resolving deltas: 100% (4136/4136), done.
下記のようにダウンロードされた
$ cd ICEcoder/
$ ls
CodeMirror-4.2 LICENSE.md README.md backups editor.php farbtastic favicon.png files.php images index.php jshint lang lib plugins processes test test.php tmp
$ cd /etc/nginx/
nginxで公開する。
$ sudo vim sites-available/icecoder
下記のように編集した。今回は80番ポートは使用せず、httpsだけで配信する。とりあえずオレオレ証明書作っとく。
server {
listen 443;
server_name 公開するドメイン;
root ICEcoderのディレクトリ;
index index.php;
include hhvm.conf;
ssl on;
ssl_certificate /etc/ssl/certs/icecoder.crt;
ssl_certificate_key /etc/ssl/certs/icecoder.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php;
}
}
オレオレ証明書の作り方は毎回忘れるので簡単にメモっとく。
$ cd
$ sudo openssl genrsa 2048 > icecoder.key
$ openssl req -new -key icecoder.key > icecoder.csr
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Tokyo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:組織名
Organizational Unit Name (eg, section) []:susumuis
Common Name (e.g. server FQDN or YOUR name) []:ドメイン名
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
$ openssl x509 -days 3650 -req -signkey icecoder.key < icecoder.csr > icecoder.crt
Signature ok
subject=/C=JP/ST=Tokyo/L=Tokyo/O=組織名/OU=susumuis/CN=ドメイン名
Getting Private key
$ rm icecoder.csr
$ sudo mv icecoder.* /etc/ssl/certs/
$ cd /etc/nginx/sites-enabled/
$ sudo ln -s //etc/nginx/sites-available/icecoder icecoder
$ sudo /etc/init.d/nginx reload
Reloading nginx configuration: nginx.
調べながらやったのでここまでで1時間くらいかかった。lnコマンドはどっちが先かとか毎回調べてしまうの何とかしたい。
この状態でWebでアクセスしたら
Couldn't create config-icecoder_*******.php. Maybe you need write permissions on the lib folder?
とか言われました。パーミッションが正しくないらしい。これはこれで、ちゃんとユーザと権限が適切になっている証拠なので、必要なディレクトリだけwww-dataユーザに権限を渡せば良い。
$ cd ICEcoder/
$ chown -R www-data .
$ chmod g+w backups/ lib/ plugins/ test/ tmp/
こうしてアクセスしてみると下記のようにパスワードを求められる。
パスワードを入力するとログイン後の画面が表示された。
初期状態ではICEcoder自体のソースコードが表示されるようだ。これでは使いづらいので、プロジェクトルートのようなフォルダを作ってルートディレクトリをそのフォルダに指定するような設定が必要だろう。