ギゾネット 2001.12.21更新

ApacheのIPv6化


ApacheをIPv6対応にしてみましょう.
IPv4/IPv6のどちらでもWebページが閲覧できるようになります。
今回はFreeBSD4.4-RELEASEを使ってインストールしました。

ソースとパッチを取ってくる
KAMEからパッチを取ってきます。
2001年12月20日現在、ここにあるのはApache-1.3.19用のパッチです。
ということで、ApacheのWebページからApache-1.3.19の ソースを持ってきます。

インストール
以下の説明では、作業ディレクトリを/usr/local/srcと仮定します。
取ってきた、ソースとパッチを/usr/local/srcに置きます。

%cd /usr/local/src
%tar zxvf apache_1.3.19.tar.gz
%gunzip apache-1.3.19-v6-20010309a.diff.gz
%cd apache_1.3.19
%patch -p1 < ../apache-1.3.19-v6-20010309a.diff

DSO対応でconfigureします。
ここでモジュールをインストールしたい場合(例えばmod_rewriteなどをインストールするなら、 一緒にconfigureのオプションに加えても結構です。
別にDSOでなくてもいい場合は--enable-module=soオプションは不要です。
DSOにしておけば後から、PHPとかTomcatとかを組み込むときに楽だというだけで、IPv6がらみの理由ではありません。

%./configure --enable-module=so --enable-rule=INET6
%make
%su (rootになる)
#make install

これでインストールは完了です

IPv4での確認
まず、IPv4でWebページが見られるように設定します。
Apache設定ファイルは、/usr/local/apache/confにありますので viやemacsなどの適当なエディタでhttpd.confを書き換えます。
私のサーバーはホスト名(CNAMEでもいいです)www、ドメイン名gizo.netですので、Apacheをインストールした時点で、以下のような行があります。
(各行は連続していません。間に何行もあります。)
ちなみに、インストール作業したユーザー名はhogeです。

#Listen 12.34.56.78:80

Port 8080

ServerAdmin hoge@www.gizo.net

#ServerName www.gizo.net

上記部分を以下のように書き換えます。
プロバイダから割り当てられているIPv4アドレスは210.138.35.27だと仮定します。
(適宜、ご自分の環境に合わせて読み替えてください)

Listen 210.138.35.27:80

Port 80

ServerAdmin webmaster@gizo.net

ServerName www.gizo.net

ということになりますが、ServerAdminは実際にメールが到着するアドレスを書いてください。webmasterというユーザーをエイリアスで作っておくのも一つの方法です。
書き換えが済んだら
#/usr/local/bin/apachectl start
でApacheを起動します。
ブラウザでアクセスしてデフォルトのページが表示されればOKです。

IPv6の設定
ではIPv6用に再度設定ファイルを書き換えます。
先ほどの、/usr/local/apache/confをエディタで開いて、以下の行の行頭の#を取ってください。

#Listen :: 80
#Listen 0.0.0.0 80

さらに下のほうにvirtualホストの設定部分がありますが(virtualホストの設定はデフォルトでは#が行頭について無効になっています)、
そのあたりに以下の記述をします。
IPアドレスはご自分の環境に合わせて書き直してください。
NameVirtualHost [2001:240:3e:1:202:b3ff:fe1e:37de]:80
NameVirtualHost 210.138.35.27:80

<VirtualHost 210.138.35.27:80>
ServerAdmin webmaster@gizo.net
DocumentRoot /usr/local/apache/htdocs
ServerName www.gizo.net
ErrorLog logs/error_log
CustomLog logs/access_log common
</VirtualHost>

<VirtualHost [2001:240:3e:1:202:b3ff:fe1e:37de]:80>
ServerAdmin webmaster@gizo.net
DocumentRoot /usr/local/apache/htdocs
ServerName www.gizo.net
ErrorLog logs/v6_error_log
CustomLog logs/v6_access_log common
</VirtualHost>

書き換えが済んだら
#/usr/local/bin/apachectl restart
でApacheを再起動します。
IPv6対応のブラウザでアクセスしてみてIPv4でもIPv6でも先ほどのデフォルトのページが見られればOKです。
うまくいかないときは、/usr/local/apache/logs/error_logにエラーログが書き出されますので、原因を調べてみてください。

補足
SSL対応はちょっと出来ませんでした。mod_sslで試したんですが、うまくパッチがあたらないのであきらめました(^^;