Apache
このページを見に来られた方は「Apache」とは何であるかご存じのことと思うので、それについての解説については省かせていただくことにする。ここでは表題の通り、Mac OS X上でApacheによるWebサービスの一部の機能を動作させるための変更点のみに的を絞った。Mac OS XではデフォルトでApacheがインストールされているのだが、そのままではCGIやSSIといった便利な機能が利用できない。それを、利用出来るように変更する手順を記していこうと思う。
尚、Mac OS XではApache1.3.14が入っている。(2001年05月17日現在)このApacheなどのUNIX系アプリケーション類は頻繁にバージョンアップされることが多く、またセキュリティー上最新のものの方がベストではあろうかと思われる。ぼくの環境ではApache1.3.19をインストールしているので、デフォルトで入ってくる1.3.14とは違う部分があるかもしれないが、その点は随時、置き換えて解釈して頂きたい。
このページを見に来られた方は「Apache」とは何であるかご存じのことと思うので、それについての解説については省かせていただくことにする。ここでは表題の通り、Mac OS X上でApacheによるWebサービスの一部の機能を動作させるための変更点のみに的を絞った。Mac OS XではデフォルトでApacheがインストールされているのだが、そのままではCGIやSSIといった便利な機能が利用できない。それを、利用出来るように変更する手順を記していこうと思う。
尚、Mac OS XではApache1.3.14が入っている。(2001年05月17日現在)このApacheなどのUNIX系アプリケーション類は頻繁にバージョンアップされることが多く、またセキュリティー上最新のものの方がベストではあろうかと思われる。ぼくの環境ではApache1.3.19をインストールしているので、デフォルトで入ってくる1.3.14とは違う部分があるかもしれないが、その点は随時、置き換えて解釈して頂きたい。
httpd.confを探す
"/etc/httpd/"に"httpd.conf"というファイルがある。この"httpd.conf"が、従来のMac OSやアプリケーションで言うところの初期設定ファイルに該当するファイルだ。Apacheは起動する際にこの"httpd.conf"を読み込むことでその振る舞いを決定している。Mac OS 9.1以前がOS起動時に機能拡張書類を読み込むのに"拡張マネージャ初期設定"で読み込むものを選別しているのに感覚は近いかもしれない。よってこの "httpd.conf"を書き換える(コメントアウトやコメントにする、追記または削除)ことでSSIやCGIが使えるようになるのである。
※注:Mac OS Xでは、デフォルトで"/etc/"以下のディレクトリ(以下Dir)やファイルはFinder上で表示されない。したがって、Terminal.App や3rd Utilityを利用する必要があるが、ここではそれについては解説していない。また、このDir付近には重要なファイルが多くあるので、作業には最大限の注意が必要。必ずバックアップをとるなどの手順を踏み、いつでも元の状態に戻せるだけの準備をしてから作業に入るようにする。当然ながらこれらの作業は全て個人の責任であり、誰から保証されるものでも無いのでその点は留意して欲しい。
Finder上で見るとここら辺にある。
準備
まずはApacheが停止していることを確認しよう。幸いOS Xでは"環境設定"でApacheのOn、Offがクリック一つで出来るようになっており、また目で見て稼動しているか停止しているかが確認出来る。
この状態で、Apacheは停止している。稼動させるには2段目のWeb共有のところの「開始」ボタンをクリックするだけでいい。逆に停止させるには「停止」ボタンを押す。1段目のファイル共有の項目はApple Talkでの共有のこと。取り違えないように。
いざ、編集
それでは早速"httpd.conf"を編集する。上にも書いたが重要なファイルを書き換える訳なので、最大限、神経を使いながら作業する。この手のファイルを開くのにぼくはJeditで開いてしまうが、これはviでもemacsでも何で開いても構わない。ただし、ちゃんと開けるかどうかは各自確認してほしい。Jeditで開く場合、ファイルをFinderからJeditアイコンにドラッグアンドドロップしても開かないので、Finder上の "httpd.conf"を右クリック(コンテキストメニュー)で「開く」から「全てのアプリケーション」でJeditを指定。尚、Jeditの初期設定で行番号を表示にしておくと便利である。
開いた"httpd.conf"の391行目付近に
という記述があるので、これを
と"Includes"を追加する。この行でApacheの機能を加減しているわけだ。ここで注意することは、必ずオプションの間はスペースで空けること。また、"Includes"の代わりに"IncludesNoExec"でも良い。この2者の違いは"Exec"が利用できるか出来ないかの違いであるので、利用目的に合わせれば良い。どちらかと言えば"IncludesNoExec"の方がセキュリティー上は良いのかもしれない。というかポカをやらかした際の被害は少ないと言える。
行頭に"#"が付いているものが「コメントアウト」されたもの。「コメントを外す」にはこの"#"を消せば良い。ここの画面では"Includes"を追加記述している。
CGIはもう一手間
"httpd.conf"の601〜622行目付近で、ScriptAriasの指定を行っている。デフォルトでは、"cgi-bin"という名前の Dirを"CGI-Executables"のAriasとすることを定義しているので、ここを書き換えることにより任意のDirに.cgiを置けるようになるが、変更する必要性は低いかと思う。最後に重要な部分。"httpd.conf"の828行目付近に
という記述があるのでこの部分のコメントを外す。
これで"cgi-bin"の中に置いた.cgiファイルが実行出来るようになる。当然ながらこれらのファイルのパーミッションは設定した上での話。Termial上では
などのようにしてやれば良い。これで実行権を付けてやるわけだ。
おまけ(DocumentRoot=HOME)
"httpd.conf"の357行目付近で、HOME Dirを指定している。ここのパスを書き換えることにより、http://〜/で表示されるHOME Dir(http://〜/~foo/などのユーザー別Dirとはまた別である。)を変更することが可能。任意のDirやボリュームなどを指定し直すのもよい。
必ずフルパスで指定する。ちなみにこれはぼくのApache1.3.19での設定。尚、ここを書き換えた場合は、382行目付近の
も合わせて同じように書き換えてやる必要があるので忘れないように。この2つの部分は必要が無ければ書き換えない方が無難かもしれない。やたらと手を加えてトラブルの種を増やすことも無かろう、というのが理由。ただ、ディスク容量が足りない、などの場合はこういった利用の仕方もあるという程度のことと受け取っていただければ幸いである。
肝心
"httpd.conf"を保存し、ブラウザ(localでも他のマシンでもよい)でアドレス(ドメインネーム)を打ち込んで、「あれっ、表示されない」と慌てないように。もし、"httpd.conf"を編集した際にApacheが稼動していたなら再起動してやりましょう。停止させていたなら起動させること。これを忘れるといくら優秀なマシンでも良いコンテンツでもブラウザには帰ってきません。世界中に配信するもよし、本番アップ前のlocal test環境とするもよし、思う存分に自分専用として活用しましょう。
この状態は稼動しているところ。2段目のWeb共有のところのボタンが「停止」表示になっていれば稼働中。逆に「開始」表示が出ていれば停止している状態。これらのサービスはOS X上でユーザーログイン前でも有効なので、通常Webサーバーとして運用するにはユーザーログアウトした状態で放っておくのも良い。必要に応じてログインすれば良いだけなのだから。
最後になりましたが、これらの設定を変更するにあたって馬本を参照しました。これからWeb ServerとしてApacheを使い、公開していこうと思っている方は是非とも購入されることをお勧めします。割合大きめの本屋であれば置いてあることが多いので是非とも手にとって見ていただきたいと思います。
また、上記の中で、ここは違う、とかこうした方がよいのではないか、といったご意見や突っ込みは歓迎しております。ただし、サポセンではないので教えてくれ攻撃はご遠慮頂きたいかなと。少しでも「自分の力で何とかしてやろう」という意志のある方のお役に立てればと思い、記載した次第。
"/etc/httpd/"に"httpd.conf"というファイルがある。この"httpd.conf"が、従来のMac OSやアプリケーションで言うところの初期設定ファイルに該当するファイルだ。Apacheは起動する際にこの"httpd.conf"を読み込むことでその振る舞いを決定している。Mac OS 9.1以前がOS起動時に機能拡張書類を読み込むのに"拡張マネージャ初期設定"で読み込むものを選別しているのに感覚は近いかもしれない。よってこの "httpd.conf"を書き換える(コメントアウトやコメントにする、追記または削除)ことでSSIやCGIが使えるようになるのである。
※注:Mac OS Xでは、デフォルトで"/etc/"以下のディレクトリ(以下Dir)やファイルはFinder上で表示されない。したがって、Terminal.App や3rd Utilityを利用する必要があるが、ここではそれについては解説していない。また、このDir付近には重要なファイルが多くあるので、作業には最大限の注意が必要。必ずバックアップをとるなどの手順を踏み、いつでも元の状態に戻せるだけの準備をしてから作業に入るようにする。当然ながらこれらの作業は全て個人の責任であり、誰から保証されるものでも無いのでその点は留意して欲しい。
Finder上で見るとここら辺にある。
準備
まずはApacheが停止していることを確認しよう。幸いOS Xでは"環境設定"でApacheのOn、Offがクリック一つで出来るようになっており、また目で見て稼動しているか停止しているかが確認出来る。
この状態で、Apacheは停止している。稼動させるには2段目のWeb共有のところの「開始」ボタンをクリックするだけでいい。逆に停止させるには「停止」ボタンを押す。1段目のファイル共有の項目はApple Talkでの共有のこと。取り違えないように。
いざ、編集
それでは早速"httpd.conf"を編集する。上にも書いたが重要なファイルを書き換える訳なので、最大限、神経を使いながら作業する。この手のファイルを開くのにぼくはJeditで開いてしまうが、これはviでもemacsでも何で開いても構わない。ただし、ちゃんと開けるかどうかは各自確認してほしい。Jeditで開く場合、ファイルをFinderからJeditアイコンにドラッグアンドドロップしても開かないので、Finder上の "httpd.conf"を右クリック(コンテキストメニュー)で「開く」から「全てのアプリケーション」でJeditを指定。尚、Jeditの初期設定で行番号を表示にしておくと便利である。
開いた"httpd.conf"の391行目付近に
Options ExecCGI Indexes FollowSymLinks MultiViews
という記述があるので、これを
Options Includes ExecCGI Indexes FollowSymLinks MultiViews
と"Includes"を追加する。この行でApacheの機能を加減しているわけだ。ここで注意することは、必ずオプションの間はスペースで空けること。また、"Includes"の代わりに"IncludesNoExec"でも良い。この2者の違いは"Exec"が利用できるか出来ないかの違いであるので、利用目的に合わせれば良い。どちらかと言えば"IncludesNoExec"の方がセキュリティー上は良いのかもしれない。というかポカをやらかした際の被害は少ないと言える。
行頭に"#"が付いているものが「コメントアウト」されたもの。「コメントを外す」にはこの"#"を消せば良い。ここの画面では"Includes"を追加記述している。
CGIはもう一手間
"httpd.conf"の601〜622行目付近で、ScriptAriasの指定を行っている。デフォルトでは、"cgi-bin"という名前の Dirを"CGI-Executables"のAriasとすることを定義しているので、ここを書き換えることにより任意のDirに.cgiを置けるようになるが、変更する必要性は低いかと思う。最後に重要な部分。"httpd.conf"の828行目付近に
#AddHandler cgi-script .cgi
という記述があるのでこの部分のコメントを外す。
AddHandler cgi-script .cgi
これで"cgi-bin"の中に置いた.cgiファイルが実行出来るようになる。当然ながらこれらのファイルのパーミッションは設定した上での話。Termial上では
$ chmod 705 ~/foo.cgi
(場合によっては$ sudo chmod 705 ~/foo.cgi)
などのようにしてやれば良い。これで実行権を付けてやるわけだ。
おまけ(DocumentRoot=HOME)
"httpd.conf"の357行目付近で、HOME Dirを指定している。ここのパスを書き換えることにより、http://〜/で表示されるHOME Dir(http://〜/~foo/などのユーザー別Dirとはまた別である。)を変更することが可能。任意のDirやボリュームなどを指定し直すのもよい。
DocumentRoot "/Library/WebServer/Documents"
必ずフルパスで指定する。ちなみにこれはぼくのApache1.3.19での設定。尚、ここを書き換えた場合は、382行目付近の
<Directory "/Library/WebServer/Documents">
も合わせて同じように書き換えてやる必要があるので忘れないように。この2つの部分は必要が無ければ書き換えない方が無難かもしれない。やたらと手を加えてトラブルの種を増やすことも無かろう、というのが理由。ただ、ディスク容量が足りない、などの場合はこういった利用の仕方もあるという程度のことと受け取っていただければ幸いである。
肝心
"httpd.conf"を保存し、ブラウザ(localでも他のマシンでもよい)でアドレス(ドメインネーム)を打ち込んで、「あれっ、表示されない」と慌てないように。もし、"httpd.conf"を編集した際にApacheが稼動していたなら再起動してやりましょう。停止させていたなら起動させること。これを忘れるといくら優秀なマシンでも良いコンテンツでもブラウザには帰ってきません。世界中に配信するもよし、本番アップ前のlocal test環境とするもよし、思う存分に自分専用として活用しましょう。
この状態は稼動しているところ。2段目のWeb共有のところのボタンが「停止」表示になっていれば稼働中。逆に「開始」表示が出ていれば停止している状態。これらのサービスはOS X上でユーザーログイン前でも有効なので、通常Webサーバーとして運用するにはユーザーログアウトした状態で放っておくのも良い。必要に応じてログインすれば良いだけなのだから。
最後になりましたが、これらの設定を変更するにあたって馬本を参照しました。これからWeb ServerとしてApacheを使い、公開していこうと思っている方は是非とも購入されることをお勧めします。割合大きめの本屋であれば置いてあることが多いので是非とも手にとって見ていただきたいと思います。
また、上記の中で、ここは違う、とかこうした方がよいのではないか、といったご意見や突っ込みは歓迎しております。ただし、サポセンではないので教えてくれ攻撃はご遠慮頂きたいかなと。少しでも「自分の力で何とかしてやろう」という意志のある方のお役に立てればと思い、記載した次第。
コメントする