カラクリスタ

fluxflex.comを試してみた!

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


こんにちま!

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

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

[fluxflex.com https://www/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 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>

使い方はというと、

  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 では、

  • 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