開発環境整備手順

ついでなので書いておこう。Perlでの開発のために、CPANシェルをセットアップすることと、Apacheをカスタマイズすることがメインだ。

0. コンパイル環境の整備

Xcodeを入れるとgccはもちろんmakeとかもインストールされる。ので、整備といってもやることはない。

1. 必要なプログラムのインストール

ソースコードからmakeするものは、基本的には適当なアーカイブを探し、落として展開、Terminalでそのディレクトリに入り、

./configure
make
sudo make install

とかやれば良い。

lynx, wget, ncftpgetなんかはアーカイブダウンロード時に使うようなのだが、必ずしも全部入っていなくても平気だったりするようだ。gpgも無くて問題なかった。expatはXML::Parserで使うので、XMLを扱うなら入れておいて損はないが、CPANセットアップ自体には不要。

必要ならMySQLとかそういうのもインストールする。このタイミングでなくてもいいけど。

2. CPANシェルのセットアップ

管理者権限でモジュールをインストールしたいので、sudoを使う。

sudo cpan

後は質問に答えていくのみ。途中外部プログラムのパスを聞かれるので、1.で入れたプログラムのパスを答える。CPANシェルが見つければデフォルトでパスが入るので、リターンを押すだけ。見つけてもらえない場合は、多分/usr/local/bin/xxxとかに入っているはずなので、探してみる。後は適当に。

いろいろ勝手にやっているので、しばらく放っておく。たまに何か聞かれたら答えてあげる。

3. 必要なモジュールのインストール

依存関係的に先に入っているべきものは先に入れる。ものによっては勝手に入れてくれちゃったりもするようだが、一応。XML::Parserなんかは結構最初のほうになるような気がする。なお、ユーザー権限で入れたいなら、適当な場所に@INCを通し、prefixでそれを指定すれば良いような気がする。

あー、たくさんあるなぁ…。そのうち自動化するか。

モジュールの名前が分かっているなら、CPANシェル内から

install LWP

とかで、場合によっては途中で何か聞かれるときがあるが、良いようにやってくれる。

4. サーバを調える

これは先でも後でも良いが、Webシステムのテスト用にサーバを調えておく。Mac OS Xの場合、システム環境設定の『共有』で『パーソナルWeb共有』を立ち上げるとApacheが動き、CGIもすぐに動作可能だが、CGIを置くディレクトリを制限されていたりするので、使いやすいようにカスタマイズする。

なお、ここからの作業では、適度なタイミングでコンフィグファイルのチェックをしておくと良い。(全部やってからだとどこで間違ったか分かりにくいので。)

apachectl configtest

カスタマイズでどうするかは好みだが、ここではCGI等などを実行可能にして、ドキュメントルートを自分のSitesにする。(作業ではバックアップを忘れずに。)

CGIとSSIを実行可能にするには、Apacheの自分のディレクトリの設定を書き換えてやる。

sudo emacs /etc/httpd/users/altair.conf
<Directory "/Users/altair/Sites/">
        AddType text/html shtml
        AddHandler server-persed shtml
        AddHandler cgi-script cgi
        Options Indexes MultiViews ExecCGI Includes
        AllowOverride All
        Order allow,deny
        Allow from all
        <IfModule mod_dir.c>
                DirectoryIndex index.cgi index.php index.shtml index.html
        </IfModule>
</Directory>

ドキュメントルートの書き換えは、httpd.confの365行目付近にある。コメントアウトで書き換える。

# DocumentRoot "/Library/WebServer/Documents"
DocumentRoot "/Users/altair/Sites"

mod_perl、mod_phpを有効にする。

239行目付近のperl_module、php4_moduleのコメントアウトを外す。(ctrl + sで検索するのが早い。)

LoadModule perl_module        libexec/httpd/libperl.so
LoadModule php4_module        libexec/httpd/libphp4.so

283行目付近のmod_perl、mod_phpのコメントアウトを外す。

AddModule mod_perl.c
AddModule mod_php4.c

適当な場所で、phpのTypeを設定する。ユーザーのコンフィグファイルでも良いが、開いたついでということでhttpd.confに書いてみる。855行目付近にAddTypeが並んでいるところがあるので、その辺りに書くと間違いなさそう。

ちなみにこの並びの#AddHandler cgi-script .cgiとかのコメントアウトもある。プライベートなサーバなのでどっちに書くかは好みだと思うが、ユーザーファイル側に書いておくほうがスマートな感じがする。

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

そのままだとphpのパーサが

<? ... ?>

に反応してしまう(XML宣言でも使うので、エラーになる時がある)ので、省略記法を使用不可とする。php.ini.defaultが用意されているので、これをコピーしphp.iniとした上で、このファイルを編集する。

sudo cp /etc/php.ini.default /etc/php.ini
sudo emacs /etc/php.ini

Language Options以下にshort_open_tagの設定がある。

short_open_tag = Off

設定が終わり、コンフィグファイルのチェックでも問題がなければ、Apacheをリスタートする。

sudo apachectl restart