カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

fluxflex.comを試してみた!

概要: nim on fluxflexをやってみました。


こんにちま!

最近ユヤタン発祥と思われるこんにちま!で文章を始めるのにはまってるにゃるらこと岡村直樹(23)です。 みなさんクラウドサービス使ってますか?

僕のTwitterを見てた人なら気がつくと思いますが、 ここ最近、新しいクラウドサービス、fluxflex.comnimを動かそうと、 悪戦苦闘してたんですが、今日めでたくnim on fluxflexが可能になったので、その辺りを紹介したいと思います。

fluxflex.comとは何か?

fluxflexとは新手のクラウドホスティング環境で、最近publicになった新興のクラウド環境です。

簡単に言えば、dotcloudとかHerokuのお仲間で、 どっちかっていうと、クラウドなレンタルサーバみたいなサービスです。

前にgodowordmakerを移植したdotcloudは、今現在企業向けPaaSみたいな感じですが、 今回のfluxflexは個人向けのリーズナブルなPaaSという趣です。

今の所メジャーなプログラミング言語、

  • Perl
  • PHP
  • Ruby
  • Python

あたりが使えて、さらに珍しいコトに、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を作った。

で、最初の方で言ったnim on fluxflexについて。

これは何かっつーと、@typesterさんがPerlで作ったコンテンツジェネレーター、 nimをfluxflexのサーバ上で動かしてしまおう! というシロモノです。

実際に動いてるサーバと、ソースコードは以下の通り:

使い方はというと、

  1. 上記repositoryをforkするなりして、project専用のrepositoryを作る
  2. 普通にnimを使うときと同じく記事ファイルとテンプレートを書く
  3. git commit && git push to github
  4. fluxflexのprojectに先ほどpushしたgithub repositoryをimport
  5. 好みで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では、

[setup] 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に関する記事でした。