サーバー管理の基本
Webサーバー「Apache」
本連載では主にWebサーバーの活用方法を扱っていきますが、ひと口にWebサーバーといってもいろいろな製品があります。その中でも最も多くのWebサイトで使われているのが、オープンソースのApache HTTPサーバー(http://httpd.apache.org/)(以下、Apache)です。最近は多少シェアを落としているものの、Netcraft社の直近の調査(http://news.netcraft.com/archives/2008/07/07/july_2008_web_server_survey.html)では、全世界の49%のドメインで採用されているそうです。
Apacheは豊富な設定項目を持ち、柔軟なカスタマイズが可能なことから、特に安価な共有レンタルサーバーでは圧倒的な支持を得ています。この連載の主なターゲットもそういったレンタルサーバーですので、これ以降はApacheを前提として設定方法を解説することにします。
そのほかのWebサーバーとしては、エンタープライズ分野に強いMicrosoft社のIIS(http://www.microsoft.com/japan/windowsserver2003/iis/default.mspx)や、動作が軽く高負荷なサイトに適しているlighttpd(http://www.lighttpd.net/)などの採用が多いようです。また、近年ではmongrel(http://mongrel.rubyforge.org/)やTomcat(http://tomcat.apache.org/)などの開発言語に特化したWebサーバーや、Apacheと高い互換性を保ちつつ高速に動作するLiteSpeed(http://litespeedtech.com/)など、新しいWebサーバーも多く開発されています。要求の多様化に合わせて、今後はさまざまなWebサーバーが適材適所で使われるようになっていくのかもしれません。
.htaccessの概要
Apacheは非常に柔軟性の高いWebサーバーであると書きましたが、それを象徴する機能が「.htaccess」です。.htaccessはApacheの設定をディレクトリ単位で変更できる設定ファイルで、多くのレンタルサーバーで設定変更の手段として利用されています。この連載で紹介するテクニックの多くもこれを利用しますので、ここで概要を解説しておきます。
ApacheはWebブラウザからのアクセスがあると、サイトのルートディレクトリからアクセスされたURLまで、順番に.htaccessの存在をチェックしていきます。.htaccessが見つかると、そこに記述された設定を適用し、さらに下層のディレクトリの検索を続けます。このプロセスですべての.htaccessを適用した後に、実際にファイルにアクセスしてWebブラウザにデータを返します。
CGIの実行許可を例にして.htaccessの動作を図示したのが図2です。Webサイトのルートにある.htaccessがCGIの実行を禁止しているため、「aaa.cgi」は実行できません。しかし、サブディレクトリ内の.htaccessがそれを上書きするので、「bbb.cgi」は実行可能です。このように、Webサイトの階層構造を利用して、わかりやすく柔軟な設定が可能です。
.htaccessの優れている点は、設定を記述するファイル(.htaccess)がWebサイトのコンテンツと同じディレクトリに存在することです。これなら.htaccessをFTPなどの通常の手順で作成・更新できますので、安価な共有レンタルサーバーでも柔軟な設定変更ができるというわけです。
なお、一部のレンタルサーバーサービスでは、さまざまな理由で.htaccessの機能の一部、もしくはすべてを無効にしていることがあります。レンタルサーバーを選ぶ際には、事前にどのような機能が利用できるかを機能表やFAQなどで確認し、選択の基準にするとよいでしょう。