概要: 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 pushto 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/perl5extlib/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 に関する記事でした。