English

How To: Install Apache 1.3.12 with JServ 1.1.2 and ArcIMS 3.0 on Solaris 2.7

Summary

Instructions provided describe install and test steps for Apache 1.3.12 Web server with JServ 1.1.2 and ArcIMS 3.0 on Solaris 2.7.

Procedure

  1. Acquire OS Software and install as necessary.
    a. Check to see if these required packages exist:
    # pkginfo SUNWarc
    system SUNWarc Archive Libraries
    # pkginfo SUNWbtool
    system SUNWbtool CCS tools bundled with SunOS
    # pkginfo SUNWi1of
    system SUNWi1of ISO-8859-1 (Latin-1) Optional Fonts
    # pkginfo SUNWsprot
    system SUNWsprot Solaris Bundled Tools

    If not, all of these packages are available on the Solaris OS
    Media CDs.

    b. Insert the Solaris 2.x Software CD and change directory to the
    product directory on the CD:
    # cd /cdrom/cdrom0/¡�/Product

    To add the necessary package(s):
    # pkgadd ¨Cd . SUNWsprot SUNWarc SUNWbtool SUNWi1of ¡�

    c. Security & Recommended patches for Solaris [2.6/2.7]
    To see what patches are loaded, type:
    # showrev ¨Cp

    Get patches and patch information at http://sunsolve.sun.com

    NOTE: Install the Solaris Java 2 patches after installing JRE
    and/or JDK.

    d. See if a C-compiler (either Sun or GNU 2.8.1 or 2.95.2) exists on
    the system:
    # which cc
    no cc in /usr/bin . /usr/sbin /bin
    # which gcc
    no gcc in /usr/bin . /usr/sbin /bin
    # pkginfo | grep ¨Ci compiler

    If there is no compiler, obtain a C-compiler and compiler
    information:
    ¡ñ SUN compiler licensed product purchased from SUN Microsoft
    ¡ñ GNU ¡°gcc¡± compiler available from http://www.gnu.org

    To Install C-compiler, if necessary:
    1. Expand .tar file of source code into working directory
    # tar xvf /source/gcc-2.95.2-sol7-sparc-local.tar

    2. Add SMCgcc package (as root).
    (pkgadd installs binaries into /usr/local/bin and other locations)
    # pkgadd -d gcc-2.95.2-sol7-sparc-local

    3. Add /usr/local/bin to the path, making sure that /usr/local/bin
    is before /usr/ccs/bin (if it exists in the path).
    # PATH=/usr/local/bin:$PATH;export PATH

    e. Install GNU Make utility [required]. See if the GNU Make
    utility is on the system:
    # which make
    # ls /usr/local/bin/make

    The GNU Make utility is available from http://www.gnu.org.

    To install the Make utility:
    1. Expand the GNU make-3.79.tar file:
    # tar xvf /source/make-3.79.tar
    x make-3.79, 0 bytes, 0 tape blocks
    x make-3.79/Makefile.in, 25784
    bytes, 51 tape blocks
    ....

    2. Change into the make-3.79 directory and read the INSTALL document.
    It is important to run the following commands: Create the Makefile

    It is important to do this using the gcc compiler located at:
    /usr/local/bin/gcc (from C-compiler previously described).
    Also, make sure the /usr/ccs/bin is in the path, and after
    /usr/local/bin).
    A Make utility is necessary. To make the
    GNU Make utility, use the Solaris /usr/ccs/bin/make.
    However, later, when the Apache software is compiled, the GNU Make
    utility needs to be used. Once the GNU Make utility is created
    and installed, the path causes all subsequent Make(s) to use
    the /usr/local/bin/make (GNU make). This should be noted.
    # ./configure

    3. "make" the GNU make file
    # ./make

    4. Install the GNU Make command
    # ./make install

    By default, Make and its associated files are installed under
    /usr/local.

  2. Install Java Development Environment
    a. Install either JDK or JRE: 
    ¡ñ Java Development Kit 1.2 (JDK1.2.2_05 or JDK1.2.2_05a)

    Install JDK from http://www.javasoft.com/products/jdk/1.2.
    Expand the .tar file to a logical destination directory (e.g.,
    /usr/local, or /opt). The notes explain that JAVA_HOME environment
    variable needs to be set to the JRE destination directory so that
    this can be utilized.
    # cd /usr/local
    # tar xvf /source/jdk1.2.tar

    ¡ñ Java Runtime Environment 1.2 (JRE 1.2.2_05 or JRE 1.2.2_05a)
    Install JRE by executing the Solaris_JRE_1.2.2_05_sparc.bin
    script on the ArcIMS CD:
    # ./cdrom/cdrom0/Solaris_JRE_1.2.2_05_sparc.bin

    b. Java Required patches for Solaris [2.6/2.7]
    To see what patches are loaded:
    # showrev ¨Cp

    Get patches and patch information for Java at http://java.sun.com.

  3. Create user account and working directories
    a. Add Solaris user (as root) with admintool or with the following command:
    # groupadd ¨Cg <gid> group
    # useradd -u <uid> -g <gid> -d <directory> -m -s /bin/csh user

    For example:
    # groupadd ¨Cg 200 apache
    # useradd ¨Cu 222 ¨Cg apache ¨Cd /opt/apache_1.3.12 ¨Cm ¨Cs /bin/csh apache

    b. Create login and shell scripts for account. (If useradd is used, local.* scripts
    is placed in new home directory; otherwise these default
    files can be copied from /etc/skel).
    # su ¨C apache
    % mv local.cshrc .cshrc
    % mv local.login .login

    c. Add environment variables to .cshrc file (use textedit or vi).
    setenv APPHOST `/usr/bin/uname ¨Cn`
    setenv JDK_DIR /usr/local/jdk1.2
    setenv JRE_DIR /usr/local/Solais_JRE_1.2.2_05
    setenv JAVA_HOME /usr/local/jdk1.2
    setenv APACHEHOME /usr/local/apache_1.3.12
    setenv LD_LIBRARY_PATH /usr/lib:/lib:$JAVA_HOME/lib

    set path = ( $JAVA_HOME/bin /usr/local/bin $path /usr/ccs/bin \ /opt/netscape_4.7
    $APACHEHOME/bin )

    set prompt = ¡°`/bin/logname`% ¡°

  4. Install Web server and servlet engine
    a. To see if Apache is loaded and running, type:
    # ps ¨Cef | grep httpd

    Get Apache and Apache information at http://www.apache.org.

    b. Install Apache. Log in or switch user to the Apache account.
    % su ¨C apache
    apache% cd /source
    apache% zcat apache_1.3.12.tar.Z | tar xvf -
    apache% cd apache_1.3.12
    apache%./configure --prefix=/usr/local/apache_1.3.12

    c. Verify that the correct Make is being used. If so, compile and
    install Apache.
    apache% which make
    /usr/local/bin/make
    apache% make
    apache% make install

    This install of Apache is to create configure files and
    create the Apache directory structure. JSDK and ApacheJServ are installed inside of the Apache source code directory and
    Apache is compiled again in a later step.

    d. JSDK 2.0 is required for Apache JServ 1.1 and greater.

    e. Expand .tar file inside Apache install directory.
    apache% cd $APACHEHOME
    apache% zcat /source/jsdk20-solaris2-sparc.tar.Z | tar xvf -

    Information on JSDK is available from:
    http://java.sun.com/products/servlet/download.html.

    f. Expand .tar file inside Apache install directory.
    apache% cd $APACHEHOME
    apache% zcat /source/jdk1.2.tar.Z | tar xvf -

    Information on JDK is available from http://java.sun.com.

    g. For those sites that have an existing Apache installation, see
    if ApacheJServ is currently loaded and compiled into Apache. This
    allows users to see if a new compile of Apache including ApacheJServ
    is required):
    apache% cd $APACHEHOME/bin
    apache% ./httpd ¨Cl
    Look for the ¡°mod_jserv.c¡± module. If loaded, test the ApacheJServ
    installation:
    http://localhost/servlets/<test_servlet>

    To install Apache Jserv
    1. Expand .tar file inside working directory.
    apache% cd /source
    apache% zcat ApacheJServ-1.1.tar.Z | tar xvf -
    apache% cd ApacheJServ-1.1.2

    2. Create a configure-options file containing the following lines:
    --prefix=/usr/local/apache_1.3.12/jserv-1.1.2
    --with-apache-src=/source/apache_1.3.12
    --with-jdk-home=/usr/local/apache_1.3.12/jdk1.2
    --with-JSDK=/usr/local/apache_1.3.12/JSDK2.0/lib/jsdk.jar
    --disable-debugging

    3. Create the Makefile with configure and Make and install
    the ApacheJServ.
    apache%./configure
    ¡�
    apache% make
    ¡�
    apache% make install
    ¡�

    4. Customize the Apache configuration files:
    apache%
    apache% cd $APACHEHOME/conf
    apache% vi httpd.conf

    Find Replace
    Port 8080 Port 80
    User nobody User apache
    Group nobody Group apache
    #ServerName {hostname} ServerName <hostname>
    DirectoryIndex index.html DirectoryIndex index.html default.htm
    Add
    #
    # JServ-1.1.2 support
    #
    Include /usr/local/apache_1.3.12/jserv-1.1.2/etc/jserv.conf

    Recompile Apache which now has imbedded ApacheJServ source
    code. The ¡°make¡± and ¡°make install¡± process updates the Apache
    configuration.

    apache% cd /source/apache_1.3.12
    apache% make
    ¡�
    apache% make install
    ¡�

    Get ApacheJServ-1.1.2 and ApacheJServ information at
    http://www.apache.org.

  5. MAKE SURE THE WEB SERVER AND SERVLET ENGINE ARE RUNNING PROPERLY!
    a. Start Apache WebServer. Start Apache with root since the default port is set to 80.

    apache% cd
    apache% su root
    Password: *******
    # cd bin
    # ./apachectl start

    If the error "httpd: cannot determine local host name" is received,
    use ¡°ServerName¡± directive in $APACHEHOME/conf/httpd.conf file to set
    this. More information can be found in that file.

    b. To test Apache Web Server, start Netscape Navigator and type the
    following URL: http://<hostname>/

    The Apache Start Page should be visible. If not, make sure the Apache
    daemon is running:

    % ps ¨Cef | grep httpd

    If the daemon is running, access the following URL:
    http://<hostname>/index.html

    c. If Apache seems to be working properly, test Jserv:
    http://<hostname>/servlets/IsItWorking

    If IsItWorking is not present, run any servlet in
    <jserv_install_dir>/servlets. Once Apache and Jserv are working
    properly, stop the Apache service.

    # $AIMSHOME/bin/apachectl stop

  6. Install ArcIMS
    a. Add Solaris user (as root) with admintool or with the following 
    command:
    # groupadd ¨Cg <gid> group
    # useradd -u <uid> -g <gid> -d <directory> -m -s /bin/csh user

    For example (arcims user in esri group):
    # groupadd ¨Cg 200 esri
    # useradd ¨Cu 222 ¨Cg esri ¨Cd /opt/esri/aims30exe ¨Cm ¨Cs /bin/csh arcims
    b. Create login and shell scripts for the account. (If using useradd,
    local.* scripts is placed in new home directory, otherwise
    these default files can be copied from /etc/skel.)
    # su ¨C esri
    % mv local.cshrc .cshrc
    % mv local.login .login

    c. Add environment variables to .cshrc file (use textedit, vi, or
    emacs):
    setenv AIMSBASE /disk1/arcims
    setenv AIMSHOME /opt/esri/aims30exe
    setenv AIMSWEB $AIMSBASE/Website
    set path = ( $JAVA_HOME/bin $path $AIMSHOME/bin /opt/netscape_4.7 )
    set LD_LIBRARY_PATH \ /usr/lib:/lib:$JAVA_HOME/lib:$AIMSHOME/
    bin:$AIMSHOME/lib

    To set up ArcExplorer variables:
    setenv AEJHOME /opt/esri/aej30exe
    set path=($AEJHOME/bin $path)

    d. Make ArcIMS working directories:
    % mkdir ¨Cp $AIMSBASE/Website $AIMSBASE/Axl $AIMSBASE/Output

    e. Install ArcIMS:
    1. Load the ArcIMS CDROM and run install script:
    /cdrom/cdrom0/ArcIMS3.0/install ¨Cload
    2. At the Enter CD-ROM mount point: [/cdrom/cdrom0/Solaris/ArcIMS3.0]
    prompt, type the location and press <Return>.
    3. At the Enter pathname to install directory: prompt, type the path
    to where the ArcIMS is to be installed on the system. The ArcIMS
    version and date display.
    4. At the ArcIMS Application Server and Connectors Package numbers
    to load: [none] prompt, type ¡°?¡± to display a list of available
    packages. Type the numbers of the packages to be installed,
    type ¡°all¡± to load all packages, or press <Return> to accept
    the default and load no packages.
    NOTE: For ArcIMS to function, it is necessary to install the Application
    Server and at least one connector.
    5. At the ArcIMS Manager Applications Package numbers to load: [all]
    prompt, press <Return> to accept the default and install
    all packages.
    6. At the ArcIMS Spatial Server Software Package numbers to
    load: [all] prompt, press <Return> to accept the default and
    install all packages.
    7. At the ArcIMS Sample Applications and Data Package numbers to
    load: [none] prompt, type ¡°?¡± to display a list of available
    packages. Type the numbers of the packages to be installed,
    type ¡°all¡± to load all packages, or press <Return> to accept
    the default and load no packages. The Package selection complete
    message and a list of the packages chosen to install display.
    8. At the Is this correct? [yes] prompt, press <Return> to
    accept the default and install ArcIMS. The size of the
    selected packages and available space displays.

  7. Configure Apache with ArcIMS
    a. Make directories
    % mkdir ¨Cp $AIMSBASE/Website $AIMSBASE/Axl $AIMSBASE/Output

    b. Customize Apache configuration files:
    % su ¨C apache
    % vi $APACHEHOME/conf/httpd.conf

    Add:
    #
    # ArcIMS mount points
    #
    Alias /output {AIMSBASE}/Output
    <Directory "{AIMSBASE}/Output">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
    Alias /website {AIMSBASE}/Website
    <Directory "{AIMSBASE}/Website">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
    Alias /Manager {AIMSHOME}/Manager
    <Directory "{AIMSHOME}/Manager">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

    c. Other modifications:
    % cd $APACHEHOME/jserv-1.1.2/etc
    % cp zone.properties esrimap.properties
    % vi esrimap.properties

    Find repositories=... and replace it with
    repositories={AIMSHOME}/Middleware/Servlet_Connector

    % vi jserv.properties

    Find wrapper.classpath={APACHEHOME}/jserv-1.1/libexec/ApacheJServ.jar
    wrapper.classpath={APACHEHOME}/JSDK2.0/lib/jsdk.jar

    and add:
    wrapper.classpath={AIMSHOME}/Middleware/Servlet_Connector wrapper.classpath={APACHEHOME}/JSDK2.0/examples

    Find zones=root and replace with zones=root,esrimap

    Find root.properties={APACHE_INSTALL_DIR}/jserv-1.1/etc/zone.properties

    and add:
    esrimap.properties={APACHE_INSTALL_DIR}/jserv-1.1/etc/esrimap.properties

    % vi $APACHEHOME/jserv-1.1.2/etc/jserv.conf

    Find ApJServMount /servlet /root and replace with ApJServMount /servlet /esrimap

    % su ¨C arcims
    Password: *****
    % vi ./Middleware/Servlet_Connector/Esrimap_prop

    Find AppServer=APPSMACHINE and replace with AppServer={APPHOST}

    % cd Xenv
    % vi aimsdefaults.properties

    Find WorkingDir= and replace with WorkingDir={AIMS_BASE}/Axl

    % vi aimsappsrvr

    Find
    AIMSHOME=/<path_to_install_dir>/aims30exe; export AIMSHOME
    APP_SRVR_LOGFILE=$AIMSHOME/log/app_srvr.log;export APP_SRVR_LOGFILE
    JAVA_HOME=<path_to)install_dir>; export JAVA_HOME

    and replace with
    AIMSHOME=/opt/esri/aims30exe; export AIMSHOME
    APP_SRVR_LOGFILE=$AIMSHOME/log/app_srvr.log;export APP_SRVR_LOGFILE
    JAVA_HOME=/usr/local/jdk1.2; export JAVA_HOME

    % vi aimstasker

    Find
    AIMSHOME=/<path_to_install_dir>/aims30exe; export AIMSHOME
    APP_SRVR_LOGFILE=$AIMSHOME/log/app_srvr.log;export APP_SRVR_LOGFILE
    JAVA_HOME=<path_to)install_dir>; export JAVA_HOME

    and replace with
    AIMSHOME=c; export AIMSHOME
    APP_SRVR_LOGFILE=$AIMSHOME/log/app_srvr.log;export APP_SRVR_LOGFILE
    JAVA_HOME=/usr/local/jdk1.2; export JAVA_HOME
    DEBUG=DEBUG

    Find
    $JAVA_HOME/bin/java -cp $AIMSHOME/Middleware/Tasker com.esri.mtier.ImsScavenger DEBUG > $TASKER_LOGFILE 2>&1 &

    and replace with
    $JAVA_HOME/bin/java -cp $AIMSHOME/Middleware/Tasker com.esri.mtier.ImsScavenger $DEBUG > $TASKER_LOGFILE 2>&1 &

    % vi aimsmonitor

    Find
    AIMSHOME=/path_to_install_directory/aims30exe; export AIMSHOME
    MONITOR_LOGFILE=$AIMSHOME/log/monitor.log; export MONITOR_LOGFILE
    AIMSAPPSERVER={APPHOST}; export AIMSAPPSERVER
    JAVA_HOME=/path_to_install_directory; export JAVA_HOME
    LD_LIBRARY_PATH=$AIMSHOME/lib:$AIMSHOME/bin; export LD_LIBRARY_PATH

    and replace with
    AIMSHOME=/opt/esri/aims30exe; export AIMSHOME MONITOR_LOGFILE=$AIMSHOME/log/monitor.log; export MONITOR_LOGFILE
    AIMSAPPSERVER=`/usr/bin/uname ¨Cn`; export AIMSAPPSERVER JAVA_HOME=/usr/local/jdk1.2; export JAVA_HOME
    LD_LIBRARY_PATH=$AIMSHOME/lib:$AIMSHOME/bin; export LD_LIBRARY_PATH
    DEBUG=DEBUG

    Find
    $JAVA_HOME/bin/java -cp $AIMSHOME/Monitor com.esri.mtier.ImsMonitor $AIMSAPPSERVER 5353 $AIMSHOME/bin DEBUG > $MONITOR_LOGFILE 2>&1 &

    and replace with
    $JAVA_HOME/bin/java -cp $AIMSHOME/Monitor com.esri.mtier.ImsMonitor $AIMSAPPSERVER 5353 $AIMSHOME/bin $DEBUG > $MONITOR_LOGFILE 2>&1 &

    NOTE: Once the ArcIMS installation is validated, change
    the "DEBUG=DEBUG" lines to "DEBUG="

    d. Square away all of the ownership and permissions (as root).

    # /usr/ucb/chown ¨CR arcims.arcims /opt/esri/aims30exe
    # chmod ¨CR +w /opt/esri/aims30exe/log

  8. Start and test the Installation.

    At this point it is possible to start the ArcIMS daemons and restart Apache:

    # su
    # cd /usr/local/apache_1.3.12/bin
    # apachectl start

    # su ¨C arcims
    # $AIMSHOME/Xenv/aimstasker start
    # $AIMSHOME/Xenv/aimsmonitor start
    # $AIMSHOME/Xenv/aimsappsrvr start

    To set these services up to start at boot time, follow the
    instructions at the beginning of each file. For instance, use
    a text editor to open aimstasker and follow the instructions in
    the comments section of that script. The user copies
    the three scripts to /etc/init.d directory and creates
    symbolic links to them in /etc/rc3.d directory with a
    prefix of S<filename>.