概要: nim
on fluxflex をやってみました。
こんにちま!
最近ユヤタン発祥と思われる こんにちま! で文章を始めるのにはまってるにゃるらこと岡村直樹(23)です。 みなさんクラウドサービス使ってますか?
- 僕の Twitter を見てた人なら気がつくと思いますが、 ここ最近、新しいクラウドサービス、 fluxflex.com で nim を動かそうと、 悪戦苦闘してたんですが、今日めでたく nim on fluxflex が可能になったので、その辺りを紹介したいと思います。
[fluxflex.com https://www/fluxflex.com/ とは何か?]
fluxflex とは新手のクラウドホスティング環境で、最近 public になった新興のクラウド環境です。
簡単に言えば、 dotcloud とか Heroku のお仲間で、 どっちかっていうと、クラウドなレンタルサーバみたいなサービスです。
前に godowordmaker を移植した dotcloud は、今現在企業向け PaaS みたいな感じですが、 今回の fluxflex は 個人向けのリーズナブルな PaaS という趣です。
今の所メジャーなプログラミング言語、
あたりが使えて、さらに珍しいコトに、Haskell とか node.js が使えるようになってます。
で、当然のように MySQL を完備。HTTP Server に Apache を使用していて、CGI、FastCGI をサポートしているので、 ちょっとかっこいいレンタルサーバ替わりに使えてしまうという、結構身近な感じがするサーバ環境となっています。
んでさらに、業界初と謳われている、 github からの import 機能があり、 github 上の project を、自分の公開スペースにワンクリックで import できるという、 かなり便利な機能もついてます。
それでさらに、 安いんですよ! 有料プランが!
今現在、課金プランの入門編である standard plan が $1.0/mo で、制限が大幅に撤廃された super geek plan が $9.0/mo と、 病人にーと生活を送ってる僕でも気軽に払えるお値段。懐具合が寂しい人には大変ありがたい価格設定です。
……ってなんか胡散臭いセールスみたくなってますが、一応注意点をあげると、 fluxflex へのサーバへの deploy にはgit
が必須で、git
をひと通り使いこなせないと、どうしようもありません。
あと、サーバへ Application を deploy するには、project を setup する必要があるのですが、 この project、fluxflex のサブドメインに割り当てられる関係で、一回 project を作って消してしまうと、 二度と復活できません。僕は一回これではまりました。
あと、サーバの課金はクレジッドカード必須なので、クレカが無い人は VISA デビットを作るなりしないと、 これまた支払い方法に困ることとなります。
まあ以上が fluxflex.com についてのざっとした紹介です。
[nim on fluxflex https://github.com/nyarla/fluxflex-nim を作った。]
で、最初の方で言った nim on fluxflex について。
これは何かっつーと、 @typester さんが Perl で作ったコンテンツジェネレーター、
- nim を fluxflex のサーバ上で動かしてしまおう! というシロモノです。
実際に動いてるサーバと、ソースコードは以下の通り:
- サーバ: <http://nim-on-the.fluxflex.com/ http://nim-on-the.fluxflex.com/>
- ソース: <https://github.com/nyarla/fluxflex-nim https://github.com/nyarla/fluxflex-nim>
使い方はというと、
- 上記 repository を fork するなりして、project 専用の repository を作る
- 普通に
nim
を使うときと同じく記事ファイルとテンプレートを書く git commit
&& git push
to github- fluxflex の project に先ほど push した github repository を import
- 好みで github の hook に project の hook 用 URI を追加
という感じです。だいたい上記の作業がうまくいくと、 記事ファイルとかテンプレートの変更を github にコミットするだけで、 fluxflex の公開サーバに Auto deploy されるようになります。結構便利です。
で、こうさらっと紹介してますが、実はここまでたどり着くまでに相当悪戦苦闘してました。 なんで、次はハマった点とか紹介
nim on fluxflex をする上でハマったコト
1. public_html
のパーミッション
fluxflex では、project の初期化とか deploy 時に hook できる仕組みがあり、そのなかで permission を設定できるのですが、 僕が試してたときにはpublic_html
ディレクトリの permission を下手にいじってしまい、 public_html
以下にファイルが生成されない、という状態になってしまい、大ハマリしてました。
なんでディレクトリとかファイルの permission を触るときは慎重に行ったほうがいいかと思います。
2. ライブラリへのパス
次にハマった点としては、CPAN module へのパスの追加の仕方あたりでしょうか。
fluxflex では、dotcloud の時のような依存関係の自動的な解決はなく、 setup か deploy 時にcpanm
を手動で実行する必要があります。
nim on fluxflex では、
- cpanm -l extlib < requires.txt
という感じの内容を実行していたんですが、最初extlib
のディレクトリ構造を正しく把握してなかったせいで、 Can't locate ...
というエラーを拝み続けるハメになりました。
今現在のバージョンでの話ですが、cpanm -l extlib < requires.txt
を実行した場合ノディレクトリ構造は、
extlib/
lib/
perl5/
{moduleA}
{moduleB}
...
{moduleN}
x86_64-linux-gnu-thread-multi/
{moduleA}
{moduleB}
...
{moduleN}
という感じなので、Perl の実行時に、
extlib/lib/perl5
extlib/lib/perl5/x86_64-linux-gnu-thread-multi
の二つに大してパスを通す必要があります。
3. git submodule
の扱い
これはどうも fluxflex 側の問題らしいんですが、fluxflex ではgit submodule
を使うときみたいに、 git repository 内に git repository がある場合にうまく動作してくれないようです。
まあ何がどうなってそうなるのかはよくわかりませんが、今現在のところ、git submodule
は使えない、 と頭の片隅に覚えておくと、困ったときに役立つかもしれません。
以上、紹介終わり。
という感じで。
fluxflex はサーバサイドでハマると今のところ大変だと思いますが、そこさえクリアすれば、 結構使いやすい環境なんではないかと思います。
ただ、fluxflex 自体、公開されてから日が経ってないし、サーバサイドのドキュメントもあまり充実してないので、 分からないコトがあると手探りで作業せざるを得ないんですが、これは時間が経てば解決してくれるでしょう。 とういことで期待してます > fluxflex の中の人 ;-)
というわけで、以上 fluxflex に関する記事でした。
#FIXME