wata.dev

Mac で mod_perl + Catalyst を試す

参考になるエントリーはすでにいっぱいあります。が、それだけにやり方も色々あってちょっと苦戦した(汗)
とりあえず僕はMacのWebサーバー(Apache2.2.15)でこれでやってうまくいきました。素直にやったらあっさり。

1. 準備

mod_perlを入れてない人は mod_perlインストール 。

Catalyst::Engine::Apache2::MP20も入れておく。

$ cpanm Catalyst::Engine::Apache2::MP20

2. httpd.confに追記

基本的にこれ追記するだけ!変更を加えたときはApacheを再起動する。

httpd.conf

LoadModule perl_module /usr/libexec/apache2/mod_perl.so

# staticなファイルはApacheに直接処理させる
# 先にこちらを書かないと反映されないとかとか
<Location /myapp/root/static/>
    SetHandler default-handler
</Location>

# Aliasつくってやる場合
Alias /myapp/ /Users/wata/Sites/catalyst/MyApp/
PerlSwitches -I /Users/wata/Sites/catalyst/MyApp/lib
PerlLoadModule MyApp
<Location /myapp>
    SetHandler modperl
    PerlResponseHandler MyApp
</Location>

3. index.ttなどのパスを修正

MyAppのindex.tt

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8" />
  <title>MyApp</title>
  <link rel="stylesheet" media="all" href="/myapp/static/css/style.css" />
  <!--[if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
</head>
<body>
<h1>MyApp</h1> 
<ul> 
  <li><a href="/myapp/about">MyAppについて</a></li> 
  <li><a href="/myapp/books">本を検索</a></li> 
</ul>

/static/… とか、/about とか書いていたのを /myapp/static/… とか、/myapp/about とかに直します。
あと<form action=“/search” method=“post”>とかあれば、<form action=“/myapp/search” method=“post”>に忘れずに直す。

そう、 これだけ!もっと良さげな方法あったら追記します。あとバーチャルホスト使うやり方とか。

ブログの記事一覧