自宅サーバーの構築
1.まえがき
主仕様は以下の通りです。
- 環境はWindowsXP
- インターネット接続はCATVでルーター無線LAN
- 開発環境はJava(j2sdk1.4.1_02)
- サーバーエンジンはTomcat4.1によるJSP&サーブレット
- WebサーバーはApache2
私が自宅サーバーを作ろうとしたきっかけは前からパソコンに興味を持っていたのですが、
会社を退職し、時間に余裕ができ何か創造的なことがしたかったことと、プロバイダーでの
ホームページでは容量に制限があり、データベースなどの使用にも不便を感じたことからです。
CGIではなくJavaベースになったのは、たまたまJavaアプレットのアニメーションをHPで見て
Javaプログラムに入ってしまったと言う単純な理由からです。
なお、ここに紹介する内容や語句については間違いがあるかも知れませんので、
あくまで参考程度に見ていただくようお願いします。
また、内容については、手順の詳細は下記文献を参考していただき、特に私が行きずまった
点など初心者の目で参考になる部分を中心に報告します。
--参考文献--
(1)Java逆引き大全500の極意(高橋和也氏ほか著/秀和システム発行)
(2)JSP & サーブレット サンプル集 基礎編(山田祥寛著/秀和システム発行)
(3)kent氏 Webサーバー化計画
2.Java開発環境の導入
(1)J2SDK(Java2 Software Development Kit)のインストール
a)次のサイトからダウンロードします。
http://java.sun.com/j2se/1.4.1/ja/download.html
注)ダウンロード〜J2SDKのインストールまでの手順については下記を参照します。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html
b)ダウンロードした下記ファイルをダブルクリックしてインストールを開始する。
j2sdk-1_4_1_02-windows.i586.exe
c)インストール手順に従ってインストールする。
途中インストール先のデイレクトリの選択画面ではデフォルトのまま
c:\j2sdk1.4.1_02 とする。
(2)環境変数の設定
a)以下の順序で環境変数Pathを設定する。
コントロールパネル→パフォーマンスとメンテナンス→システム→詳細設定→環境
変数→下部のシステムの環境変数で変数/Pathを選択し、編集をクリック→
システム変数の編集画面で変数値の最後に ;C:\j2sdk1.4.1_02\bin
を追加→OK
(3)Javaプログラムの実行確認
Java開発環境が正常に導入されたかどうかを下記手順で確認する。
a)メモ帳を開き、下記のサンプルプログラムを記入する。
class hello{
public static void main(String args[]){
System.out.println("Hello World ! ");
}
}
注)Javaプログラムの詳細についてはここでは述べません。別途上記文献などを参考
してください。
b) C:\sample フォルダを作成し、上で作成したプログラムを hello.java の名前で
このフォルダに保存する。
c)コマンドプロンプトを開き(スタート→すべてのプログラム→アクセサリ→
コマンドプロンプトで開く ) cd c:\sample と入力実行し、続いて
javac hello.java と入力実行する。
注)これでプログラムがコンパイルされ、C:\sample フォルダにhello.class という
ファイルが作成されている。
d)続いて java hello と入力実行し 「 Hello World ! 」と表示されていれば成功です。
Java の開発環境は正常です。
3.サーバーエンジン(Tomcat)の導入
Tomcat はユーザー(クライアント)の要求をサーバーサイドで処理し、その結果を
ユーザーのブラウザに返すためのソフトウエアーで、JSPやサーブレットのコンテナ機能
をもっています。
(1)Tomcatのインストール
a)次のサイトからダウンロードします。
http://jakarta.apache.org/site/binindex.cgi
このサイトの下の方にTomcat4.1.xx (xxはバージョン)があり、その中の 4.1.xx exe
をクリックするとダウンロードできます。
b)ダウンロードした下記ファイルをダブルクリックしてインストールを開始する。
jakarta-tomcat-4.1.xx.exe
c)インストール手順に従ってインストールする。
注1)途中インストール先のデイレクトリの選択画面ではデフォルトのまま
c:\Program Files\Apache Group\Tomcat4.1 とする。
注2)その他の画面もすべてデフォルトのまま進んで終了します。
d)ブラウザを起動し、アドレスに
http://localhost:8080/
と入力し、Tomcatのトップページが表示されたらインストールは正常です。
e)Tomcatの動作の開始・停止の確認
スタート→コントロールパネル→パフォーマンスとメンテナンス→管理ツール
→サービス でサービス画面を出し、Apache Tomcat4.1 を選択して
サービスの停止・起動を行う。(停止状態ではd)項の表示はされない)
(2)Tomcatの環境変数の設定
a)先述(1−(2)−a)項)の手順で環境変数画面を出し、システム環境変数
新規ボタンを押し、新しいシステム変数の画面で以下の様に入力OKする。
変数名:JAVA_HOME
変数値:c:\j2sdk1.4.1_02
b)同様に新規変数を下記の様に入力OKする。
変数名:TOMCAT_HOME
変数値:c:\Program Files\Apache Group\Tomcat4.1
c)同様に新規変数を下記の様に入力OKする。
変数名:CLASSPATH
変数値:%JAVA_HOME%\jre\bin;%JAVA_HOME%\lib;%JAVA_HOME\lib
\tools.ja;%TOMCAT_HOME%\common\lib\servlet.jar
(3)サーブレットプログラムの実行確認
以上の設定でサーバーサイドのプログラムが正常に動作するかどうかを次の手順で
確認する。
a)メモ帳を開き、下記のサンプルプログラムを記入する。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet{
public void doGet (HttpServletRequest request,
HttpServletResponse )
throws IOException, ServletException{
response.setContentType ("text/html;charset=Shift_JIS");
PrintWriter out=response.getWriter();
out.println("<html><head>");
out.println("<title>Hello World</title>");
out.println("</head><body>");
out.println("<h1>Hello World !</h1>");
out.println("</body></head>");
}
}
b)C:\sample フォルダに、上で作成したプログラムを HelloWorld.java の名前で
保存する。
c)コマンドプロンプトを開き(スタート→すべてのプログラム→アクセサリ→
コマンドプロンプトで開く ) cd c:\sample と入力実行し、続いて
javac HelloWorld.java と入力実行する。
注)これでプログラムがコンパイルされ、C:\sample フォルダにHelloWorld.class
というファイルが作成されている。
d)このHelloWorld.class というファイルをコピーし、次のフォルダに貼り付けます。
c:\Program Files\Apache Group\Tomcat 4.1\webapps\sample
\WEB-INF\classes
注)この場合、\sample\WEB-INF\classes の各フォルダは新しく作成します。
e)ブラウザを起動し、アドレスに
http://localhost:8080/sample/servlet/HelloWorld
と入力し、Hello World ! と表示されたら、サーブレット機能は正常です。
4.ルーターの設定
サーバーを開設するパソコンがルーターを介してインターネットに接続している場合は
外部からのアクセスに対してサーバーパソコンにいつも接続するようにルーターを設定
しておく必要があります。
設定方法についての詳細は参考文献3などを参考していただけばよいのですが、
ここでは私のルーター(メルコ製無線LAN:BUFFALO・AirStation/WBR-B11)の場合
について説明します。
(1)サーバーパソコンのIPアドレスの固定
コントロールパネル→ネットワークとインターネット接続→ネットワーク接続→無線
接続アイコン右クリック→プロパテイー→インターネットプロトコル(TCP/IP)を選択
・プロパテイー→次のIPアドレスを使うを選択→以下のの様にインプットする。
IPアドレス:192.168.11.2
サブネットマスク:255.255.255.0
ゲートウエイ:192.168.11.1
注)ここでIPアドレスはサーバーパソコンのローカルIPアドレス、ゲートウエイはルーター
のIPアドレスです。
さらに→次のDNSサーバーのアドレスを使うを選択→以下の様にインプットする。
優先DNSサーバー:192.168.11.2
(2)アドレス変換テーブルの設定
a)エアーステーションのクライアントマネージャーを立ち上げ、エアーステーションを選択
後、管理→エアーステーションの設定→ユーザー名、パスワードの入力・OK→
エアーステーションのトップ画面を開く。
b)エアーステーションのトップ画面で機能設定を開き→インターネット対応ゲームを
使う→下記を入力
TCP:80
UDP:ブランクのまま
LAN側IPアドレス:192.168.11.2
ここで、TCPの80はルーターのポート番号で、外部からサーバーにアクセスする際の
ポートとなります。
(3)外部からのアクセスでサーバーに接続するかどうかの確認
a)グローバルIPアドレスの確認
この段階で外部からアクセスするためには、ルーターの外側のIPアドレス(グローバル
IPアドレス)を知る必要があります。このIPアドレスはCATV接続会社から供給された
アドレスで、簡単に知る方法としては参考文献3の下記ページから調べることができ
ます。
http://www.kent-web.com/www/anhttpd/www3.html
の「あなたのIPアドレス」をクリック。
そのIPアドレスをたとえば 192.168.50.50 とします。
b)外部(たとえば友人のパソコン)から次のURLでアクセスし、自宅サーバーに接続するか
どうかをチェックします。
http://192.168.50.50/sample/servlet/HelloWorld
接続が成功すれば、Hello World ! と表示されます。
注)私の場合、この作業をおこなっても、正常に接続されませんでした。
理由は定かではありませんがTomcatの入力ポートが8080であって80でないため
かと考え、ポートの変更を試みましたが、うまくいきませんでしたので最終的に
WebサーバーApacheを介して接続することにしました。
5.Webサーバー(Apache)の導入
(1)Apacheのインストール
a)次のサイトからダウンロードします。
http://jakarta.apache.org/dist/httpd/binaries/win32/
このサイトの下の方にある次のファイルをクリックしてダウンロードします。
apache_2.0.47-win32-x86-no_ssl_msi
b)ダウンロードしたファイルをダブルクリックしてインストールを開始する。
c)インストール手順に従ってインストールする。
注1)途中 Server Infomation の画面では
Network Domain : localhost
Server Name : localhost
Administrator's Email Adress : 自分のメールアドレス
と記入し、For All Users,onPort 80 にチェックを入れる。
注2)Setup Type の画面ではTypical にチェックを入れる。
注3)Destination Folder (インストール先)はそのままNextでよい。
デフォルトでApache2はc:\Program Files\Apache Group に
インストールされる。
d)インストールが完了したらブラウザを起動し、アドレスに
http://localhost/
と入力し、Apacheのスタートページが表示されたらインストールは正常です。
e)Apacheの動作の開始・停止の確認
スタート→コントロールパネル→パフォーマンスとメンテナンス→管理ツール
→サービス でサービス画面を出し、Apache2 を選択して
サービスの停止・起動を行う。(停止状態ではd)項の表示はされない)
(2)Tomcat と Apache の連携設定
a)接続用コネクタモジュールを下記サイトからダウンロードする。
http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/
上記ページから v2.0.2→bin→win32 とクリックしていき、
mod_jk2-2.0.43.dll ファイルをダウンロードする。
b)ダウンロードした上記ファイルのファイル名を mod_jk2.dll に変更し、下記
デイレクトリにコピーします。
c:\Program Files\Apache Group\Apache2\modules
c)c:\Program Files\Apache Group\Apache2\conf にある httpd.conf
ファイルをメモ帳で開き、末尾に次の内容を追記し、上書きします。
LoadModule jk2_module modules/mod_jk2.dll
d)メモ帳で新規ファイルを作成し、下記内容を記入する。
[status:]
[uri:/jkstatus/*]
group=status:
[shm:]
disabled=1
[channel.socket:]
[ajp13:]
[uri:/examples/*]
[uri:/sample/*]
作成したファイルに workers2.properties というファイル名で下記
フォルダに保存する。
c:\Program Files\Apache Group\Apache2\conf
(3)Apache と Tomcat の連携確認
a)4−(1)−e)のサービス画面で、Tomcat4.1 Apache2 の順序で再起動
する。
b)ブラウザを開き下記アドレスを入力する。
http://localhost/examples/jsp/
JSP Samples のトップページが表示されれば連携は正常です。
c)外部(たとえば友人のパソコン)から次のURLでアクセスし、自宅サーバーに接続するか
どうかをチェックします。
http://192.168.50.50/sample/servlet/HelloWorld
接続が成功すれば、Hello World ! と表示されます。
注)IPアドレス192.168.50.50 はサーバーパソコンのグローバルアドレスです。
6.ドメインネームの取得
Webサーバー名にIPアドレスを直接入れてもサーバーに接続しますが、通常は
ドメイン名を登録し、ドメイン名とIPアドレスを関連づけるのが普通です。
ドメイン名の取得方法については参考文献3のkentさんのサイト
http://www.kent-web.com/www/anhttpd/www3.html
に詳しく説明されていますので参照させていただきました。