LeopardでApacheを動かそう(CGI・PHP含む)

Mac OS X 10.5.1 Leopardでrep2とかrep2 機能拡張パックとか使うために、WEBサーバー(Apache 2.2)を動かし、PHPも動作させる必要があるんですけど、Leopardをインストールしたときにすぐ利用できなくてあたふたしちゃった(Apacheが1.3ベースから2.2ベースになった)ので、備忘録ということで書いておこうと思います。初心者レベルだとちょっと難しいかと思いますが、意外とやってみたらそれほど難しくもないかと思うので、自己責任においてチャレンジしてみるのもいいかもしれません。Macには標準でApacheやPHPがインストールされてるので、他のOSより取っつきやすいはずですよ!

まず、必要なものから(2008.01.04現在)。
・Mac OS X Leopard 10.5.1が動いているMacintosh
・Xcode Tools(LeopardのインストールDVDに収録されてます)
・テキストエディタ(私はJedit XのRev.2を愛用)
・Pseudo
Leopardが動作していて、Xcode Toolsをインストールしてない人は、LeopardのインストールDVDから「XcodeTools.mpkg」をダブルクリックしてインストールしましょう(場所は下記パス参照)。

/Mac OS X Install DVD/Optional Installs/Xcode Tools/XcodeTools.mpkg

今後いろんなものをインストールしたりするときに必要になってくるので、これを機に入れておくことをおすすめします。今回はこのToolsのうち、インストール説明用として、FileMergeというのをのちほど使いたいと思っています。
Jedit XとPseudoをアプリケーションフォルダ(/Applications)にインストールしておきます。さぁ、これで下準備ができたので、ここからが本番です! ゆっくり落ち着いて作業しましょう!

Finderの「移動」メニューから「フォルダへ移動…」を選び、出てきたダイアログに下記のように入力して下さい。コピペでも大丈夫です。

/private/etc/apache2

すると、「apache2」というフォルダが開かれ、ファイルやフォルダが並んでいると思います。ここで、Apacheの設定を司っているのが「httpd.conf」というファイルなので、これを編集します。重要なファイルなので、念のためバックアップを取っておきます。ユーティリティフォルダ(/Applications/Utilities)にあるターミナルを起動し、下記のように入力してreturnキーを押します。この時、行頭の$と半角スペースは入力しないで下さい。またsudoから.backupまで改行なしの1行となります(一気にコピペで大丈夫です)。

$ sudo cp /private/etc/apache2/httpd.conf /private/etc/apache2/httpd.conf.backup

「Password:」と聞いてくるので、システム管理者のパスワード(Leopardインストール時に設定したパスワード)を入力してreturnキーを押します。すると、「httpd.conf.backup」というファイルがFinder上に現れたと思います。「httpd.conf」と全く同じ中身の、同じアクセス権のファイルとして、「httpd.conf.backup」というバックアップファイルが作られました。Finderの「情報を見る」でファイルを見比べてみるとよくわかると思います。後で、デフォルトの「httpd.conf」に戻したいというときは、上記コマンドの「httpd.conf」と「httpd.conf.backup」を入れ替えて入力すればOKです。バックアップが作成できたら、ターミナルは終了して構いません。

こういったシステムやサーバ関連のファイルやフォルダは読むことはできても書き込んだりなどの編集は通常できないようになっています(先のコマンドもsudoという特別な呪文が必要なのはそういう理由からです)。そこで、普段から利用しているテキストエディタでもこれらのファイルを編集できるようにするのが、Pseudoの役目です。Pseudoを起動し、その小さな画面にテキストエディタ(ここではJedit X)のアプリをDrag and Dropさせてやります(「File」メニューから「Launch」を選び、ダイアログ経由でテキストエディタを選択しても同じです)。するとそのテキストエディタがシステム管理者の権限で実行されます。テキストエディタが起動したら、Pseudoは終了して構いません。「httpd.conf」をDock上にあるテキストエディタにDrag and Dropします。わかりやすいように、Jedit Xの「表示」メニューから「行番号を表示」で「狭い幅で」を選び、同じく「表示」メニューから「行番号の単位」を「パラグラフ」にます。お好みで「不可視文字の表示」を「まとめて表示」を選ぶと、制御文字も表示されて見やすいかと思います。

FileMergeで変更箇所がわかりやすいようにスクリーンショットを撮ってみました。クリックすると大きく表示されます。左側がバックアップの「httpd.conf.backup」、右側が変更後の「httpd.conf」です。


httpd.confの114行目:PHPを有効にする
行頭の#をとる。

LoadModule php5_module
libexec/apache2/libphp5.so

httpd.confの147行目:管理者のメールアドレスを設定する
本来なら管理者である自分のメールアドレスを入力するが、ひっそりと自分だけで使うなら表示不要のため、行頭に#を付ける。

#ServerAdmin [email protected]


httpd.confの174行目
FollowSymLinksをAllに書き換える。

Options All

httpd.confの175行目
NoneをAllに書き換える。

AllowOverride All


httpd.confの203行目:SSIとCGIを有効にする
MultiViewsのあとにIncludesとExecCGIを追記する。

Options Indexes FollowSymLinks MultiViews Includes ExecCGI

httpd.confの210行目:.htaccessを有効にする
NoneをAllに書き換える。

AllowOverride All

httpd.confの225行目:.index.phpや.index.cgiを省いても表示できるようにする
index.htmlのあとにindex.phpとindex.cgiを追記する。

DirectoryIndex index.html index.php index.cgi


httpd.confの324行目:
行頭に#を付ける。

#ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"

httpd.confの340〜345行目
すべての行頭に#を付ける。

#<Directory "/Library/WebServer/CGI-Executables">
#AllowOverride None
#Options None
#Order allow,deny

#Allow from all#</Directory>


httpd.confの391行目:CGIスクリプトの指定
行頭の#をとる。

AddHandler cgi-script .cgi

httpd.confの402行目:SSIを拡張子.htmlのファイルで動かす
行頭の#をとり、.shtmlを.htmlに書き換える。

AddType text/html .html

httpd.confの403行目:SSIを拡張子.htmlのファイルで動かす
行頭の#をとり、.shtmlを.htmlに書き換える。

AddOutputFilter INCLUDES .html

以上を、すべて編集し終えたら、Jedit Xの「File」メニューから「保存」します。保存が完了したら、Jedit Xを終了して構いません。

では、実際にApacheを起動します。システム環境設定を起動し、「共有」を選びます。左のリストから「Web 共有」をクリックするとApacheが起動します。Safari等のブラウザで下記にアクセスします。

http://localhost/

無事このような画面が見えたら、Apache 2.2.6の起動は成功です!

PHPが動作しているかは簡単にチェックできます。テキストエディタを起動し、下記内容の3行を記入し、プレーンテキスト形式で保存します。

<?php
phpinfo();
?>

ファイル名を「test.php」などと、拡張子をphpに変更し、下記フォルダ(ディレクトリ)に置きます。

/Library/WebServer/Documents

ブラウザからhttp://localhost/test.phpとアクセスしてみて、PHP Version 5.2.4と表示され、環境等がずらずら表示されれば、無事PHPが動いています。確認ができたら、上記フォルダからtest.phpははずしておきましょう。他者にサーバーの環境等を盗み見られないようにするためです。

CGIとSSIの動作確認については、パーミッションの設定や、セキュリティ上いろいろあるので、割愛させていただきます(Webで検索すればたくさん情報があるので)。中級者以上であれば、futomi’s CGI Cafeにて配布されている、サーバーアナライザーを設置してみると、いろいろと情報が得られていいかもしれません。

ここまでできれば、rep2やrep2 機能拡張パックのインストールは簡単なはずなので、各自頑張って下さい! Dynamic DNSサービスについても難しくないので、Webで検索して下さい(急に投げやり!?)

あと、ルータやOS内蔵のファイヤーウォール等で80番ポート以外は原則閉じておくことを忘れずに!

“LeopardでApacheを動かそう(CGI・PHP含む)” への3件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です