最終更新: 05.12/23
以下はJDK 1.5・Tomcat 5.5・MySQL 4.1によるWebアプリの開発/運用環境構築の手順をメモしたものです。ついでにTomcatでPerlのCGIを動かすためのTipsを示します。
これは言うまでもなく筆者自身が再構築のさい泣かないようにするためのものです。2年前の Apacheメモ は古くてハナシにならなくなってしまいました。ここでは MySQL へのアクセスでさえ JSP 内でやっつけており,Java Servlet は作成していません。JSP実行時のコンパイル済みclassはworkディレクトリの奥深くに作られるようですね。
筆者の場合,SDK1.4→JRE1.5・Tomcat5.0→5.5・MySQL4.0→4.1と大きなギャップを乗りこえるヴァージョンナップだったので,既存分は事前にすべてアンインストールしました。mysqldumpしたMySQL4.0のデータを4.1に流すとき文字化けが発生しやすいようですが,筆者は普段から select * したタブ区切りテキストを load しており,この問題はスルーしています。
PC環境は Windows 2000 SP4 および xp HomeEdition。使用するCharactersetは Shift_JIS を想定しています。
x:
├Java
│├jdk1.5.0_06
│└jre1.5.0_06
│ └lib
│ └ext
│ └mysql-connector-java-3.1.12-bin.jar
│
├MySQL
│└MySQL Server 4.1
│ ├bin
│ │├libmySQL.dll
│ │└MySQLInstanceConfig.exe
│ ├data
│ │└webアプリ
│ │ └*.frm
│ └my.ini
│
├Perl
│└bin
│ └perl.exe
│
├Ruby
│└bin
│ └ruby.exe
│
└Tomcat
├conf
│└server.xml
├server
│└lib
│ └servlets-cgi.jar
├webapps
│├cgiアプリ
││└WEB-INF
││ ├cgi
││ │├cgiアプリ.cgi
││ │├cgiアプリ.pl
││ │└cgiアプリ.rb
││ ├classes
││ │└filters
││ │ └SetCharacterEncodingFilter.class
││ └web.xml
│├jsp-examples
││└WEB-INF
││ └classes
││ └filters
││ └SetCharacterEncodingFilter.class
│└webアプリ
│ ├logs
│ ├WEB-INF
│ │└classes
│ │ └webアプリ.properties
│ ├*.css
│ ├*.js
│ ├*.jsp
│ └*.xml
└work
└catalina
└localhost
└webアプリ
└org
└apache
└jsp
├*.class
└*.java
SunのサイトからJDKをダウンロードする。
J2SE(TM) Development Kit 5.0 Update 6
- Windows Offline Installation, Multi-language
ダウンロードしたexeをつついてインストール開始。JRE 5.0 も当然いれる。
コマンドプロンプトを開け,いきなり以下を打ってversion番号が表示されればOK。
java -version
Apache TomcatのサイトからTomcatをダウンロードする。JDKとTomcatのヴァージョンを合わせてやる必要があり,Javaで SDK 1.4.2 を選んだ場合は Tomcat 5.0.xx が吉。
5.5.12
- Core: Windows Executable
ダウンロードしたexeをつついてインストール開始。インストール_オプションで jsp-example も一所に落とし,更にWindowsサービスの登録も行なうようにする。
ここで環境変数を設定する。[コントロールパネル][システム][詳細]を辿って[環境変数]を開け,以下を設定。
ここでWindowsを再起動する。Windowsのサービスで Apache が[自動]で[開始]していることを確認する。Apacheが起動しない場合は JDK/SDKとTomcatのヴァージョンの組み合わせをまづ疑う。
ブラウザを立ち上げてアドレスバーに以下を指定して,Tomcatのウェルカム頁が表示されればOK。
http://localhost:8080/
MySQLのサイトからMySQL本体をダウンロードする。MySQLは既に 5.0 だが,RubyOnRailsとの兼ね合いで 4.1 を採る。MySQLは 4.0 と 4.1 の間に仕様の断絶があるのでこれより古いものは避けるべし。
MySQL 4.1 Downloads
- Windows (x86)
ダウンロードしたzipを展開して setup.exe でインストール開始。途中に出てくる設定事項にはちょっと注意が要る。
コマンドプロンプトで以下をいきなりタイプして,"Welcome to the MySQL Monitor."と表示されればOK。
mysql -uroot -p[パスワード] -v
Windowsのサービスで MySQL が自動で開始登録されていることを確認する。以前からのMySQLサービスが邪魔をして今回導入分が起動しない場合は Autorunsなどでいったんそのサービスを削除し,MySQL Server 4.1/bin/MySQLInstanceConfig.exe をつついてコンフィギュしなおすと吉。
日本MySQLユーザ会のサイトからShift_JISをデフォルトとしたMySQLのバイナリをダウンロードする。MySQL本家のバイナリは latin1 がデフォルトなので,そのままでは確実に文字化けする。
パッチをあてた MS-Windows 用バイナリ&ソース
- mysql-4.1.15-jp-sjis-win32.zip
ダウンロードしたzipを展開した中の /bin/libmySQL.dll を %MySQL%/MySQL Server 4.1/bin/libmySQL.dll に上書きコピーする。
MySQLのサイトからJDBCコネクタをダウンロードする。
Download Connector/J 3.1
- Source and Binaries (zip)
ダウンロードしたzipを展開した中から mysql-connector-java-3.1.12-bin.jar を x:/Java/jre1.5.0_06/lib/ext/ 下にコピーする。
ここまで来たら Windows を再起動して上述の確認事項をもう一度やってみる。
%TOMCAT_HOME%/webapps/ 下にwebアプリの設置ディレクトリを作成する。ここにJSPやJavaScriptのソースを置くことになる。
%TOMCAT_HOME%/conf/server.xml を開き,non-SSL HTTP/1.1 Connector on port 8080セクションの port を"80"に,redirectPortを"443"に変更する。
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
Hostセクションの最後に次のようなwebアプリのコンテキストを追記する。
<!-- webアプリ --> <Context path="/webアプリ" docBase="webアプリ" debug="0" reloadable="true" crossContext="false"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="webアプリ_log." suffix=".txt" pattern="common"/> </Context> </Host>
ここでWindowsサービスの Apache Tomcat を再起動する。ブラウザを立ち上げてアドレスバーに以下を指定して,webアプリ下のディレクトリ一覧が表示さればOK(:8080を付けないことに注意。逆に:8080を指定すると接続できない)。ただし/WEB-INF/以下は一覧にリストされない。
http://localhost/webアプリ/
%TOMCAT_HOME%/webapps/webアプリ/WEB-INF/classes/ 下にJDBC接続用のプロパティファイルを作成する。これをJSPから読みこんで使用する(ソース中にMySQLアクセスのパスワードを書かない)。
con=jdbc:mysql://localhost/webアプリ?user=root&password=MySQLのパスワード&useUnicode=true&characterEncoding=Shift_JIS jdbc=com.mysql.jdbc.Driver
%MySQL%/MySQL Server 4.1/data/ 下にDB定義・データの設置ディレクトリを作成する。ここにwebアプリがアクセスするDBの構造ファイルやデータファイルを置くことになる。
%MySQL%/MySQL Server 4.1/my.ini の character-set を Shift_JIS に変更する。何故か2箇所ある。basedir・datadirが意図したディレクトリになっていることを確認。
[mysql]default-character-set=sjis [mysqld] (中略) #Path to installation directory. All paths are usually resolved relative to this. basedir="x:/MySQL/MySQL Server 4.1/" #Path to the database root datadir="x:/MySQL/MySQL Server 4.1/Data/" # The default character set that will be used when a new schema or table is # created and no character set is defined default-character-set=sjis
MySQLdumpを遣う人はたぶんここで[mysqldump]のセクションを作って default-character-set=sjis するんだろうけどよく知らない。
ここで Windowsサービスの MySQL を再起動する。
以上でインストールとセットアップはおしまい。開発に専念する。
%TOMCAT_HOME%/webapps/webアプリ/ に,退避しておいたJSP・JavaScript・CSS・HTMLの各ファイルをコピーする。
%MySQL%/MySQL Server 4.1/data/DB名/ に,退避しておいた *.frm・*.MYD・*.MYI のMySQLデータ実体ファイルをコピーする。
MySQL 4.0 以下からのヴァージョンナップの場合は,改めてDB定義から作りなおしてデータを再ロードする。