rep2 機能拡張パックとW2Ch

自宅のMacをWEBサーバーにしてrep2(私が実際に使っているのはrep2 機能拡張パック)を使ってるのは先にも書きましたが、Dynamic DNSのDynDNSを利用して、昼休みにはP905iから自宅のrep2にアクセスしたりとなかなか快適に使っていたりします。

でも、今年になって新しいことにトライしたいなということで、とりあえずiアプリでもっぱら評判のFOMA90x専用2ちゃんねるブラウザ W2Chを使ってみようと思い、このまとめwikiサイトを読んでると・・・。中間鯖というのを経由しなくてはならないと言うことが書いてあり、この中間鯖はお心優しい方たちがボランティアとなって無償で提供して下さってるらしいこと(もちろんアプリ自体も作者様が無償で提供して下さってます)。なにやらこの中間鯖は自分で構築できるとも書いてある。そして、ご丁寧にも中間鯖の立て方がまとめられてるじゃないですか! LinuxとWindosでの中間鯖の立て方がまとめられてるものの、当然のことながらMac OS Xでの立て方が書いてない・・・。なんか、悲しいというかちょっぴり悔しいじゃん! というわけで正月休みに時間を割いて、自分専用のW2Ch中間鯖を立ててみることにトライしました。

作者様による説明と、HMX様による説明を読み読みすると・・・。Apacheと連携するTomcatというかわいいネコのような名前のものが必要らしい。そういえば、サーバー環境を整える際、Webで検索すると時々このネコちゃんを見かけたことがあるのを思い出しました。JavaServletとJavaServer? なんだかよくわからないけど、自分のMacで動かせるようなので、早速試したくなるのが人間よね(笑)。

結論から言いますと・・・。説明の読み読みから約1時間半でW2Chの中間鯖が、Mac OS X 10.5.1 Leopard上で無事動きました〜! なんだ、Apacheのhttpd.conf編集するより全然楽じゃん! 中間鯖に負荷を気にしながら使うより、自分専用の中間鯖があった方が快適なことは明白・・・。

Apache TomcatのインストールおよびW2Chの中間鯖の立て方については、追ってエントリしたいと思います。

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番ポート以外は原則閉じておくことを忘れずに!