Subscribed unsubscribe Subscribe Subscribe

Catalystを入れて起動させるまで

PerlフレームワークCatalyst完全入門

まっさらなLinuxCatalystを入れてみたのでメモ。Macではあっさりいった(記憶がある*1)んだけど結構手こずった。
Catalystで一番大変な乗ってインストールしてから動かすまでだと思うんですが、意外とネットにやり方が落ちてないので自分がやったことを記録してみる。

Catalystのインストール

モジュールのインストールにはcpanmを使う→(perlモジュールのinstallにcpanmを使う|perl|@OMAKASE

Catalyst本体
$ cpanm YAML
$ sudo cpanm -f Catalyst::Runtime
$ sudo cpanm -f Catalyst::Devel
View
$ cpanm Catalyst::View::TT
$ cpanm Catalyst::View::JSON
Model
$ cpanm DBI
$ cpanm DBIx::Class::Schema::Loader   # スキーマクラス自動生成
$ cpanm Catalyst::Model::DBIC::Schema
$ cpanm DBD::mysql                    # DBIドライバ
$ cpanm DateTime::Format::MySQL
$ cpanm Catalyst::Mode::Adaptor       # モデルをCatalystから独立させるのに便利

プラグインとかController::ActionRoleとかはひとまず後で。

MySQL入れ直し

入っていなかったので。

インストール
$ wget http://www.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.50.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/
$ tar zxvf mysql-5.1.45.tar.gz
$ cd mysql-5.1.45.tar.gz
$ ./configure --prefix=/usr/local/mysql \
      --with-charset=utf8 --with-extra-charset=all --with-mysqld-user=mysql
      # MySQLデーモンを起動するユーザーをmysqlとしておく
$ make
$ sudo make install
サーバ起動まで
$ ./scripts/mysql_install_db          # 初期データベースの作成

$ chown -R root  /usr/local/mysql     # バイナリの所有者をrootに
$ chown -R mysql /usr/local/mysql/var # データフォルダの所有者をmysqldを実行するユーザ(mysql)に
$ chown -R mysql /usr/local/mysql

$ /usr/local/mysql/bin/mysqld_safe &  # MySQLサーバを起動
管理者(root)のパスワードを設定からアクセス用ユーザの作成まで
# 管理者(root)のパスワードを設定
$ /usr/local/mysql/bin/mysql -u root
mysql> SET PASSWORD FOR root@localhost=PASSWORD('hoge-password');
mysql> exit;

# パスワードが設定されていないデフォルトユーザを全て削除
$ /usr/local/mysql/bin/mysql -u root -p
mysql > USE mysql;
mysql > DELETE FROM user WHERE password='';
mysql > exit;

# アプリケーションからアクセスするユーザを作成
$ /usr/local/mysql/bin/mysql -u root -p
mysql > GRANT ALL PRIVILEGES ON *.* TO hoge-username@localhost IDENTIFIED BY 'hoge-password';
mysql > exit;

動かす

スケルトンの作成

catalyst.plのパスが通ってなかったら通しておく。

$ catalyst.pl MyApp
コントローラ

Helloというコントローラを作ってみる

perl ./script/myapp_create.pl contoroller Hello
サーバー起動
perl ./script/myapp_server.pl -r # -r :更新ファイルの検出やサーバー再起動を自動でしてくれる

localhost:3000/hello にアクセスしてみる。おお、動いてる動いてる。

ビュークラス作成
$ perl ./script/myapp_create.pl view TT TT

あとは自前でテンプレートファイルを作ればOK。

モデルクラスの作成
$ perl ./script/myapp_create.pl model myDB


あとはyusukebeさんのCatalystで作る占いアプリ! - ゆーすけべー日記とか読んで試すのがいいんじゃないでしょうか。

そうそう、ヘルパースクリプトで作ったモデルとコントローラ開いてみたら、use Mooseでびびった。今のバージョンはMooseの使用がデフォなんですね。(自分はまでMooseを使える段階にないのでClass::Accessor::Fastなコードに書き換えましたが)

続き

(モデルクラスをCatalystから分離させる方法について現在まとめ中。別エントリにあげる予定)

*1:なにぶん二ヶ月前のことなので