Oct 23, 2002

             onlsbc1: Red Hat Linux 7.3システムでのJavaの実行
             ---  コンパクトフラッシュ上でのhello world実行#3
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               (http://www-online.kek.jp/~inoue/para-CAMAC/
                                   Work/SBC-Java2.html)



                        高エネルギー加速器研究機構
                            素粒子原子核研究所
                         物理、オンライングループ
                                井上 栄二

	目的

	    SBCのコンパクトフラッシュ上にインストールしたLinuxシステムは、容量に
	  よる制約からフルシステムではない。 一部のファイルしかインストール
	    されていないLinuxシステム上で、Java v1.4.1 が正常に動けるかどうかを
	    確認するために、JavaRMI、Hello Worldを実行してみる。


	(1). サンプルプログラムのコンパイル
	(2). RMI レジストリ、サーバ、およびアプレットの起動
	(3). サンプルプログラムの実行

  --------------------------------------------------------------------


 (1). サンプルプログラムのコンパイル

	現在の実行環境をチェックする。

   (1-1).  Javaのチェック
	
[inoue@onlsbc1 inoue]$ df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hdc1               483886    316801    142089  70% /
none                    152332         0    152332   0% /dev/shm
[inoue@onlsbc1 inoue]$ which java
/usr/java/bin/java
[inoue@onlsbc1 inoue]$ ls -lL /usr/java
合計 10419
-r--r--r--    1 root     root         4431  8月 29 19:14 COPYRIGHT
-r--r--r--    1 root     root        16994  8月 29 19:14 LICENSE
-r--r--r--    1 root     root         8729  8月 29 19:14 README
-r--r--r--    1 root     root        15639  8月 29 19:14 README.html
drwxr-xr-x    2 root     root         1024  8月 29 19:15 bin
drwxr-xr-x    6 root     root         1024  8月 29 19:14 demo
drwxr-xr-x    3 root     root         1024  8月 29 19:14 include
drwxr-xr-x    5 root     root         1024  8月 29 19:13 jre
drwxr-xr-x    2 root     root         1024  8月 29 19:14 lib
drwxr-xr-x    4 root     root         1024  8月 29 19:15 man
-rw-r--r--    1 root     root     10568947  8月 29 19:14 src.zip
[inoue@onlsbc1 inoue]$

[inoue@onlsbc1 inoue]$ java -version
java version "1.4.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
[inoue@onlsbc1 inoue]$

	/dev/hdc1 のコンパクトフラッシュ上にLinux システムが構築されており、
	Java は /usr/java下のディレクトリに配置されている。


   (1-2).  実行環境

[inoue@onlsbc1 inoue]$ env
PWD=/home/inoue
HOSTNAME=onlsbc1.kek.jp
LESSOPEN=|/usr/bin/lesspipe.sh %s
USER=inoue
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;0
1:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.b
tm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:
*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*
.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;3
5:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
MAIL=/var/spool/mail/inoue
OLDPWD=/home/inoue/Java
INPUTRC=/etc/inputrc
LANG=ja_JP.eucJP
SSH_CLIENT=130.87.153.2 3130 22
LOGNAME=inoue
SHLVL=1
SHELL=/bin/bash
HISTSIZE=1000
HOME=/home/inoue
TERM=vt100
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/inoue/bin:/usr/java/bin
JLESSCHARSET=japanese
SSH_TTY=/dev/pts/0
_=/usr/bin/env
[inoue@onlsbc1 inoue]$


   (1-3).  サーバ側の準備

        この実行で使用するソースコードは、以下のURLから入手した。
       http://java.sun.com/j2se/1.4.1/docs/guide/rmi/archives/getStart.tar
        パッケージ名は examples.hello、ソースディレクトリは
        ~/JavaRMI/getStart/examples/hello である。

[inoue@onlsbc1 JavaRMI]$ pwd
/home/inoue/JavaRMI
[inoue@onlsbc1 JavaRMI]$ ls -l
合計 14
-rw-r--r--    1 inoue    inoue       13312 10月 21 16:38 getStart.tar
[inoue@onlsbc1 JavaRMI]$ tar xf getStart.tar
[inoue@onlsbc1 JavaRMI]$ ls -l
合計 15
drwxr-xr-x    2 inoue    inoue        1024  1月 26  2002 getStart
-rw-r--r--    1 inoue    inoue       13312 10月 21 16:38 getStart.tar
[inoue@onlsbc1 JavaRMI]$ rm getStart.tar
[inoue@onlsbc1 JavaRMI]$ ls -lR
.:
合計 1
drwxr-xr-x    2 inoue    inoue        1024  1月 26  2002 getStart

./getStart:
合計 10
-rw-r--r--    1 inoue    inoue        1998  1月 26  2002 Hello.java
-rw-r--r--    1 inoue    inoue        2574  1月 26  2002 HelloApplet.java
-rw-r--r--    1 inoue    inoue        2779  1月 26  2002 HelloImpl.java
-rw-r--r--    1 inoue    inoue         245 10月  1  1998 hello.html
-rw-r--r--    1 inoue    inoue          81 10月  1  1998 policy
[inoue@onlsbc1 JavaRMI]$

	パッケージのディレクトリ構成に合わせるために、getStartディレクトリの下に
	examples/hello のディレクトリを作成し、上で展開した全ファイルをそこに
	配置する。 結果は以下のとうり。

[inoue@onlsbc1 hello]$ pwd
/home/inoue/JavaRMI/getStart/examples/hello
[inoue@onlsbc1 hello]$ ls -l
合計 10
-rw-r--r--    1 inoue    inoue        1998  1月 26  2002 Hello.java
-rw-r--r--    1 inoue    inoue        2574  1月 26  2002 HelloApplet.java
-rw-r--r--    1 inoue    inoue        2779  1月 26  2002 HelloImpl.java
-rw-r--r--    1 inoue    inoue         245 10月  1  1998 hello.html
-rw-r--r--    1 inoue    inoue          81 10月  1  1998 policy
[inoue@onlsbc1 hello]$

	手順としては、*.java ソースファイルをコンパイルして、.class ファイルを
	作成する。 その後、rmic コンパイラを実行してスタブとスケルトンを作成する
	ことになる。

	javac や rmic コンパイラを使うときは、生成されるクラスファイルをどの
	ディレクトリに置くかを指定しなければならない。 アプレットの場合には、
	すべてのファイルをアプレットのコードベースディレクトリに置く必要がある。
	この例では、コードベースディレクトリは、
		onlsbc1:$HOME/public_html/myclasses
	になる。


     (1-3-1).  ランタイムパスを設定する

[inoue@onlsbc1 inoue]$ export CLASSPATH=.:$HOME/public_html/myclasses:$HOME/Java
RMI/getStart/examples/hello
[inoue@onlsbc1 inoue]$ printenv CLASSPATH
.:/home/inoue/public_html/myclasses:/home/inoue/JavaRMI/getStart/examples/hello
[inoue@onlsbc1 inoue]$

[inoue@onlsbc1 inoue]$ mkdir -p public_html/myclasses
[inoue@onlsbc1 inoue]$ cd public_html/myclasses
[inoue@onlsbc1 myclasses]$ pwd
/home/inoue/public_html/myclasses
[inoue@onlsbc1 myclasses]$ ls -l
合計 0
[inoue@onlsbc1 myclasses]$


     (1-3-2).  ソースファイルをコンパイルする

[inoue@onlsbc1 hello]$ pwd
/home/inoue/JavaRMI/getStart/examples/hello
[inoue@onlsbc1 hello]$ ls -l
合計 10
-rw-r--r--    1 inoue    inoue        1998  1月 26  2002 Hello.java
-rw-r--r--    1 inoue    inoue        2574  1月 26  2002 HelloApplet.java
-rw-r--r--    1 inoue    inoue        2779  1月 26  2002 HelloImpl.java
-rw-r--r--    1 inoue    inoue         245 10月  1  1998 hello.html
-rw-r--r--    1 inoue    inoue          81 10月  1  1998 policy
[inoue@onlsbc1 hello]$
[inoue@onlsbc1 hello]$ cat Hello.java
/*
 * Copyright 2002 Sun Microsystems, Inc. All  Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * -Redistributions of source code must retain the above copyright
 *  notice, this list of conditions and the following disclaimer.
 *
 * -Redistribution in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in
 *  the documentation and/or other materials provided with the
 *  distribution.
 *
 * Neither the name of Sun Microsystems, Inc. or the names of
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.
 *
 * This software is provided "AS IS," without a warranty of any
 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
 * DAMAGES OR LIABILITIES  SUFFERED BY LICENSEE AS A RESULT OF OR
 * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR
 * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE
 * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
 * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
 * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF
 * THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * You acknowledge that Software is not designed, licensed or
 * intended for use in the design, construction, operation or
 * maintenance of any nuclear facility.
 */

package examples.hello;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Hello extends Remote {
    String sayHello() throws RemoteException;
}
[inoue@onlsbc1 hello]$

[inoue@onlsbc1 hello]$ cat HelloApplet.java
/*
 * Copyright 2002 Sun Microsystems, Inc. All  Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * -Redistributions of source code must retain the above copyright
 *  notice, this list of conditions and the following disclaimer.
 *
 * -Redistribution in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in
 *  the documentation and/or other materials provided with the
 *  distribution.
 *
 * Neither the name of Sun Microsystems, Inc. or the names of
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.
 *
 * This software is provided "AS IS," without a warranty of any
 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
 * DAMAGES OR LIABILITIES  SUFFERED BY LICENSEE AS A RESULT OF OR
 * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR
 * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE
 * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
 * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
 * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF
 * THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * You acknowledge that Software is not designed, licensed or
 * intended for use in the design, construction, operation or
 * maintenance of any nuclear facility.
 */

package examples.hello;

import java.applet.Applet;
import java.awt.Graphics;
import java.rmi.Naming;
import java.rmi.RemoteException;

public class HelloApplet extends Applet {

    String message = "blank";

    // "obj" is the identifier that we'll use to refer
    // to the remote object that implements the "Hello"
    // interface
    Hello obj = null;

    public void init() {
        try {
            obj = (Hello)Naming.lookup("//" +
                         getCodeBase().getHost() + "/HelloServer");
            message = obj.sayHello();
        } catch (Exception e) {
            System.out.println("HelloApplet exception: " +
                                    e.getMessage());
            e.printStackTrace();
        }
    }

    public void paint(Graphics g) {
        g.drawString(message, 25, 50);
    }
}
[inoue@onlsbc1 hello]$

[inoue@onlsbc1 hello]$ cat HelloImpl.java
/*
 * Copyright 2002 Sun Microsystems, Inc. All  Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the following
 * conditions are met:
 *
 * -Redistributions of source code must retain the above copyright
 *  notice, this list of conditions and the following disclaimer.
 *
 * -Redistribution in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in
 *  the documentation and/or other materials provided with the
 *  distribution.
 *
 * Neither the name of Sun Microsystems, Inc. or the names of
 * contributors may be used to endorse or promote products derived
 * from this software without specific prior written permission.
 *
 * This software is provided "AS IS," without a warranty of any
 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
 * DAMAGES OR LIABILITIES  SUFFERED BY LICENSEE AS A RESULT OF OR
 * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR
 * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE
 * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
 * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
 * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF
 * THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 *
 * You acknowledge that Software is not designed, licensed or
 * intended for use in the design, construction, operation or
 * maintenance of any nuclear facility.
 */

package examples.hello;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;

public class HelloImpl extends UnicastRemoteObject
    implements Hello {

    public HelloImpl() throws RemoteException {
        super();
    }

    public String sayHello() {
        return  "Hello World!";
    }

    public static void main(String args[]) {

        // Create and install a security manager
        if (System.getSecurityManager() == null) {
            System.setSecurityManager(new RMISecurityManager());
        }
        try {
            HelloImpl obj = new HelloImpl();
            // Bind this object instance to the name "HelloServer"
            Naming.rebind("HelloServer", obj);
            System.out.println("HelloServer bound in registry");
        } catch (Exception e) {
            System.out.println("HelloImpl err: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
[inoue@onlsbc1 hello]$

[inoue@onlsbc1 hello]$ cat hello.html

<HTML>
<title>Hello World</title>
<center> <h1>Hello World</h1> </center>

The message from the HelloServer is:
<p>
<applet codebase="myclasses/"
        code="examples.hello.HelloApplet"
        width=500 height=120>
</applet>
</HTML>
[inoue@onlsbc1 hello]$

[inoue@onlsbc1 hello]$ javac -d $HOME/public_html/myclasses Hello.java HelloImpl
.java HelloApplet.java
[inoue@onlsbc1 hello]$

[inoue@onlsbc1 hello]$ ls -lR $HOME/public_html/myclasses
/home/inoue/public_html/myclasses:
合計 1
drwxrwxr-x    3 inoue    inoue        1024 10月 22 13:38 examples

/home/inoue/public_html/myclasses/examples:
合計 1
drwxrwxr-x    2 inoue    inoue        1024 10月 22 13:38 hello

/home/inoue/public_html/myclasses/examples/hello:
合計 5
-rw-rw-r--    1 inoue    inoue         224 10月 22 13:38 Hello.class
-rw-rw-r--    1 inoue    inoue        1284 10月 22 13:38 HelloApplet.class
-rw-rw-r--    1 inoue    inoue        1247 10月 22 13:38 HelloImpl.class
[inoue@onlsbc1 hello]$


     (1-3-3).  rmic を使ってスタブおよびスケルトンを生成する

[inoue@onlsbc1 hello]$ pwd
/home/inoue/JavaRMI/getStart/examples/hello
[inoue@onlsbc1 hello]$ ls -l
合計 10
-rw-r--r--    1 inoue    inoue        1998  1月 26  2002 Hello.java
-rw-r--r--    1 inoue    inoue        2574  1月 26  2002 HelloApplet.java
-rw-r--r--    1 inoue    inoue        2779  1月 26  2002 HelloImpl.java
-rw-r--r--    1 inoue    inoue         245 10月  1  1998 hello.html
-rw-r--r--    1 inoue    inoue          81 10月  1  1998 policy
[inoue@onlsbc1 hello]$ rmic -d $HOME/public_html/myclasses examples.hello.HelloI
mpl
[inoue@onlsbc1 hello]$

[inoue@onlsbc1 hello]$ ls -lR $HOME/public_html/myclasses
/home/inoue/public_html/myclasses:
合計 1
drwxrwxr-x    3 inoue    inoue        1024 10月 22 13:38 examples

/home/inoue/public_html/myclasses/examples:
合計 1
drwxrwxr-x    2 inoue    inoue        1024 10月 22 13:46 hello

/home/inoue/public_html/myclasses/examples/hello:
合計 10
-rw-rw-r--    1 inoue    inoue         224 10月 22 13:38 Hello.class
-rw-rw-r--    1 inoue    inoue        1284 10月 22 13:38 HelloApplet.class
-rw-rw-r--    1 inoue    inoue        1247 10月 22 13:38 HelloImpl.class
-rw-rw-r--    1 inoue    inoue        1448 10月 22 13:46 HelloImpl_Skel.class
-rw-rw-r--    1 inoue    inoue        2920 10月 22 13:46 HelloImpl_Stub.class
[inoue@onlsbc1 hello]$


     (1-3-4).  HTML ファイルを配置ディレクトリに移す

[inoue@onlsbc1 hello]$ pwd
/home/inoue/JavaRMI/getStart/examples/hello
[inoue@onlsbc1 hello]$ ls -l
合計 10
-rw-r--r--    1 inoue    inoue        1998  1月 26  2002 Hello.java
-rw-r--r--    1 inoue    inoue        2574  1月 26  2002 HelloApplet.java
-rw-r--r--    1 inoue    inoue        2779  1月 26  2002 HelloImpl.java
-rw-r--r--    1 inoue    inoue         245 10月  1  1998 hello.html
-rw-r--r--    1 inoue    inoue          81 10月  1  1998 policy
[inoue@onlsbc1 hello]$ cp hello.html $HOME/public_html
[inoue@onlsbc1 hello]$ ls -l $HOME/public_html/hello.html
-rw-r--r--    1 inoue    inoue         245 10月 22 13:49 /home/inoue/public_html
/hello.html
[inoue@onlsbc1 hello]$


 (2). RMI レジストリ、サーバの起動

   (2-1).  Apache Webサーバを起動

	Apache Webサーバの設定ファイルは /etc/httpdディレクトリ下に配置されて
	いる。 この設定ファイルの再構築および apache実行時に必要とされる関連
	ディレクトリやファイルは /var/www/htmlディレクトリ下に配置される。
	Apache設定ファイルの再構築は、apacheconfコマンドを実行することで行う。
	apacheconfコマンドは rootの権限で X Window System の下で実行する。


     (2-1-1).  apacheconf のチェック

[inoue@onlsbc1 hello]$ which apacheconf
/usr/bin/which: no apacheconf in (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/u
sr/java/bin:/home/inoue/bin)
[inoue@onlsbc1 hello]$

	コンパクトフラッシュ上のLinuxシステムには、Xをインストールしていないので
	apacheconf を利用できない。 手動で apacheの設定をする必要がある。 conf
	ファイルの設定を全く最初から整備するのも大変なのでその方法はとらない。
	以前、onlsbc1の2.5"ハードディスク上に構成した apacheの confファイルを
	ベースにし、必要ならばファイルの内容を修正して構築することにする。 
	したがって、ここで一旦、コンパクトフラッシュ上のLinuxシステムをシャット
	ダウンし、2.5"ハードディスクのシステムを立ち上げて作業を行う。

[root@onlsbc1 conf]# /sbin/shutdown -h now

Broadcast message from root (pts/0) (Tue Oct 22 15:26:32 2002):

The system is going down for system halt NOW!
[root@onlsbc1 conf]#


     (2-1-2).  2.5"ハードディスクシステム上のコンフィグレーション設定をチェック

	チェック1: 2.5"ハードディスクシステムの /etc/httpd

[root@onlsbc1 httpd]# pwd
/etc/httpd
[root@onlsbc1 httpd]# ls -lR
.:
合計 4
drwxr-xr-x    7 root     root         4096  9月 18 10:24 conf
lrwxrwxrwx    1 root     root           19  9月 18 10:17 logs -> ../../var/log/h
ttpd
lrwxrwxrwx    1 root     root           21  9月 18 10:17 modules -> ../..//usr/l
ib/apache

./conf:
合計 100
lrwxrwxrwx    1 root     root           37  9月 18 10:24 Makefile -> ../../../us
r/share/ssl/certs/Makefile
-rw-r--r--    1 root     root          285  6月 20 00:55 access.conf
-rw-r--r--    1 root     root        51270  6月 20 00:55 httpd.conf
-rw-r--r--    1 root     root        12441  6月 20 00:55 magic
-rw-r--r--    1 root     root          297  6月 20 00:55 srm.conf
drwx------    2 root     root         4096  9月 18 10:24 ssl.crl
drwx------    2 root     root         4096  9月 18 10:24 ssl.crt
drwx------    2 root     root         4096  7月  2 05:43 ssl.csr
drwx------    2 root     root         4096  9月 18 10:24 ssl.key
drwx------    2 root     root         4096  9月 18 10:24 ssl.prm

./conf/ssl.crl:
合計 4
-rw-r--r--    1 root     root         1569  7月  2 05:43 Makefile.crl

./conf/ssl.crt:
合計 268
-rw-r--r--    1 root     root         1522  7月  2 05:43 Makefile.crt
-rw-r--r--    1 root     root       242153  7月  2 05:43 ca-bundle.crt
-rw-------    1 root     root         1464  8月 21 03:39 server.crt
-rw-r--r--    1 root     root         1472  7月  2 05:43 snakeoil-ca-dsa.crt
-rw-r--r--    1 root     root         1192  7月  2 05:43 snakeoil-ca-rsa.crt
-rw-r--r--    1 root     root         1452  7月  2 05:43 snakeoil-dsa.crt
-rw-r--r--    1 root     root         1176  7月  2 05:43 snakeoil-rsa.crt

./conf/ssl.csr:
合計 0

./conf/ssl.key:
合計 20
-rw-------    1 root     root          887  8月 21 03:39 server.key
-rw-------    1 root     root          668  7月  2 05:43 snakeoil-ca-dsa.key
-rw-------    1 root     root          887  7月  2 05:43 snakeoil-ca-rsa.key
-rw-------    1 root     root          668  7月  2 05:43 snakeoil-dsa.key
-rw-------    1 root     root          891  7月  2 05:43 snakeoil-rsa.key

./conf/ssl.prm:
合計 8
-rw-r--r--    1 root     root          455  7月  2 05:43 snakeoil-ca-dsa.prm
-rw-r--r--    1 root     root          455  7月  2 05:43 snakeoil-dsa.prm
[root@onlsbc1 httpd]#

	チェック2: コンパクトフラッシュシステムの /etc/httpd

[root@onlsbc1 httpd]# pwd
/mnt1/etc/httpd
[root@onlsbc1 httpd]# ls -lR
.:
合計 1
drwxr-xr-x    2 root     root         1024 10月 22 14:56 conf
lrwxrwxrwx    1 root     root           19 10月 17 23:27 logs -> ../../var/log/h
ttpd
lrwxrwxrwx    1 root     root           21 10月 17 23:27 modules -> ../..//usr/l
ib/apache

./conf:
合計 68
-rw-r--r--    1 root     root          285  4月 10  2002 access.conf
-rw-r--r--    1 root     root        51270  4月 10  2002 httpd.conf
-rw-r--r--    1 root     root        12441  4月 10  2002 magic
-rw-r--r--    1 root     root          297  4月 10  2002 srm.conf
[root@onlsbc1 httpd]#

	/etc/httpd/conf 下のファイルをチェックする。

[root@onlsbc1 conf]# pwd
/mnt1/etc/httpd/conf
[root@onlsbc1 conf]# ls -l
合計 68
-rw-r--r--    1 root     root          285  4月 10  2002 access.conf
-rw-r--r--    1 root     root        51270  4月 10  2002 httpd.conf
-rw-r--r--    1 root     root        12441  4月 10  2002 magic
-rw-r--r--    1 root     root          297  4月 10  2002 srm.conf
[root@onlsbc1 conf]# diff httpd.conf /etc/httpd/conf/httpd.conf
[root@onlsbc1 conf]# diff magic /etc/httpd/conf/magic
[root@onlsbc1 conf]# diff access.conf /etc/httpd/conf/access.conf
[root@onlsbc1 conf]# diff srm.conf /etc/httpd/conf/srm.conf
[root@onlsbc1 conf]#

	/etc/httpd/conf 下のファイルの内容は、2.5"ハードディスク上のLinuxシステ
	ムとコンパクトフラッシュ上のLinuxシステムの場合とで違いは無い。 つまり
	2.5"ハードディスク上のLinuxシステムにおいても apacheconf による再構築で
	変更するようなことはしていないということになる。 コンパクトフラッシュ上
	のLinuxシステムも変更は行わないでこのままにしておく。

	チェック1: 2.5"ハードディスクシステムの /var/www

[root@onlsbc1 www]# pwd
/var/www
[root@onlsbc1 www]# ls -l
合計 12
drwxr-xr-x    2 root     root         4096  6月 20 00:55 cgi-bin
drwxr-xr-x    5 root     root         4096  9月 18 10:17 html
drwxr-xr-x    3 root     root         4096  9月 18 10:17 icons
[root@onlsbc1 www]# ls -l html
合計 20
-rw-r--r--    1 root     root         2890  6月 20 00:55 index.html
drwxr-xr-x    3 root     root         4096  8月 21 03:39 manual
drwxr-xr-x    2 root     root         4096  8月 21 03:39 mrtg
-rw-r--r--    1 root     root         1154  6月 20 00:55 poweredby.png
drwxr-xr-x    2 root     root         4096  8月 21 03:40 usage
[root@onlsbc1 www]# 

	チェック2: コンパクトフラッシュシステムの /mnt1/var/www

[root@onlsbc1 www]# pwd
/mnt1/var/www
[root@onlsbc1 www]# ls -l
合計 5
drwxr-xr-x    2 root     root         1024  4月 10  2002 cgi-bin
drwxr-xr-x    2 root     root         1024 10月 17 23:27 html
drwxr-xr-x    3 root     root         3072 10月 17 23:27 icons
[root@onlsbc1 www]# ls -l html
合計 5
-rw-r--r--    1 root     root         2890  4月 10  2002 index.html
-rw-r--r--    1 root     root         1154  4月 10  2002 poweredby.png
[root@onlsbc1 www]#

	コンパクトフラッシュシステムでも、www で必要なファイルはインストール時に
	すでに配置されている。


     (2-1-3).  コンパクトフラッシュ上に Apache設定を構成

	コンパクトフラッシュ上にLinuxシステムシステムをインストールした時に設定
	された標準設定のままで Apacheを起動する。


     (2-1-4).  コンパクトフラッシュ上のApache Webサーバを起動

[root@onlsbc1 inoue]# /sbin/service httpd start
httpdを起動中:                                             [  OK  ]
[root@onlsbc1 inoue]#
[root@onlsbc1 inoue]# ps -ef | grep httpd
root      1139     1  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1142  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1143  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1144  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1145  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1146  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1147  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1148  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1149  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
root      1152  1093  0 10:27 pts/0    00:00:00 grep httpd
[root@onlsbc1 inoue]#

	ok.  正常に起動できた。


     (2-1-5).  ユーザディレクトリの設定

	Red Hat Linux 7.3 の標準では、ユーザのホームディレクトリのパーミッション
	は、ユーザのみが読み書きおよび実行可能になっている。 これでは、ユーザ
	ディレクトリ下の public_htmlディレクトリーに webブラウザでアクセスした
	時にアクセス権がないと言われてしまう。 グループ、アザーズに読み出し、
	実行のパーミッションを付ける。

[inoue@onlsbc1 home]$ pwd
/home
[inoue@onlsbc1 home]$ ls -l
合計 2
drwx------    6 inoue    inoue        1024 10月 23 10:39 inoue
drwx------    2 yasu     yasu         1024 10月 17 23:30 yasu
[inoue@onlsbc1 home]$ chmod go+rx inoue
[inoue@onlsbc1 home]$ ls -l
合計 2
drwxr-xr-x    6 inoue    inoue        1024 10月 23 10:39 inoue
drwx------    2 yasu     yasu         1024 10月 17 23:30 yasu
[inoue@onlsbc1 home]$


     (2-1-6).  rmiregistry の起動

	rmiregistry を起動する。

[inoue@onlsbc1 getStart]$ pwd
/home/inoue/JavaRMI/getStart
[inoue@onlsbc1 getStart]$ rmiregistry &
[1] 1163
[inoue@onlsbc1 getStart]$ 
[inoue@onlsbc1 getStart]$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 10:17 ?        00:00:04 init
root         2     1  0 10:17 ?        00:00:00 [keventd]
root         3     1  0 10:17 ?        00:00:00 [kapmd]
root         4     1  0 10:17 ?        00:00:00 [ksoftirqd_CPU0]
root         5     1  0 10:17 ?        00:00:00 [kswapd]
root         6     1  0 10:17 ?        00:00:00 [bdflush]
root         7     1  0 10:17 ?        00:00:00 [kupdated]
root         8     1  0 10:17 ?        00:00:00 [mdrecoveryd]
root        12     1  0 10:17 ?        00:00:00 [kjournald]
root        83     1  0 10:17 ?        00:00:00 [khubd]
root       637     1  0 10:18 ?        00:00:00 syslogd -m 0
root       642     1  0 10:18 ?        00:00:00 klogd -x
rpc        657     1  0 10:18 ?        00:00:00 portmap
root       743     1  0 10:18 ?        00:00:00 /usr/sbin/apmd -p 10 -w 5 -W -P
root       757     1  0 10:18 ?        00:00:01 /usr/sbin/sshd
root       778     1  0 10:18 ?        00:00:00 gpm -t ps/2 -m /dev/mouse
bin        791     1  0 10:18 ?        00:00:00 cannaserver -syslog -u bin -inet
root       803     1  0 10:18 ?        00:00:00 crond
daemon     827     1  0 10:18 ?        00:00:00 /usr/sbin/atd
root       834     1  0 10:18 ?        00:00:00 login -- inoue
root       835     1  0 10:18 tty2     00:00:00 /sbin/mingetty tty2
root       836     1  0 10:18 tty3     00:00:00 /sbin/mingetty tty3
root       837     1  0 10:18 tty4     00:00:00 /sbin/mingetty tty4
root       838     1  0 10:18 tty5     00:00:00 /sbin/mingetty tty5
root       839     1  0 10:18 tty6     00:00:00 /sbin/mingetty tty6
inoue      842   834  0 10:19 tty1     00:00:00 -bash
root       877   842  0 10:19 tty1     00:00:00 kon
inoue      881   877  0 10:19 ttyp0    00:00:00 -bash
root      1025   757  0 10:24 ?        00:00:00 /usr/sbin/sshd
inoue     1026  1025  0 10:24 pts/0    00:00:00 -bash
root      1139     1  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1142  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1143  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1144  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1145  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1146  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1147  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1148  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
apache    1149  1139  0 10:26 ?        00:00:00 /usr/sbin/httpd -DHAVE_ACCESS -D
inoue     1163  1026 20 10:49 pts/0    00:00:06 rmiregistry
inoue     1164  1163  0 10:49 pts/0    00:00:00 rmiregistry
inoue     1165  1164  1 10:49 pts/0    00:00:00 rmiregistry
inoue     1166  1164  0 10:49 pts/0    00:00:00 rmiregistry
inoue     1167  1164  0 10:49 pts/0    00:00:00 rmiregistry
inoue     1168  1164  0 10:49 pts/0    00:00:00 rmiregistry
inoue     1169  1164  0 10:49 pts/0    00:00:00 rmiregistry
inoue     1170  1164  0 10:49 pts/0    00:00:00 rmiregistry
inoue     1171  1164 14 10:49 pts/0    00:00:03 rmiregistry
inoue     1173  1164  0 10:49 pts/0    00:00:00 rmiregistry
inoue     1174  1164  0 10:49 pts/0    00:00:00 rmiregistry
inoue     1175  1026  0 10:49 pts/0    00:00:00 ps -ef
[inoue@onlsbc1 getStart]$

	ok.  正常に起動できた。


     (4-1-3).  サーバ の起動

	サーバを起動する

[inoue@onlsbc1 getStart]$ ls -lR ~/public_html
/home/inoue/public_html:
合計 2
-rw-r--r--    1 inoue    inoue         245 10月 22 13:49 hello.html
drwxrwxr-x    3 inoue    inoue        1024 10月 22 13:38 myclasses

/home/inoue/public_html/myclasses:
合計 1
drwxrwxr-x    3 inoue    inoue        1024 10月 22 13:38 examples

/home/inoue/public_html/myclasses/examples:
合計 1
drwxrwxr-x    2 inoue    inoue        1024 10月 22 13:46 hello

/home/inoue/public_html/myclasses/examples/hello:
合計 10
-rw-rw-r--    1 inoue    inoue         224 10月 22 13:38 Hello.class
-rw-rw-r--    1 inoue    inoue        1284 10月 22 13:38 HelloApplet.class
-rw-rw-r--    1 inoue    inoue        1247 10月 22 13:38 HelloImpl.class
-rw-rw-r--    1 inoue    inoue        1448 10月 22 13:46 HelloImpl_Skel.class
-rw-rw-r--    1 inoue    inoue        2920 10月 22 13:46 HelloImpl_Stub.class
[inoue@onlsbc1 getStart]$

[inoue@onlsbc1 getStart]$ java -Djava.rmi.server.codebase=http://onlsbc1.kek.jp/
~inoue/myclasses/ -Djava.security.policy=$HOME/JavaRMI/getStart/examples/hello/p
olicy examples.hello.HelloImpl
HelloServer bound in registry


 (3). サーバのへのアクセス

   (3-1).  webブラウザ、IEを使ってサーバにアクセスした場合の実行結果

	onlnote2.kek.jp のマシンから IE6.0を使ってサーバにアクセスする。

	Webブラウザ、IEで "http://onlsbc1.kek.jp/~inoue/hello.html" に
        アクセスすると、"Hello World!"と表示される。


   (3-2).  appletviewerを使ってサーバにアクセスした場合の実行結果

	onlpara.kek.jp のマシンから appletviewerを使ってサーバにアクセスする。

[inoue@onlpara inoue]$ pwd
/home/inoue
[inoue@onlpara inoue]$ which appletviewer
/usr/java/bin/appletviewer
[inoue@onlpara inoue]$ 

[inoue@onlpara inoue]$ export DISPLAY=onlsun2:0
[inoue@onlpara inoue]$ appletviewer http://onlsbc1.kek.jp/~inoue/hello.html

Warning: Cannot convert string "-watanabe-mincho-medium-r-normal--*-140-*-*-c-*-jisx0208.1983-0" to type FontStruct
2002/10/23 14:43:12 java.util.prefs.FileSystemPreferences$3 run
警告: Could not create system preferences directory. System preferences are unusable.

	ok.  正常に実行できた。
	appletviewerで "http://onlsbc1.kek.jp/~inoue/hello.html" にアクセスする
	と、"Hello World" と表示される。



---xxxx