社内サーバーが一通りできあがったので、公開サーバーに挑戦することに。
色々事情があって、光回線を2本ほど増やしたので、それらを使って公開サーバーのテストをしています。
手順としては、以下の通り。
1 ダイナミックDNSサービスを使って、ドメインを設定
2 ルーターのアドレス変換機能を使って、httpやssh等のポートのみを開き、サーバー機に渡すようにする
3 サーバー機のファイアウォールの設定をする
4 apache php mysql 等の設定を行う
1 ダイナミックDNSサービスには、無料、有料のものがある。有料でいうと、DynDNS等。無料のものが、MyDNSや、ルーター会社がルーター購入者専用に用意しているもの等。
まずは、coregaのルーターで実験したので、coregaの無料ダイナミックDNSサービス「corede.net」でドメインを設定してみる。このサービスでは、corede.netのサブドメインであれば、無料、独自ドメインであれば、有料ということなので、まずはサブドメインから実験してみる。
次に、有料ダイナミックDNSも試してみる。DynDNSは、英語のみだが、設定はDotstar並なので、慣れればそれほど難しくはない。バッファローのルータが、DynDNSに対応しているので、こちらで登録。年間$27.50と、固定IPを取得することと比較すると格安。
最後に無料サービスも試してみる。MyDNSは無料で使えるサービス。但し、ルーターが自動的にIPを更新してくれる、上記のサービスとは異なり、FTP、メール、BASIC認証、手動設定等の方法でIPアドレスの通知が必要。
2 ドメインの設定が完了したら、ルーターの設定を変更。アドレス変換機能を使って、ルーターのWAN側のIPアドレスにあるポートに要求がきた場合にローカールアドレスに変換するように設定する。例えば、WAN側のIPが222.222.222.222として、ローカルのサーバ機のローカルIPアドレスが192.168.0.30とすると、222.222.222.222宛に22番ポート(SSH)の要求がきた際に、192.168.0.30のポート22番にわたすように設定する(バッファローのルーターの設定例)ルーターのアドレス変換は、最低限必要なポートだけ開けるようにする。
3 サーバー機の側でもポートの設定は必要。特に、SSH(22番ポート)やFTP(21番ポート)については、送信元IPアドレスを設定する等して、誰でもが接続することができないようにすることが肝要。遠隔操作を前提にしているので、webmin(10000番ポート)も設定。これで大体の設定は可能に。もちろんこのポートも発信元IPの制限をかける。
4 サーバーの設定。sshやftpは通常使うように設定する。apacheの設定について、今回仮想サーバーの設定を試してみる。上記2番のダイナミックDNSの設定で、複数のドメイン設定をしてみた。その上で、apacheの仮想サーバーを設定。例えば、domain.comのサブドメインをtest.domain.comとして、上記ダイナミックDNSにて両方のドメインを登録したとする。
バーチャルドメインの設定は以下のような感じ。
<VirtualHost 192.168.0.30>
DocumentRoot /var/www/vhosts/domain.com/html
ServerName www.domain.com
<Directory /var/www/vhosts/domain.com/html>
allow from all
Options +Indexes
</Directory>
</VirtualHost>
<VirtualHost 192.168.0.30>
DocumentRoot /var/www/vhosts/domain/subdomains/test/html
ServerName test.domain.com
<Directory /var/www/vhosts/domain/subdomains/test/html>
allow from all
Options +Indexes
</Directory>
</VirtualHost>
これで、www.domain.com とtest.domain.comは別々の内容を表示させることができるようになります。もちろんサブドメインだけでなく、別々のドメインの表示もできます。
xoopsの設定もやってみたかったので、色々実験。CentOS5で、標準に用意されていないのは、php-mbstringなので、yumでインストールしておく。また、open_basedirの設定もされていないので、上記バーチャルホスト設定のディレクトリに、
php_admin_flag safe_mode off
php_admin_value open_basedir "/var/www/vhosts/domain.com/html:/var/www/vhosts/domain.com/xoops_trust_path"
等の記述を入れておくことを忘れずに。safe_modeもmasterではonにしておき、このディレクトリのみoffにしておくとよいのではないかと思う。