VIVO Release 1 V1.3 Installation Guide
- - July 22, 2011 - --
-
- - Release announcement for V1.3 - -
- - Installation process for V1.3 - -
Release anouncement for V1.3
- See wiki page. --
Installation process for V1.3
-- This document is a summary of the VIVO installation process. This - and other documentation can be found on the support page - at VIVOweb.org -
--
-
- - These instructions assume that you are performing a clean - install, including emptying an existing database, emptying the VIVO - home directory, and removing a previous installation from the Tomcat - webapps directory. Product functionality may not be as expected if you - install over an existing installation of an earlier version. - -
- - If you are going to upgrade an existing service, please consult - the "upgrade" files in this directory. - -
- VIVO Developers: If you are working on the VIVO source code from - Subversion, the instructions are slightly different. Please consult - developers.txt in this directory. -
-Where does VIVO live on your computer?
-- Before beginning the installation, let's look at the four locations - on your computer that will hold VIVO. -
-The VIVO distribution directory
-- This is created when you unpack the VIVO distribution file (see Step III, below). This is where you will - create your deploy.properties file (see Step - V, below), and where you will make any modifications to the VIVO - theme or code. You can create this wherever you choose. -
-VIVO inside Tomcat
-
- When you run the build script to compile and deploy VIVO (see Step VI, below), the files will be deployed to a
- directory inside Tomcat. This is the actual executing code for VIVO,
- but you won’t need to look at it or change it. If you need to change
- VIVO, make the changes in the distribution directory, and run the build
- script again. Tell the build script where to find Tomcat by setting tomcat.home
- in the deploy.properties file (see Step V,
- below).
-
The VIVO home directory
-
- VIVO will use this area to store some of the data it uses. Uploaded
- image files are stored here, and the search index is stored here also.
- You can create this wherever you choose. Tell VIVO where to find the
- home directory by setting vitro.home.directory
- in the
- deploy.properties file (see Step V,
- below). You must create this directory before starting VIVO, and you
- must ensure that Tomcat has permission to read and write to this
- directory when it runs.
-
The MySQL database
-- Essentially all of the data that you store in VIVO will be given to - MySQL for storage. The actual location of this data depends on what - system you have, and on how you install MySQL (see Step I, below). but you won’t need to - know the location. You will access the data through VIVO, or - occasionally through the MySQL client application. -
-Steps to Installation
--
-
- - Install required software - -
- - Create an empty MySQL database - -
- - Download the VIVO Application Source - -
- - Choose Triple Store - -
- - Specify deployment properties - -
- - Compile and deploy - -
- - Set Tomcat JVM parameters and - security limits - -
- - Start Tomcat - -
- - Log in and add RDF data - -
- - Set the Contact Email Address (if - using "Contact Us" form) - -
- - Setup Apache Tomcat Connector - -
- - Using an External Authentication - System with VIVO - -
- - Was the installation successful? - -
I. Install required software
-- Before installing VIVO, make sure that the following software is - installed on the desired machine: -
--
-
- - Java (SE) 1.6 or higher, http://java.sun.com - (Not OpenJDK) - -
- - Apache Tomcat 6.x, http://tomcat.apache.org - -
- - Apache Ant 1.7 or higher, http://ant.apache.org - -
- - MySQL 5.1 or higher*, http://www.mysql.com - -
- Be sure to set up the environment variables for JAVA_HOME
- and ANT_HOME
- and add the executables to your path per
- your operating system and installation directions from the software
- support websites.
-
- * Note that VIVO 1.2 will not run on older versions of MySQL that - may have worked with 1.1.1. Be sure to run VIVO 1.2 with MySQL 5.1 or - higher. Using unsupported versions may result in strange error messages - related to table formatting or other unexpected problems. -
-- * Note that VIVO is not yet compatible with Tomcat 7. -
-II. Create an empty MySQL database
-
- Decide on a database name, username, and password. Log into your
- MySQL server and create a new database in MySQL that uses UTF-8
- encoding
. You will need these values for Step IV when you
- configure the deployment properties. At the MySQL command line you can
- create the database and user with these commands substituting your
- values for dbname
, username
, and password
.
- Most
- of the time, the hostname will equal localhost
.
-
CREATE DATABASE dbname CHARACTER SET utf8;-
- Grant access to a database user. For example: -
-GRANT ALL ON dbname.* TO 'username'@'hostname' IDENTIFIED BY 'password';-
- Keep track of the database name, username, and password for Step - IV. -
-III. Download the VIVO Application Source
-
-
-
- Download the VIVO application source as either rel-1.2.zip
- or rel-1.2.gz
- file and unpack it on your web server:
-
- http://vivoweb.org/download
-
IV. Triple Store
-- VIVO 1.3 now requires you to use Jena's SPARQL database (SDB) for - the triple store technology. Jena's legacy relational database - store (RDB) was used by VIVO 1.1.1 and earlier. Both SDB and RDB - were available in VIVO 1.2 and 1.2.1. A VIVO 1.2 system running - in RDB mode ... [WHAT HAPPENS - IF THEY UPGRADE in RDB MODE? - elly] -
-- SDB mode caches only a fraction of the RDF data in memory. Most - queries are issued directly against the underlying database. This - allows VIVO installations to display data from large RDF models while - requiring only a small amount of server memory to run the application. - There is a tradeoff in response time: pages make take slightly longer - to load in SDB mode, and performance will depend on the configuration - parameters of the database server. Additionally, advanced OWL reasoning - (not enabled by default in either mode) is not possible in SDB mode. - With SDB, only the default set of inferences (inferred rdf:type - statements) are generated, though they are generated as soon as data is - edited rather than in a background process. -
-- This copying process can take a number of hours to complete if the - installation contains a large amount of RDF data (roughly a million - triples or more). See section Set - Up SDB Store in - the Background (Optional) - for instructions on how to run this - lengthy conversion process in the background while an RDB system is - operating. Doing this will reduce the time necessary to start VIVO the - first time it is run in SDB mode. -
-V. Specify deployment properties
-
- At the top level of the VIVO distribution directory, copy the file example.deploy.properties
- to a file named simply deploy.properties
. This file sets
- several properties used in compilation and deployment.
-
- Windows:
- For those installing on Windows operating
- system, include the windows drive and use the forward slash "/" and not
- the back slash "\" in the directory locations, e.g. c:/tomcat
.
-
- External authentication: - If you want to use an external - authentication system like Shibboleth or CUWebAuth, you will need to - set two additional properties in this file. See the section below - entitled Using an External Authentication - System with VIVO. -
-- Property Name - | -- Example Value - | -
---|---|
- Default namespace: VIVO installations make their
- RDF resources available for harvest using linked data. Requests for RDF
- resource URIs redirect to HTML or RDF representations as specified by
- the client. To make this possible, VIVO's default namespace must have a
- certain structure and begin with the public web address of the VIVO
- installation. For example, if the web address of a VIVO installation is
- "http://vivo.example.edu/" the default namespace must be set to
- "http://vivo.example.edu/individual/" in order to support linked data.
- Similarly, if VIVO is installed at "http://www.example.edu/vivo" the
- default namespace must be set to
- "http://www.example.edu/vivo/individual/"* The namespace must end with "individual/" (including the - trailing slash).- |
- |
- Vitro.defaultNamespace - | -- http://vivo.mydomain.edu/individual/ - | -
- Directory where Vitro code is located. In most - deployments, this is set to ./vitro-core (It is not uncommon for this - setting to point elsewhere in development environments). - | -|
- vitro.core.dir - | -- ./vitro-core - | -
- Directory where tomcat is installed. - | -|
- tomcat.home - | -- /usr/local/tomcat - | -
- Name of your VIVO application. - | -|
- webapp.name - | -- vivo - | -
- URL of Solr context used in local VIVO search.
- Should consist of:scheme + servername + port + vivocontextpath + "solr"- In the standard installation, the Solr context will be on the same - server as VIVO, and in the same Tomcat instance. The path will be the - VIVO webapp.name (specified above) + "solr" - |
- |
- vitro.local.solr.url - | -- http://localhost:8080/vivosolr - | -
- Restricts access to the Solr search platform.
- One or more regular expressions, separated by commas. When a request is
- made to Solr, the IP address of the requestor must match one of the
- patterns, or the request will be rejected.
- - Examples: -
|
- |
- vitro.local.solr.ipaddress.mask - | -- 127\.0\.0\.1,0:0:0:0:0:0:0:1 - | -
- Directory where the VIVO application will store - the data that it creates. This includes uploaded files (usually images) - and the Solr search index. Be sure this directory exists and is - writable by the user who the Tomcat service is running as. - | -|
- vitro.home.directory - | -- /usr/local/vivo/data - | -
- Specify an SMTP host that the application will - use for sending e-mail (Optional). If this is left blank, the contact - form will be hidden and disabled, and users will not be notified of - changes to their accounts. - | -|
- email.smtpHost - | -- smtp.servername.edu - | -
- Specify an email address which will appear as - the sender in e-mail notifications to users (Optional). If a user - replies to the notification, this address will receive the reply. If a - user's e-mail address is invalid, this address will receive the error - notice. If this is left blank, users will not be notified of changes to - their accounts. - | -|
- email.replyTo - | -- vivoAdmin@my.domain.edu - | -
- Specify the JDBC URL of your database. Change - the end of the URL to reflect your database name (if it is not "vivo"). - | -|
- VitroConnection.DataSource.url - | -- jdbc:mysql://localhost/vivo - | -
- Change the username to match the authorized user - you created in MySQL. - | -|
- VitroConnection.DataSource.username - | -- username - | -
- Change the password to match the password you - created in MySQL. - | -|
- VitroConnection.DataSource.password - | -- password - | -
- Specify the Jena triple store technology to use. - SDB is Jena's SPARQL database; this setting allows RDF data to scale - beyond the limits of the JVM heap. Set to RDB to use the older Jena RDB - store with in-memory caching. - | -|
- VitroConnection.DataSource.tripleStoreType - | -- SDB - | -
- Specify the maximum number of active connections - in the database connection pool to support the anticipated number of - concurrent page requests. It is not necessary to adjust this value when - using the RDB configuration. - | -|
- VitroConnection.DataSource.pool.maxActive - | -- 40 - | -
- Specify the maximum number of database - connections that will be allowed to remain idle in the connection pool. - Default is 25% of the maximum number of active connections. - | -|
- VitroConnection.DataSource.pool.maxIdle - | -- 10 - | -
- Change the dbtype setting to use a database - other than MySQL. Otherwise, leave this value unchanged. Possible - values are DB2, derby, HSQLDB, H2, MySQL, Oracle, PostgreSQL, and - SQLServer. Refer to http://openjena.org/wiki/SDB/Databases_Supported - for additional information. - | -|
- VitroConnection.DataSource.dbtype - | -- MySQL - | -
- Specify a driver class name to use a database - other than MySQL. Otherwise, leave this value unchanged. This JAR file - for this driver must be added to the the webapp/lib directory within - the vitro.core.dir specified above. - | -|
- VitroConnection.DataSource.driver - | -- com.mysql.jdbc.Driver - | -
- Change the validation query used to test - database connections only if necessary to use a database other than - MySQL. Otherwise, leave this value unchanged. - | -|
- VitroConnection.DataSource.validationQuery - | -- SELECT 1 - | -
- Specify the email address of the root user
- account for the VIVO application. This user will have an initial
- temporary password of 'rootPassword'. You will be prompted to create a
- new password on first login.
- - NOTE: The root user account has access to all data and all operations - in VIVO. Data views may be surprising when logged in as the root user. - It is best to create a Site Admin account to use for every day - administrative tasks. - - |
- |
- rootUser.emailAddress - | -- vivoAdmin@my.domain.edu - | -
- The URI of a property that can be used to - associate an Individual with a user account. When a user logs in with a - name that matches the value of this property, the user will be - authorized to edit that Individual. - | -|
- selfEditing.idMatchingProperty - | -- http://vivo.mydomain.edu/ns#networkId - | -
- The temporal graph visualization can require
- extensive machine resources. This can have a particularly noticable
- impact on memory usage if
-
|
- |
- visualization.temporal - | -- enabled - | -
- The temporal graph visualization is used to
- compare different organizations/people within an organization on
- parameters like number of publications or grants. By default, the app
- will attempt to make its best guess at the top level organization in
- your instance. If you're unhappy with this selection, uncomment out the
- property below and set it to the URI of the organization individual you
- want to identify as the top level organization. It will be used as the
- default whenever the temporal graph visualization is rendered without
- being passed an explicit org. For example, to use "Ponce School of
- Medicine" as the top organization:
- - visualization.topLevelOrg = - http://vivo.psm.edu/individual/n2862 - - |
- |
- visualization.topLevelOrg - | -- http://vivo-trunk.indiana.edu/individual/topLevelOrgURI - | -
VI. Compile and deploy
-- At the command line, from the top level of the VIVO distribution - directory, type: -
-ant all-
- to build VIVO and deploy to Tomcat's webapps directory. -
-VII. Set Tomcat JVM parameters and security - limits
-- Currently, VIVO copies the contents of your RDF database into - memory in order to serve Web requests quickly (the in-memory copy and - the underlying database are kept in synch as edits are performed). -
-
- VIVO will require more memory than that allocated to Tomcat by
- default. With most installations of Tomcat, the "setenv.sh" or
- "setenv.bat" file in Tomcat's bin directory is a convenient place to
- set the memory parameters. If this file does not exist in Tomcat's
- bin directory, you can create it.
-
- For example:
-
export CATALINA_OPTS="-Xms2048m -Xmx1024m -XX:MaxPermSize=128m"-
- This sets Tomcat to allocate an initial heap of 2048 megabytes, a - maximum heap of 1024 megabytes, and a PermGen space of 128 megs. 1024 - megabytes is a minimum practical heap size for production installations - storing data for large academic institutions, and additional heap space - is preferable. For testing with small sets of data, 256m to 512m should - be sufficient. -
-- If an OutOfMemoryError is encountered during VIVO execution, it can - be remedied by increasing the heap parameters and restarting Tomcat. -
-
- Security limits: VIVO is a multithreaded web application that may
- require more threads than are permitted under your Linux installation's
- default configuration. Ensure that your installation can support the
- required number of threads by making the following edits to /etc/security/limits.conf
:
-
apache hard nproc 400-
tomcat6 hard nproc 1500
VIII. Start Tomcat
-
- Most Tomcat installations can be started by running startup.sh
- or startup.bat
- in Tomcat's bin directory. Point your
- browser to "http://localhost:8080/vivo/" to test the application. If
- Tomcat does not start up, or the VIVO application is not visible, check
- the files in Tomcat's logs directory. Error messages are commonly found
- in catalina.out
- or localhost.log
-
IX. Log in and add RDF data
-
- If the startup was successful, you will see a welcome message
- informing you that you have successfully installed VIVO. Click the "Log
- in" link near the upper right corner. Log in with the rootUser.emailAddress
- you set up in Step IV. The initial password for the root account is
- "rootPassword" (without the quotes). On first login, you will be
- prompted to select a new password and verify it a second time.
-
- After verifying your new password, you will be presented with a - menu of editing options. Here you can create OWL classes, object - properties, data properties, and configure the display of data. - Currently, any classes you wish to make visible on your website must be - part of a class group, and there are a number of visibility and display - options available for each ontology entity. VIVO comes with a core VIVO - ontology, but you may also upload other ontologies from an RDF file. -
-- Under the "Advanced Data Tools" click "Add/Remove RDF Data." Note - that Vitro currently works best with OWL-DL ontologies and has only - limited support for pure RDF data. You can enter a URL pointing to the - RDF data you wish to load or upload from a file on your local machine. - Ensure that the "add RDF" radio button is selected. You will also - likely want to check "create classgroups automatically." -
-- Clicking the "Index" tab in the navigation bar at the top right of - the page will show a simple index of the knowledge base. -
-- See more documentation for configuring VIVO, ingesting data, and - manually adding data at http://vivoweb.org/support. -
-X. Set the Contact Email Address (if using - "Contact Us" form)
-
- If you have configured your application to use the "Contact Us"
- feature in Step IV (email.smtpHost
), you will also need to
- add an email address to the VIVO application. This is the email
- to which the contact form will submit. It can be a list server or an
- individual's email address.
-
- Log in as a system administrator. Navigate to the "Site Admin" - table of contents (link in the right side of the header). Go to "Site - Information" (under "Site Configuration"). In the "Site Information - Editing Form," enter a functional email address in the field "Contact - Email Address" and submit the change. -
-
- If you set the email.smtpHost
- in Step IV and do NOT
- provide an email address in this step, your users will receive a java
- error in the interface.
-
XI. Set up Apache Tomcat Connector
-- It is recommended that a Tomcat Connector such as mod_jk be used to - ensure that the site address does not include the port number (e.g. - 8080) and an additional reference to the Tomcat context name (e.g. - /vivo). -
-- This will make VIVO available at "http://example.com" instead of - "http://example.com:8080/vivo" -
-- Using the mod_jk connector allows for communication between Tomcat - and the primary web server. The Quick - Start - HowTo - on the Apache site describes the minimum server - configurations for several popular web servers. -
-
- After setting up the mod_jk connector above, you will need to
- modify the Tomcat's server.xml (located in [tomcat root]/conf/
)
- to
- respond to requests from Apache via the connector. Look for the
- <connector> directive and add the following properties:
-
connectionTimeout="20000" maxThreads="320" keepAliveTimeout="20000"-
- Note: the value for maxThreads (320) is equal to the value for
- MaxClients in the apache's httpd.conf
- file.
-
- Locate the <Host name="localhost"...>
- directive
- and update as follows:
-
-
<Host name="localhost" appBase="webapps"
DeployOnStartup="false"
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>example.com</Alias>
<Context path=""
docBase="/usr/local/tomcat/webapps/vivo"
reloadable="true"
cookies="true" >
<Manager pathname="" />
<Environment type="java.lang.String" override="false"
name="path.configuration"
value="deploy.properties"
/>
</Context>
...
XII. Using an External Authentication System - with VIVO
--
-- VIVO can be configured to work with an external authentication - system like Shibboleth or CUWebAuth. -
-- VIVO must be accessible only through an Apache HTTP server. The - Apache server will be configured to invoke the external authentication - system. When the user completes the authentication, the Apache server - will pass a network ID to VIVO, to identify the user. -
-- If VIVO has an account for that user, the user will be logged in - with the privileges of that account. In the absence of an account, VIVO - will try to find a page associated with the user. If such a page is - found, the user can log in to edit his own profile information. -
-Configuring the Apache server
-- Your institution will provide you with instructions for setting up - the external authentication system. The Apache server must be - configured to secure a page in VIVO. When a user reaches this secured - page, the Apache server will invoke the external authentication system. -
-
- For VIVO, this secured page is named: /loginExternalAuthReturn
-
- When your instructions call for the location of the secured page, - this is the value you should use. -
-Configuring VIVO
-
- To enable external authentication, VIVO requires three values in
- the deploy.properties
- file.
-
-
-
-
-
The name of the HTTP header that will hold the external user's - network ID.
-- When a user completes the authentication process, the Apache - server will put the user's network ID into one of the headers of the - HTTP request. The instructions from your institution should tell you - which header is used for this purpose. -
-- You need to tell VIVO the name of that HTTP header. Insert a - line like this in the deploy.properties file: -
-externalAuth.netIdHeaderName = [the header name]
-- For example: -
-externalAuth.netIdHeaderName = remote_userID
-
- -
-
The text for the Login button.
- To start the authentication process, the user will click on a button in - the VIVO login form. You need to tell VIVO what text should appear in - that button. -- Put a line like this in the deploy.properties file: - externalAuth.buttonText = [the text for your login button] For example: -
-externalAuth.buttonText = Log in using BearCat Shibboleth
-- The VIVO login form will display a button labelled "Log in - using BearCat Shibboleth". -
-
- -
-
Associating a User with a profile page.
-- If VIVO has an account for the user, the user will be given the - privileges assigned to that account. -
-- In addition, VIVO will try to associate the user with a profile - page, so the user may edit his own profile data. VIVO will search the - data model for a person with a property that matches the User’s network - ID (the value of the property must be either a String literal or an - untyped literal). You need to tell VIVO what property should be used - for matching. Insert a line like this in the deploy.properties file: -
-selfEditing.idMatchingProperty = [the URI of the property]
-- For example: -
-selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
-
-
XIV. Was the installation successful?
-- If you have completed the previous steps, you have good indications - that the installation was successful. -
--
-
- - Step VII showed that Tomcat recognized the webapp, and that the - webapp was able to present the initial page. - -
- - Step VIII verified that you can log in to the administrator - account. - -
- Here is a simple test to see whether the ontology files were - loaded: -
--
-
- - Click on the "Index" link on the upper right, below the logo. - You should see a "locations" section, with links for "Country" and - "Geographic Location." The index is built in a background thread, so on - your first login, you may see an empty index instead. Refresh the page - periodically to see whether the index will be populated. This may take - some time: with VIVO installed on a modest laptop computer, loading the - ontology files and building the index took more than 5 minutes from the - time that Tomcat was started. - -
- - Click on the "Country" link. You should see an alphabetical list - of the countries of the world. - -
- Here is a test to see whether your system is configured to serve - linked data: -
--
-
-
- Point your browser to the home page of your website, and click
- the "Log in" link near the upper right corner. Log in with the
rootUser.emailAddress
- you set up in Step IV. If this is your first time logging in, you will - be prompted to change the password. -
- - - After you have successfully logged in, click "site admin" in the - upper right corner. In the drop down under "Data Input" select "Faculty - Member(core)" and click the "Add individual of this class" button. - -
- - Enter the name "test individual" under the field "Individual - Name," scroll to the bottom, and click "Create New Record." You will be - taken to the "Individual Control Panel." Make note of the value of the - field "URI" - it will be used in the next step. - -
- - Open a new web browser or browser tab to the page http://marbles.sourceforge.net/. - In - the pink box on that page enter the URI of the individual you - created in the previous step and click "open." - -
- - In the resulting page search for the URI of the "test - individual." You should find it towards the bottom of the page next to - a red dot followed by "redirect (303)." This indicates that you are - successfully serving linked RDF data. If the URI of the "test - individual" is followed by "failed (400)" you are not successfully - serving linked data. - -
- Finally, test the search index. -
--
-
- - Type the word "Australia" into the search box, and click on the - Search button.You should see a page of results, with links to countries - that border Australia, individuals that include Australia, and to - Australia itself. To trigger the search index, you can log in as a site - administrator and go to "http://your-vivo-url/SearchIndex". - -