NASA - National Aeronautics and Space Administration

+ NASA Homepage
+ NASA en Español
+ Contact NASA
Go
Planetary Data System - Engineering Node Banner

Installation

This document describes how to install the Search Service software contained in the search-service package. The following topics can be found in this section:

System Requirements

This section details the system requirements for installing and operating the Search Service.

Java Runtime Environment

The Search Service was developed using Java and Apache Solr and will run on any platform with a supported Java Runtime Environment (JRE). The software was specifically developed under Java version 1.6 and has only been tested with this version. The following commands test the local Java installation in a UNIX-based environment:

% which java
/usr/bin/java

% java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)
        

The first command above checks whether the java executable is in the environment's path and the second command reports the version. If Java is not installed or the version is not at least 1.6, Java will need to be downloaded and installed in the current environment. Consult the local system administrator for installation of this software. For the do-it-yourself crowd, the Java software can be downloaded from the Oracle Java Download page. The software package of choice is the Java Standard Edition (SE) 6, either the JDK or the JRE package. The JDK package is not necessary to run the software but could be useful if development and compilation of Java software will also occur in the current environment.

Java Application Server

The Search Service requires a Java application server for hosting the web application. The suggested application server for this release is Apache Tomcat with a minimal version of 6.0.20 through version 7.0.X. Consult the local system administrator for installation of this software. For the do-it-yourself crowd, see the Tomcat Deployment document for installation and configuration details. If viewing this document from the search-service package, view the Tomcat Deployment document from the Engineering Node site.

Unpacking the Package

Download the search-service package from the PDS FTP site. The binary distribution is available in identical zip or tar/gzip packages. The installation directory may vary from environment to environment but in UNIX-based environments it is typical to install software packages in the /usr/local directory and in Windows-based environments it is typical to install software packages in the C:\Program Files directory. Unpack the selected binary distribution file with one of the following commands:

% unzip search-service-1.4.1-bin.zip
or
% tar -xzvf search-service-1.4.1-bin.tar.gz
      

Note: Depending on the platform, the native version of tar may produce an error when attempting to unpack the distribution file because many of the file paths are greater than 100 characters. If available, the GNU version of tar will resolve this problem. If that is not available or cannot be installed, the zipped package will work just fine in a UNIX environment.

The commands above result in the creation of the search-service-1.4.1 directory with the following directory structure:

  • LICENSE.txt

    The copyright notice from the California Institute of Technology detailing the restrictions regarding the use and distribution of this software. Although the license is strictly worded, the software has been classified as Technology and Software Publicly Available (TSPA) and is available for anyone to download and use.

  • README.txt

    A README file directing the user to the available documentation for the project.

  • doc/

    This directory contains a local web site with the Search Service documentation, javadoc, unit test results and other configuration management related information. Just point the desired web browser to the index.html file in this directory.

  • experimental/

    This directory contains the configuration for the experimental core for Solr. This directory is intended for development and testing purposes only, and can be ignored.

  • lib/

    This directory contains the the jars used by the Solr software.

  • pds/

    This directory contains the configuration for the Solr core for the PDS Search. This directory path is the SEARCH_HOME referenced in the Search Core Operation documentation

  • solr.war

    This WAR file is the Solr software application to be deployed to Tomcat.

  • solr.xml

    This XML file provides the basic, initial configuration for the Solr software.

Deploying the Application

The Search Service includes the configuration for Solr as well as the Java extensions written to support the PDS Search Protocol and PDAP Handler. In order to deploy Solr with the Search Service configuration, please complete the following procedure:

See Engineering Node Deployment documentation for EN-specific deployment instructions.

Initial Installation

  1. Create a symbolic link to the Search Service installation directory to provide an easier method of upgrade in the future. The following demonstrates how to create this symbolic link:
    ln -s /usr/local/search-service-1.4.1 /usr/local/search-service
                
  2. Create a Tomcat context file search-service.xml to refer to the Solr WAR file (found in the $SEARCH_SERVICE_HOME directory) and place it in the $TOMCAT_HOME/conf/Catalina/{hostname} directory. The search-service.xml file should look something like this, with the paths modifed as needed:
    <?xml version="1.0" encoding="utf-8" ?>
    <Context docBase="/usr/local/search-service/solr.war" debug="0" 
          crossContext="true">
      <Environment name="solr/home" type="java.lang.String" 
            value="/usr/local/search-service" override="true" />
      <Parameter name="javax.xml.transform.TransformerFactory" 
            type="java.lang.String" value="net.sf.saxon.TransformerFactoryImpl" 
            override="true"/>
      <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
            virtualClasspath="/usr/local/search-service/lib/*.jar;\
            /usr/local/search-service/log4j.properties"/>
    </Context>
                
  3. Append to the CATALINA_OPTS and JAVA_OPTS environment variables by adding the following line to the $TOMCAT_HOME/bin/setenv.sh script:

    CATALINA_OPTS="${CATALINA_OPTS} \
                  -Dsolr.pds.home=/usr/local/search-service"
    
    JAVA_OPTS="${JAVA_OPTS} -Dlog4j.configuration=\
              file:///usr/local/search-service/log4j.properties"
    JAVA_OPTS="${JAVA_OPTS} -Dlog4j.debug=true"
                

    For more information on the $TOMCAT_HOME/bin/setenv.sh script, see the General Configuration section of the Tomcat Deployment document.

  4. Restart Tomcat server
  5. Test installation by going to http://localhost:8080/search-service/ (Domain and port will vary according to Tomcat configuration)

Upgrade To New Version

  1. Shutdown Tomcat.
  2. Change Search Service symbolic link to new location:
    rm /usr/local/search-service
    
    ln -s /usr/local/search-service-x.x.x /usr/local/search-service
                
  3. Start Tomcat server.
  4. Test installation by going to http://localhost:8080/search-service/ (Domain and port will vary according to Tomcat configuration)

Security

The Solr software includes a URL endpoint to update the index. This introduces a security vulnerability by allowing someone to modify the index without securing it. The preferred method of security is to only allow updates to come from the local machine (localhost). To do so, open the Apache Tomcat configuration file. $TOMCAT_HOME/conf/server.xml, for editing, and find the Host section in the document that looks similar to the following:

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true">
  .
  .
  .
</Host>
      

Within this section, add the following code, which should be modified according to your specific installation. The following assumes that the Search Service software is located at the Tomcat base level directory (i.e. http://localhost/search-service):

<Context path="/search-service/pds/update" docBase="" >
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1" />
</Context>
      

The IP address 127.0.0.1 represents the localhost IP address. This can be modified to be any IP address of the machine you would like to have update access to the Search Service.

Common Errors

HTTP 404 - Requested Resource Not Available

This error means the application failed to install correctly. The following are potential mitigation strategies:

  • Verify domain and port are correct for the local Tomcat installation.
  • Verify paths denoted for $TOMCAT_HOME/conf/Catalina/localhost/search-service.xml and CATALINA_OPTS are correct.
  • View $TOMCAT_HOME/logs/catalina.current-date.log for information on potential causes of the failed deployment.

Other Errors

For other errors that arise while testing the installation, see the Operate - Common Errors


FirstGov Logo
+ Freedom of Information Act
+ NASA 2003 Strategic Plan
+ NASA Privacy Statement, Disclaimer, and
   Accessiblity Certification

+ Copyright/Image Use Policy
NASA Logo
Curator: Emily.S.Law
Webmaster: Maryia Sauchanka-Davis
NASA Official: William Knopf
Last Updated:
+ Comments and Questions