‘twitter’ タグのついている投稿

install twitter clone on erlang

2009 年 5 月 6 日 水曜日

erlangで実装されたtwitterクローンであるtwoorlをインストールしてみた。 twoorlをインストールするためには、3つのモジュールが必要となる。インストールにあたって以下のサイトを参照しました。

Erlang でできた Twitter クローン、 Twoorl をインストールしてみました

名前

説明

twoorl アプリケーション層
ErlyWeb Web Framework
ORマッピングの機能も持つ。
yaws HTTP webserver
erlang 言語層

1. yawsのインストール

http://yaws.hyber.org/download/から、最新版をダウンロードした。

  % tar xvfpz yaws-1.81.tar.gz
  % cd yaws-1.81
  % ./configure
  % make
  % sudo make install

以下のディレクトリにインストールされる。インストール先は、configureのオプション –prefixで設定できる。

     /usr/local/bin/yaws
      /usr/local/lib/yaws
      /usr/local/etc/yaws.conf

yaws.comfを編集して起動する。

% cat yaws.conf
<server ホスト名>
        port = 8000 <--- 適当なポート番号を設定する
        listen = 0.0.0.0
        docroot = /usr/local/var/yaws/www <-- インストールパス
        appmods = <cgi-bin, yaws_appmod_cgi>
</server>

interactiveモードで起動すると、ブラウザで閲覧可能になる。

# yaws -i

2.  ErlyWebのインストール

http://erlyweb.org/から最新版をインストールする(erlyweb-0.7.1.tar.gz)。

% tar xvfpz erlyweb-0.7.1.tar.gz; cd erlyweb-0.7.1
% vi Emakefile
{"src/erlyweb/*", [debug_info, {outdir, "ebin"}, {i,"/opt/local/lib/yaws/include"}]}.
                                              <--- yawsのインストールパスに変更する
% sh make.sh

erlangのライブラリパスに追加するため/usr/lib/erlang/libにコピーした。

3. twoorlインストール

3.1 mysqlのデータベースを作成し、その後、SQLファイルを実行しテーブルを作成する。
注)ディレクトリmigrations以下のsqlもすべて実行する。

作成したDB名、ユーザー名、パスワードをファイルに設定する。

% view src/twoorl_app.hrl
-define(DB_HOSTNAME, "localhost").
-define(DB_USERNAME, "username"). <--- ユーザー名
-define(DB_PASSWORD, "password"). <--- パスワード
-define(DB_DATABASE, "twoorl").   <--- DB名
-define(DB_POOL_SIZE, 50).
-define(APP_PATH, "/usr/local/lib/yaws/apps/twoorl"). <--- twoorlのパス

好きな場所にコピーする(/usr/local/lib/yaws/apps/twoorl)。src/twoorl_app.hrlのAPP_PATHに設定する。twoorlのライブラリをerlangのライブラリパスに追加する。twoorlのライブラリはyaws上でのみ必要となるので、yawsのファイルに設定した。

# view /usr/local/etc/yaws.conf
ebin_dir = /usr/local/lib/yaws/apps/twoorl/ebin

3.2 データベースの接続をオープンする。

まず、yawsをinteractiveモードで起動する。
その後、データベースに接続する。

%sudo yaws -i
erlydb:start(mysql, [{hostname, "localhost"}, {username, "username"},{password, "password"}, {database, "twoorl"}]).

3.3 Twoorl をコンパイル

erlyweb:compile("/usr/local/lib/yaws/apps/twoorl",[{erlydb_driver, mysql}]).

3.4 twoorlを起動する

twoorl.start().

初回起動時には、データベース接続メッセージが大量の出力される。

4. daemonモードで起動する

%sudo yaws --daemon --runmod twoorl

twitterをメッセージングサーバーととらえるといろいろな可能性がありそう。

twoorl.png