FreeBSDでLAMPをセットアップするBeginner's Guide(1/3 ページ)

Linuxと同等、もしくはそれ以上に各方面の第一線で活用するFreeBSD。ライセンスやメンテナンスの面でApacheやMySQLなどを使うことに抵抗もあるかもしれないが、FreeBSDでこれらを使ったサーバの構築法を解説しよう。

» 2008年08月14日 11時18分 公開
[Martin Munch,Open Tech Press]
SourceForge.JP Magazine

 LAMPサーバのセットアップといえば、システム管理者によく回ってくる仕事だが、信頼性が高く安定したOSとしてはLinux以外にもFreeBSDがある。つまり、LAMPのL(Linux)をF(FreeBSD)で置き換えても、高速で信頼性の高いWebサーバを構築できるわけだ。

 本稿では、FreeBSDがすでにインストールされているものとして話を進める。インストールが済んでいない場合は、FreeBSDの最新の安定稼働版をダウンロードしてインストーラを実行すればよい。インストール画面では、MINIMUMオプションの選択をお勧めする。そうすれば、最も基本的で必要なものだけを短時間でインストールできる。

 FreeBSDにアプリケーションをインストールするには、portsファイルを使う。portsファイルは、コンピュータ上でソフトウェアをコンパイルするためのソースコードをどこからダウンロードすればよいかが記されたプレーンテキストファイルである。このファイルで設定(特定のモジュールの追加/除外)を自由に変更することで、インストールするマシンの仕様にぴったり合ったソフトウェアが得られる。まずは、最新のportsファイルを用意する。これまで一度もportsファイルをインストールしたことがなければ「portsnap fetch extract」を、それ以外の場合は「portsnap fetch update」をシェルで実行する。これで最新のportsファイルがダウンロードされる。ダウンロードされたファイル名を示す一連のメッセージ表示が終了したら、次のステップに進むとしよう。

Apache

 続いて、WebサーバそのものであるApacheのコンパイルとインストールを、以下に示すコマンド列によって行う。適切なディレクトリに移り(最初のコマンド)、2番目のコマンドを実行すると設定画面が表示され、ここで設定の内容を変更できる。IPv6サポートやproxyモジュールを有効にしてもよいが、通常は標準設定のままでも問題はない。設定内容の確認を済ませると、Apacheのコンパイルとインストールが自動的に行われる。最後の3行は、OSの起動時にApacheと必要なモジュールを自動で立ち上げるためのものだ。

cd /usr/ports/www/apache22/

make config install distclean

echo 'apache2_enable="YES"' >> /etc/rc.conf

echo 'apache2ssl_enable="YES"' >> /etc/rc.conf

echo 'accf_http_ready="YES"' >> /etc/rc.conf && kldload accf_http


 Apacheのインストールが無事に済んだら、サーバとしての設定を行う必要がある。まず、SSLサポートを有効にし、証明書ファイルと鍵ファイルを作成する。SSL鍵ファイルは、パスワードの変更と証明書の復元を行うための秘密ファイルである。SSL証明書ファイルは、訪問者側のWebブラウザに対して利用しているサーバが不正なものではないことを保証する証明書の役割を果たす。デフォルトでは、SSL証明書ファイルが「/usr/local/etc /apache22/server.crt」、SSL鍵ファイルが「/usr/local/etc/apache22/server.key」になっている。これらの設定は「/usr/local/etc/apache22/extra/httpd-ssl.conf」ファイル中でそれぞれ「SSLCertificateFile」と「SSLCertificateKeyFile」という文字列を検索することで確認と変更ができる。

 Apacheのバージョン2以降では、メインの設定ファイルの内容が「/usr/local /etc/apache22/extra/」内の幾つかの追加ファイルに分割されている。この変更のおかげで、特定のオプションが見つけやすくなり、メイン設定ファイルのサイズも小さくなった。メイン設定ファイルで見つからないオプションについては、追加ファイルを当たればよい。

 続いて、適切なディレクトリに移って鍵ファイルを生成する。この鍵を使うことで、証明書署名要求(CSR:Certificate-Signing Request)を生成できる。これは、鍵の署名を認証局(CA:Certificate Authority)に依頼するためのものだ。VeriSignのような認証機関に依頼する以外に、自己署名を行うこともできる。専門の機関から署名を受けるには費用が掛かるが、そうした証明書を持つWebサーバは訪問者側としても安心して利用できる。自己署名された証明書の場合は、そのサイトの訪問者のブラウザに警告が表示されるが、コストは一切かからない。以下に、 SSL証明書に自己署名するためのコードを示す。

cd /usr/local/etc/apache22/

openssl genrsa -des3 -out server.key 1024

openssl req -new -key server.key -out server.csr

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

chmod 0400 server.key server.crt


 これで鍵ファイルと証明書ファイルの生成が適切なパーミッションとディレクトリの下で行われる。とはいえ、設定の必要な個所が幾つかある。

 まず「/usr/local/etc/apache22/httpd.conf」ファイルでは、「ServerAdmin」を検索してサーバ管理者の電子メールアドレスを正しく設定する。また、Webドキュメントの置かれている場所を示す「DocumentRoot」には、サーバ上の「/srv/www/01」を指定する。さらに、各ユーザーの個人的なWebコンテンツを非公開にするために、「Include etc/apache22/extra/httpd-userdir.conf」の行をコメントアウトしておく。最後に「Include etc/apache22/extra/httpd-ssl.conf」の行を有効にしてSSLのサポートをオンにする。

 続いて「/usr/local/etc/apache22/extra/httpd-default.conf」ファイルでは「ServerSignature」を無効にしてサーバによる不必要な情報の表示を防ぐ。また「/usr/local/etc/apache22/extra/httpd-info.conf」ファイルでも、「server-status」と「server-info」の各セクションをコメントアウトしておく。セキュリティ担当者としては、Webサーバに関する情報はできるだけ隠しておく方が好都合だからだ。

 また、「usr/local/etc/apache22/extra/httpd-vhosts.conf」ファイルには、このサーバへのすべてのSSL接続用のディレクトリを設定しておく。なお、この例ではサーバ名が「lawrencium」になっているが、この部分は適宜変更すること。

NameVirtualHost *:443

ServerName lawrencium

ServerAlias lawrencium.ipc.net

DocumentRoot /srv/www/02/

Order allow,deny

Allow from all

SSLEngine On

SSLCertificateFile /usr/local/etc/apache22/ssl.crt/server.crt

SSLCertificateKeyFile /usr/local/etc/apache22/ssl.key/server.key

AllowOverride None

Order Deny, Allow


 これで、80番ポートへのすべての接続と、443番ポートへのすべての接続に対してディレクトリが1つずつ(「/srv/www/01」と「/srv/www/02」)用意される。

関連キーワード

Beginner's Guide | FreeBSD | PHP | MySQL | Apache | LAMP


       1|2|3 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ