2000年9月11日星期一

ApacheとTomcat環境構築

環境:

◇Windows Server 2003 SP2
◇Apache_2_0_58
◇Tomcat_5_0_28
◇JDK_1_4_2_15(開発と本番の実行環境)
◇JDK_1_6(Tomcatの実行環境)
◇mod_jk2.so(ApacheとTomcat連携用ファイル)

構築手順:

①JDKのインストール(JDK_1_4_2_15とJDK_1_6)
  C:\j2sdk1.4.2_15
  C:\Program Files\Java\jdk1.6.0_27

  システムの環境変数に追加 JAVA_HOME:C:\j2sdk1.4.2_15

②Apacheのインストール
  C:\Program Files\Apache Group\Apache2
  mod_jk2.soをC:\Program Files\Apache Group\Apache2\modulesにコピーする

  Apache2\conf\【httpd.conf】ファイルを編集
  LoadModule jk2_module modules/mod_jk2.soを追加する

  Apache2\confに【workers2.properties】ファイルを作成

  # ログファイルの設定
  [logger.file:0]
  level=ERROR
  file=${serverRoot}/logs/jk2.log
  
  # ソケット通信チャンネル
  [channel.socket:localhost:8009]
  info=Ajp13 forwarding over socket
  ## host=localhost
  ## port=8009
  ## group=lb
  
  # lbワーカグループで使うWebアプリケーション
  [uri:/test/*]
  info=Map the Tomcat examples
  ## group=lb
  
  # ステータス監視ワーカの設定
  [status:]
  [uri:/jkstatus/*]
  group=status:
  
  # 共有メモリ
  [shm:]
  # 使わない
  disabled=1

③Tomcatのインストール(C:\Program Files\Java\jre6を指定)
  C:\Program Files\Apache Software Foundation\Tomcat 5.0
  システムの環境変数に追加 TOMCAT_HOME:C:\Program Files\Apache Software Foundation\Tomcat 5.0
  
  TOMCAT_HOME\confにある設定ファイルの追加と編集
  
  【jk2.properties】
  
  ## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
  ## WHEN YOU EDIT THE FILE.
  
  ## COMMENTS WILL BE _LOST_
  
  ## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.
  
  # Set the desired handler list
  # handler.list=apr,request,channelJni
  #
  # Override the default port for the socketChannel
  # channelSocket.port=8019
  # Default:
  # channelUnix.file=${jkHome}/work/jk2.socket
  # Just to check if the the config is working
  # shm.file=${jkHome}/work/jk2.shm
  
  # In order to enable jni use any channelJni directive
  # channelJni.disabled = 0
  # And one of the following directives:
  
  # apr.jniModeSo=/opt/apache2/modules/mod_jk2.so
  
  # If set to inprocess the mod_jk2 will Register natives itself
  # This will enable the starting of the Tomcat from mod_jk2
  # apr.jniModeSo=inprocess
  
  
  【tomcat-users.xml】
  
  <?xml version='1.0' encoding='utf-8'?>
  <tomcat-users>
   <role rolename="manager"/>
   <role rolename="tomcat"/>
   <role rolename="admin"/>
   <role rolename="role1"/>
   <user username="sou" password="sou" roles="admin"/>
   <user username="role1" password="tomcat" roles="role1"/>
  </tomcat-users>
  
  【server.xml】

<Server port="8005" shutdown="SHUTDOWN" debug="0">

<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/>

<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>

<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved"></Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>

<!-- For MySql -->
<Resource name="jdbc/dragon" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/dragon">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://*.*.*.*/dragon</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>dragon</value>
</parameter>
<parameter>
<name>password</name>
<value>dragon</value>
</parameter>
</ResourceParams>

<!-- For Oracle10g -->
<Resource name="jdbc/career" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/career">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@*.*.*.*:1521:CAREER</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>system</value>
</parameter>
<parameter>
<name>password</name>
<value>system</value>
</parameter>
</ResourceParams>

<!-- For SqlServer2000 -->
<Resource name="jdbc/bizTest" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/bizTest">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://*.*.*.*:1433;DatabaseName=BusinessIssues</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
</ResourceParams>

<!-- For SqlServer2005 -->
<Resource name="viper" type="javax.sql.DataSource"/>
<ResourceParams name="viper">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:sqlserver://*.*.*.*:1433;DatabaseName=Viper</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
</ResourceParams>

</GlobalNamingResources>

<Service name="Catalina">
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />

<Connector port="8009"
enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" />

<Engine name="Catalina" defaultHost="localhost" debug="0">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/>

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/><Context path="/strutsapp" reloadable="true" docBase="C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\strutsapp" workDir="C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\strutsapp\work" />

</Host>
</Engine>
</Service>
</Server>

※SqlServer2000とSqlServer2005のJDBC設定方法が違う、要注意。
※JDBCドライバ:TOMCAT_HOME\common\libにコピーする
  SqlServer2000のJDBCドライバはmsbase.jar、mssqlserver.jar、msutil.jar
  SqlServer2005のJDBCドライバはsqljdbc.jar

conf\Catalina\localhostに【test.xml】を作成する
<Context displayName="test Project" docBase="test" path="/test" reloadable="true" workDir="work\Catalina\localhost\test">
<ResourceLink global="jdbc/dragon" name="jdbc/dragon" type="javax.sql.DataSource"/>
<ResourceLink global="jdbc/bizTest" name="jdbc/bizTest" type="javax.sql.DataSource"/>
<ResourceLink global="jdbc/career" name="jdbc/career" type="javax.sql.DataSource"/>
<ResourceLink global="jdbc/viper" name="jdbc/viper" type="javax.sql.DataSource"/>
</Context>


④開発したシステムはTOMCAT_HOME\webappsに置きましょう。

⑤ApacheとTomcatサービスを起動する。

⑥http://localhost/testで確認する。

以上。