開発環境整備手順
ついでなので書いておこう。Perlでの開発のために、CPANシェルをセットアップすることと、Apacheをカスタマイズすることがメインだ。
1. 必要なプログラムのインストール
- lynx (http://lynx.browser.org/) : http://dev.osxgnu.org/software/pkgdetail.html?project_id=%20226にMac Portsのpkgインストーラがある
- wget (http://www.gnu.org/software/wget/)
- ncftp (http://www.ncftp.com/) : ncftpgetも入る
- gpg (http://www.gnupg.org/) : http://macgpg.sourceforge.net/にMac Portsのpkgインストーラがある
- expat (http://expat.sourceforge.net/) : XML::Parserで必要
ソースコードから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でそれを指定すれば良いような気がする。
- MIME::Parser
- MIME::Lite
- HTML::Tagset
- HTML::Parser
- HTML::Template
- Template
- LWP
- IO::Socket::SSL
- Crypt::SSLeay
- XML::Parser
- XML::LibXML
- XML::LibXSLT
- XML::RSS
- XML::RSS::LibXML
- FCGI
- Date::Simple
- DateTime::TimeZone
- DateTime
- DBI
- DBD::SQLite
- DBD::mysql
- Class::DBI
- Class::DBI::SQLite
- Class::DBI::Loader::mysql
- Class::DBI::mysql
- Net::Jabber
- SOAP::Lite
- XML::Atom
- XML::Feed
あー、たくさんあるなぁ…。そのうち自動化するか。
モジュールの名前が分かっているなら、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