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をメッセージングサーバーととらえるといろいろな可能性がありそう。