|
インストールに関して
javaのインストール
http://java.sun.com/j2se/1.5.0/ja/download.htmlからダウンロードするのですが、プラットフォームの違い、CPUの種類など、自分の環境にあったjdkをdownloadしてください。
ちなみに、私の場合には自己解凍バイナリファイル
jdk-1_5_0_09-linux-i586.bin
です。downloadするときにはライセンス規約への同意が必要ですのでyesで進みます。
また、RPMパッケージも用意されています。installの方法に付いても詳しく説明されているのでそちらを参考。
以下の説明では、自己解凍バイナリファイルに於いての説明です。
また、Linuxではgccがjavaをサポートしていてjava programをコンパイル出来る。
詳しくは
$ man gcj
ちなみに、classを生成するときのコマンドは
$ gcj -C ****.java
Linuxに於いてjdkが必要不可欠なのか今のところ正確には分らない。
tomcatのinstall
http://tomcat.apache.org/のページからDownLoad Tomcat 5.xのページへ進み、Binary DistributionsのCoreから
apache-tomcat-5.5.20.tar.gz
をdownloadする。
installする場所に付いて
各自の思うままにinstallすれば良い。参考までに。
今後のVersionUpに備えて
# mkdir /opt
# mkdir /opt/original
installしたjdkとtomcatとをoriginalディレクトリにinstallし、
# ln -s /opt/original/jdk-1_5_0_09 /opt/jdk
# ln -s /opt/original/apache-tomcat-5.5.20 /opt/tomcat
と、リンクを張りあとは環境パスを設定する。
# emacs /etc/profile &
# JAVA & JDK
export JAVA_HOME=/opt/jdk
export CATALINA_HOME=/opt/tomcat
export CLASSPATH=.:
$CATALINA_HOME/common/lib/servlet-api.jar:
$CATALINA_HOME/common/lib/jsp-api.jar:
$CATALINA_HOME/common/lib/utilities.jar:
$CATALINA_HOME/webapps/(examples)/WEB-INF/classes:
export CLASSPATH=.: の部分は、実際は一行で記述する。
|
# PATH <- 他の bin directoryに同じコマンドがあるかも知れないので注意
# 以下の環境変数は好みにより削除しても問題ない。
export PATH=${PATH}:${CATALINA_HOME}/bin:${JAVA_HOME}}/bin
# ここは必要
# source /etc/profile
#
tomcatの確認
# ${CATALINA_HOME}/bin/startup.sh
PATHを通している場合には
# startup.sh
以下のURLから確認
http://localhost:8080/
表示されれば、一安心!
後は、apacheとtomcatとの連携
apacheとtomcatが会話するには、mod_jkかmod_jk2が必要。
# yum install mod_jk
FedoraCore6ではmod_jkが見付からなかったので、source fileからInstallする。
http://tomcat.apache.org/ より
Tomcat ConnectorsのDownLoadよりtomcat-connectors-1.2.25-src.tar.gzを。
$ tar xfvz tomcat-connectors-1.2.25-src.tar.gz
$ cd tomcat-connectors-1.2.25-src/native
$ find /usr -name apxs
/usr/sbin/apxs
apxsが見当たらない場合はhttpd-develがinstallされていない場合がある。
$ yum install httpd-devel
$ ./configure --with-apxs=/usr/sbin/apxs
$ make <---(失礼! ./は必要ありませんでした:2008/03/09)
# su
# cp apache-2.0/mod_jk.so /etc/httpd/modules
mod_jk Install後、workers.propertiesを、/etc/httpd/conf.d/にコピーする。
DownLoadしたsource file内のconf Directoryにworkers.propertiesがあるか...以下はyumでInstall できた場合。
# cp /usr/share/doc/mod_jk-ap20-1.2.8/mod_jk.conf.sample /etc/httpd/conf.d/mod_jk.conf
# cp /usr/share/doc/mod_jk-ap20-1.2.8/workers.properties.sample \
/opt/original/apache-tomcat-5.5.20/conf/workers.properties
と、コピーした後Fileを修正する。
# editor /opt/original/apache-tomcat-5.5.20/conf/workers.properties
# OPTIONS ( very important for jni mode )
#
# workers.tomcat_home should point to the location where you
# installed tomcat. This is where you have your conf, webapps and lib
# directories.
#
workers.tomcat_home=/opt/tomcat <--設定した内容にあわせる。
#
# workers.java_home should point to your Java installation. Normally
# you should have a bin and lib directories beneath it.
#
workers.java_home=/opt/jdk <--設定した内容にあわせる。
#
# You should configure your environment slash... ps=\ on NT and / on UNIX
# and maybe something different elsewhere.
#
ps=/
#
# 以下は、ajp13を使用するのでその部分はコメントにしない
#
|
# editor /etc/httpd/conf.d/mod_jk.conf
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /opt/tomcat/conf/workers.properties <-- リンクを張った場所
JkLogFile logs/mod_jk.log
JkLogLevel info
JkShmFile logs/jk-runtime-status
#
# Root context mounts for Tomcat
#
#JkMount /*.jsp ajp13
JkMount /(examples)/* ajp13
(examples)の部分は、${CATALINA_HOME}/webapps内の任意のディレクトリ
Directoryの設定で、Order deny,allow, deny from allが無くても404を返してくる。はっきりした時点で修正する!
<Directory "/*/WEB-INF/*">
AllowOverride None
Order deny,allow
deny from all
</Directory>
<Directory "/*/META-INF/*">
AllowOverride None
Order deny,allow
deny from all
</Directory>
#
# 以下の部分は httpd.confのaliasなどの設定と同じなので各自で直す。
# 私の場合には手をつけなかった。
#
|
/opt/tomcat/conf/server.xml の修正
# emacs ${CATALINA_HOME}/conf/server.xml
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
|
最終確認
# ${CATALINA_HOME}/bin/shutdown.sh
# ${CATALINA_HOME}/bin/startup.sh
http://localhost/(examples)/
https://localhost/(examples)/
で、確認できる。
cgiの使用(apache-tomcat-5.5.23)
tomcatでcgiを使用する
ここの内容は試験的に行なったものです。
# cd ${CATALINA_HOME}/server/lib
# mv servlets-cgi.renametojar servlets-cgi.jar
# cd ${CATALINA_HOME}/webapps/{example}/WEB-INF
# mkdir cgi
|
${CATALINA_HOME}/conf/web.xmlを変更するか、webapps以下のディレクトリ内のweb.xmlを変更するかのどちらかですが、前者はwebapps以下のすべてのディレクトリ内に働き、後者はwebapps以下の一つのディレクトリ内だけに働きます。どちらの web.xmlを修正するかはご自由に。
# editor web.xml
<!-- Servlet Declaration -->
<servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
<!-- Servlet Mapping -->
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
|
${CATALINA_HOME}/conf/web.xmlを修正するときはコメントを外すだけです。また、webapps内のweb.xmlを修正するときは、${CATALINA_HOME}/conf/web.xmlのcgiの部分をコピーペーストしました。
後は、先ほど作ったディレクトリでcgi(default: perl)が働きます。これで終了なのですが、このままですと、
http://localhost:8080/{example}/cgi-bin/bbs.cgi
で表示できますが、mod_jkを利用している場合には、
http://localhost/{example}/cgi-bin/bbs.cgi
で表示できない場合があります。
これはいままでapacheを使用しcgiも使用していた場合で、
/etc/httpd/conf/httpd.conf の以下をコメントにしなければなりません。
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#AddHandler cgi-script .cgi
|
以上で、
http://localhost/{example}/cgi-bin/bbs.cgi
で表示できるようになりました。
シンボリック・リンクの使用(apache-tomcat-5.5.23)
シンボリックを有効にする
$ emacs ${CATALINA_HOME}/conf/context.xml
<!-- The contents of this file will be loaded for each web application -->
<Context allowLinking="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml<!/WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
</Context>
|
Virtual Host(Solaris上での実験)
/etc/hosts の内容(一部分)
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost heike genji
::1 localhost.localdomain localhost
VirtualNameがチョッとダサいですが。Solarisでは再起動する毎のhostsが書き換えら
れるので、127.0.0.1の部分にVirtualName(平家・源氏)を加えた。
|
httpd.conf の内容(一部分)
#Listen 12.34.56.78:80
Listen 80
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Include conf/mod_jk.conf
#ServerName www.example.com:80
ServerName 192.168.1.77
VirtualNameの設定はmod_jk.conf内で行ったので、httpd.conf内のVirtualNameの設定
はすべてコメントにしてある。
|
mod_jk.conf の内容(一部分)
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /export/tomcat/conf/workers.properties
JkShmFile logs/jk-runtime-status
JkLogFile logs/mod_jk.log
JkLogLevel info
#
# Deny direct access to WEB-INF and META-INF
#
<Location "/*/META-INF/*">
Order deny,allow
deny from all
</Location>
<Location "/*/WEB-INF/*">
Order deny,allow
deny from all
</Location>
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /export/tomcat/webapps/heike
ServerName heike
JkMount /* ajp13
JkMount /*.jsp ajp13
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /export/tomcat/webapps/genji
ServerName genji<
JkMount /* ajp13
JkMount /*.jsp ajp13
</VirtualHost>
|
server.xmlの内容(一部分)
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- Defines a cluster for this node,
---------- 略 ---------
---------- 略 ---------
---------- 略 ---------
pattern="common" resolveHosts="false"/>
-->
</Host>
<Host name="heike" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/export/tomcat/webapps/heike"
debug="0" reload="true" />
</Host>
<Host name="genji" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/export/tomcat/webapps/genji"
debug="0" reload="true" />
</Host>
|
後は、httpdとCatarinaを再起動してプラウザから
http://heike/
http://genji/
で、表示されると思います。
うまく機能しない場合にはLogFileを検査してみて、以上で終りです。為になりましたでしょうか?
独り言・雑談
mysqlにConnection出来ない。and 文字化け
OS : FedoraCore 6
mysql : Version 5.0.27
apache-tomcat: Version 5.5.20 and 5.5.26
以上の条件で実験的に行った時の記録
なかなか、mysqlとConnection出来ず。そこで、検索でいろいろ調べたところ、aspectjrt-1.2.1.jarにブチ当たった。これをdownloadし、$CLASSPATHに設定し行うと確かにconnectionの確立が出来る。しかし、aspectjrt-1.2.1.jarはダメ!、必要ないとBBSに載っていたので、諦めることにした。......が、どう言う訳か$CLASSPATHから削除してもConnectionが確立できるようになっていた。不思議だが嬉しい! しかし、依然として文字化けが起こっている。文字化けは以下の手順で修正できた。ここまで、二日間かかった。疲れた。
# edit /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8 <--Add
[client]
default-character-set=utf8 <--Add
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
|
# /etc/init.d/mysqld restart
MySQL を停止中: [ OK ]
MySQL を起動中: [ OK ]
#
# mysql -u root -p(passwd)
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> exit
Bye
$ mysqladmin -u root -p CREATE sample
Enter password:
$ mysql -u root -p(passwd) sample < sample.sql
# ${CATALINA_HOME}/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /opt/jdk
#
|
|
|