Macのローカル環境でCGIを動かす
Macのローカル環境でCGIを動かすためのメモ
MacにはもともとApacheやPerlなどが入っているので、XAMPPなどを利用しなくてもサーバー環境を構築でき、ローカルで動かせます。
Step 1
apacheの設定を変更。以下のページなどを参考に。
perlをcgiで動かすにはperlモジュールが必要なので、そのあたりのコメントアウトも外す。
LoadModule perl_module libexec/apache2/mod_perl.so
なお、xxx.plファイルをcgiに認識させるには :
AddHandler cgi-script .cgi .pl
とします。
ブラウザでhttp://localhost/filename.cgiにアクセスして、もしスクリプトの中身がそのまま表示される場合は、このあたりの設定が原因。
設定ファイルの変更後はapacheの再起動が必要なので注意。
sudo apachectl restart
Step 2
ファイルのパーミッションを変更。
chmod 755 XXX.cgiなど。
ログファイルなどの書き込みをする必要があるものも合わせて変更しておく。また、system関数で外部プログラムを呼び出すときは、そのプログラムやそのプログラムが読み込むファイルのパーミッションを変更する必要がある場合があるので注意。
step 3
cgiファイルの作成。perlへのパスを正しく記載する。Macのデフォルトは:
/usr/local/bin/perl
なので、ファイル冒頭に:
#!/usr/local/bin/perl
と書く。
500エラーが出る場合はこのあたりが原因。あと、ファイルの改行コードをLFのみにする、というのも大事(文字コードはutf8)。
tail /private/var/log/apache2/error_log
でエラーの詳細がわかるので、エラーメッセージをウェブで検索するとよい。