Memo plus Alpha

メモにプラスアルファを加えて価値ある情報に。

Macのローカル環境でCGIを動かす

Macのローカル環境でCGIを動かすためのメモ

MacにはもともとApachePerlなどが入っているので、XAMPPなどを利用しなくてもサーバー環境を構築でき、ローカルで動かせます。

Step 1

apacheの設定を変更。以下のページなどを参考に。

qiita.com

shopetan.hatenablog.com

 

perlcgiで動かすにはperlモジュールが必要なので、そのあたりのコメントアウトも外す。

LoadModule perl_module libexec/apache2/mod_perl.so

 

なお、xxx.plファイルをcgiに認識させるには :

AddHandler cgi-script .cgi .pl

とします。

 

d.hatena.ne.jp

 

 

ブラウザで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

でエラーの詳細がわかるので、エラーメッセージをウェブで検索するとよい。