Start! MacBook

第2回なぜMacなのか(後編) ~ApacheでCGIを動かすまで

ローカル環境でApacheを動かす

とりあえずWeb系の開発をしようかと思います。そのための第一歩として、Apacheを動かしてCGIを動かすというところまでやってみたいと思います。

Mac OS XでのApacheの設定については、わかりやすい説明のあった「Apache on Mac OS X」注2を参考にしました。

Apacheの起動

まずはApacheを起動します。これはターミナルからやるのではなくて、Mac OSのGUIで行います。画面の左上の青いリンゴアイコンをクリックし、出てきたメニューから[システム環境設定...]を選択します。するとシステム環境設定GUIが起動します。Finderから[アプリケーション⁠⁠-⁠システム環境設定]とたどって起動することもできます。

20個くらいのアイコンが4行に並んでいますが、3行め[インターネットとネットワーク]のところにある[共有]をクリックします。そして[サービス]を選び、出てくるリスト中にある[パーソナルWeb共有]を開始します図3⁠。

図3 パーソナルWeb共有
図3 パーソナルWeb共有

ブラウザ(Safari)を起動し、http://localhost/にアクセスしてみると。Apacheのデフォルトページが表示されました図4⁠。Apacheの起動に成功!

図4 Apacheのデフォルトページ
図4 Apacheのデフォルトページ

自分のページはhttp://localhost/~USER_NAME/でアクセスできます。筆者の場合はhttp://localhost/~tatsuoyamashita/になります図5⁠。対応するディレクトリは~/Sites/です。つまり表示されているページのファイルは~/Sites/index.htmlになります。

図5 自分のページ
図5 自分のページ

CGI

とりあえずApacheが動いていることは確認できましたので次はCGIです。/Library/WebServer/CGI-Executables/にCGIスクリプトを置くと、http://localhost/cgi-bin/でCGIが使えます。さっそく確認。まずターミナル中でEmacsを起動し、簡単なCGIスクリプトを作成しましたリスト1⁠。⁠HELLO」を表示するだけの最低限の動作です。

リスト1 test.cgi
#!/usr/bin/perl
print “Content-Type: text/plain\n\nHELLO\n”;

「test.cgi」というファイル名で保存し、chmodでパーミッションを変更し、CGI置き場にコピーしました図6⁠。

図6 実行準備
% emacs test.cgi
% chmod a+x test.cgi
% cp -p test.cgi /Library/WebServer/CGI-Executables/

ブラウザでhttp://localhost/cgi-bin/test.cgiにアクセスすると、無事「HELLO」と表示されました図7⁠。

図7 HELLOと表示された
図7 HELLOと表示された

CGIの動作は確認できたのですが、/cgi-bin/限定ではなく、~/Sites/にCGIスクリプトを置いて使いたくなります。つまり、http://localhost/~tatsuoyamashita/test.cgiとアクセスしてもCGIが動作するようにしたいのです。今の設定のままだとソースコードがそのまま表示されてしまいます。

ということで、Apacheの設定ファイルを変更しました。設定ファイルは/etc/httpd/users/USER_NAME.confで、筆者の場合は/etc/httpd/users/tatsuoyamashita.confです。最初はリスト2-⁠1)のようになっています。

リスト2 設定ファイルへの追記と変更

(1)変更前
<Directory ⁠/Users/tatsuoyamashita/Sites/⁠>
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
(2)変更後
<Directory ⁠/Users/tatsuoyamashita/Sites/⁠>
    AddHandler cgi-script cgi ←追加
    Options Indexes MultiViews ExecCGI ←変更
    AllowOverride None

AddHandlerでのCGI設定とOptionsへのExecCGIの追加を行いましたリスト2-⁠2)⁠。

先ほどのtest.cgiを~/Sites/にコピーして、Apacheを再起動しました。設定ファイル変更からのコマンドライン操作の流れは図8のとおりです。Apacheの再起動(restart)はルート権限(sudo)で行う必要があります。

再起動後、ブラウザでhttp://localhost/~tatsuoyamashita/test.cgiにアクセスすると、先ほどのhttp://localhost/cgi-bin/test.cgiのときと同様に無事動作し、HELLOと表示されました。

図8 コマンドライン操作の流れ(設定ファイル変更~Apache再起動)
% cp -p /Library/WebServer/CGI-Executables/test.cgi ~/Sites/ ←先ほど作ったCGIスクリプトをコピーします
% emacs /etc/httpd/users/tatsuoyamashita.conf ←CGIが動作するように書き換えます
% apachectl configtest ←設定ファイルが正しいかどうかチェックします
Processing config directory: /private/etc/httpd/users/*.conf
 Processing config directory: /private/etc/httpd/users/tatsuoyamashita.conf
Syntax OK
% sudo apachectl restart ←Apacheを再起動します
/usr/sbin/apachectl restart: httpd restarted

まとめ

というわけで、MacBookの購入から、初期設定を経て、Apacheの起動とCGIの動作確認まで無事たどりつきました。Web開発に使える環境が整いましたので、いろいろといじってみたいと思います。次回は、開発系からちょっと離れて、Mac付属のソフトiMovieを使いそれっぽい動画を仕上げるまでをドキュメント風にお届けします。

なお、以下のサイト「スタート!マックブック」でも、Macへの乗り換え過程を細かく解説しています。本連載ともどもよろしくお願いします。

http://start-macbook.net/

おすすめ記事

記事・ニュース一覧