vivo/doc/html/install.html

692 lines
35 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>VIVO</title>
<link rel="stylesheet" href="../css/doc.css" />
</head>
<body>
<header id="branding" role="banner">
<h1 class="vivo-logo"><a href="/"><span class="displace">VIVO</span></a></h1>
</header>
<!-- Start of content -->
<div id="wrapper-content" role="main">
<h1>VIVO Release 1 V1.2 Installation Guide</h1>
<toc>
<ul>
<li>
<a href="#announcement">Release announcement for V1.2</a>
</li>
<li>
<a href="#installation">Installation process for V1.2</a>
</li>
</ul>
</toc>
<!-- Release Announcement --><h2 id="announcement">Release anouncement for V1.2</h2>
<p>
Text from the wiki page
</p>
<!-- Installation process for V1.2 --><h2 id="installation">Installation process for V1.2</h2>
<p>
This document is a summary of the VIVO installation process. This and other
documentation can be found on the <a href="http://vivoweb.org/support">spport page</a>
at <a href="http://vivoweb.org">VIVOweb.org</a>
</p>
<ul>
<li>
These instructions assume that you are performing a clean install, including
emptying an existing database 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.
</li>
<li>
If you are going to upgrade an existing service, please consult the upgrade.txt
in this directory.
</li>
</ul>
<aside>
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.
</aside>
<toc>
<h3>Steps to Installation</h3>
<ol>
<li>
<a href="#required_software">Install required software</a>
</li>
<li>
<a href="#create_database">Create an empty MySQL database</a>
</li>
<li>
<a href="#download_code">Download the VIVO Application Source</a>
</li>
<li>
<a href="#deploy_properties">Specify deployment properties</a>
</li>
<li>
<a href="#deploy">Compile and deploy</a>
</li>
<li>
<a href="#tomcat_settings">Set Tomcat JVM parameters and security limits</a>
</li>
<li>
<a href="#start_tomcat">Start Tomcat</a>
</li>
<li>
<a href="#add_rdf">Log in and add RDF data</a>
</li>
<li>
<a href="#contact_email">Set the Contact Email Address (if using "Contact Us" form)</a>
</li>
<li>
<a href="#tomcat_connector">Setup Apache Tomcat Connector</a>
</li>
<li>
<a href="#pellet">Configure Pellet Reasoner</a>
</li>
<li>
<a href="#external_auth">Using an External Authentication System with VIVO</a>
</li>
<li>
<a href="#installation_check">Was the installation successful?</a>
</li>
</ol>
</toc>
<h3 id="required_software">I. Install required software </h3>
<p>
Before installing VIVO, make sure that the following software is
installed on the desired machine:
</p>
<ul>
<li>
Java (SE) 1.6 or higher, <a href="http://java.sun.com">http://java.sun.com</a>
(Not OpenJDK)
</li>
<li>
Apache Tomcat 6.x or higher, <a href="http://tomcat.apache.org">http://tomcat.apache.org</a>
</li>
<li>
Apache Ant 1.7 or higher, <a href="http://ant.apache.org">http://ant.apache.org</a>
</li>
<li>
MySQL 5.1 or higher, <a href="http://www.mysql.com">http://www.mysql.com</a>
</li>
</ul>
<p>
Be sure to setup 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 web sites.
</p>
<h3 id="create_database">II. Create an empty MySQL database </h3>
<p>
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&nbsp; 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&nbsp; substituting
your values for "dbname", "username", and "password". Most of the time,
the "hostname" will equal "localhost".
</p>
2011-01-14 17:02:11 +00:00
<pre>
CREATE DATABASE dbname CHARACTER SET utf8;
2011-01-14 17:02:11 +00:00
</pre>
<p>
Grant access to a database user.
For example:
</p>
2011-01-14 17:02:11 +00:00
<pre>
GRANT ALL ON dbname.* TO 'username'@'hostname' IDENTIFIED BY 'password';
2011-01-14 17:02:11 +00:00
</pre>
<p>
Keep track of the database name, username, and password for Step IV.
</p>
<h3 id="download_code">III. Download the VIVO Application Source
<br>
</h3>
<p>
Download the VIVO application source as either rel-1.1.1.zip or
rel-1.1.1.gz file and unpack it on your web
server:
<br/>
<a href="http://vivoweb.org/download">http://vivoweb.org/download</a>
</p>
<h3 id="deploy_properties">IV. Specify deployment properties </h3>
<p>
At the top level of the unpacked distribution, copy the file
"example.deploy.properties" to a file named simply "deploy.properties".
This file sets several properties used in compilation and deployment.
</p>
<p>
<em>Windows:</em>
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".
</p>
<p>
<em>External authentication:</em>
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".
</p>
<table>
<tr>
<th>
Property Name
</th>
<th>
Example Value
</th>
</tr>
<tr>
<td colspan="2">
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 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/"
<br/>
<strong>* The namespace must end with "individual/" (including the trailing slash).</strong>
</td>
</tr>
<tr class="odd_row">
<td>
Vitro.defaultNamespace
</td>
<td>
http://vivo.mydomain.edu/individual/
</td>
</tr>
<tr>
<td colspan="2">
Directory where Vitro code is located. In most deployments, this is set to
./vitro-core, but it commonly points elsewhere during development.
</td>
</tr>
<tr class="odd_row">
<td>
vitro.core.dir
</td>
<td>
./vitro-core
</td>
</tr>
<tr>
<td colspan="2">
Directory where tomcat is installed.
</td>
</tr>
<tr class="odd_row">
<td>
tomcat.home
</td>
<td>
/usr/local/tomcat
</td>
</tr>
<tr>
<td colspan="2">
Name of your VIVO application.
</td>
</tr>
<tr class="odd_row">
<td>
webapp.name
</td>
<td>
vivo
</td>
</tr>
<tr>
<td colspan="2">
Directory where uploaded files will be stored. You must create this directory ahead of time.
</td>
</tr>
<tr class="odd_row">
<td>
upload.directory
</td>
<td>
/usr/local/vivo/data/uploads
</td>
<tr>
<td colspan="2">
Directory where the Lucene search index will be built. Depending on your
permissions and who Tomcat is running as, you may need to create this directory
ahead of time.
</td>
</tr>
<tr class="odd_row">
<td>
LuceneSetup.indexDir
</td>
<td>
/usr/local/vivo/data/luceneIndex
</td>
</tr>
<tr>
<td colspan="2">
Specify an SMTP host that the form will use for sending e-mail (Optional). If
this is left blank, the contact form will be hidden and disabled.
</td>
</tr>
<tr class="odd_row">
<td>
Vitro.smtpHost
</td>
<td>
smtp.servername.edu
</td>
</tr>
<tr>
<td colspan="2">
Specify the JDBC URL of your database. Change the end of theURL to reflect your
database name (if it is not "vivo").
</td>
</tr>
<tr class="odd_row">
<td>
VitroConnection.DataSource.url
</td>
<td>
jdbc:mysql://localhost/vivo
</td>
</tr>
<tr>
<td colspan="2">
Change the username to match the authorized user you created in MySQL.
</td>
</tr>
<tr class="odd_row">
<td>
VitroConnection.DataSource.username
</td>
<td>
username
</td>
</tr>
<tr>
<td colspan="2">
Change the password to match the password you created in MySQL.
</td>
</tr>
<tr class="odd_row">
<td>
VitroConnection.DataSource.password
</td>
<td>
password
</td>
</tr>
<tr>
<td colspan="2">
Specify the name of your first admin user for the VIVO application. This user
will have an initial temporary password of 'defaultAdmin'. You will be prompted to
create a new password on first login.
</td>
</tr>
<tr class="odd_row">
<td>
initialAdminUser
</td>
<td>
defaultAdmin
</td>
</tr>
<tr>
<td colspan="2">
The name of a property that can be used to associate an Individualwith a user
account. When a user logs in with a name that matches the value of this property,
the user will be authorized to editthat Individual.
</td>
</tr>
<tr class="odd_row">
<td>
selfEditing.idMatchingProperty
</td>
<td>
http://vivo.mydomain.edu/ns#networkId
</td>
</tr>
2011-01-14 17:02:11 +00:00
<tr>
<td>
Temporal Graph Visualization is used to compare different organizations/people within
an organization on different parameters like number of publications, grants. This parameter will be
used as a default in case a URI is not provided. It will be also used whenever this visualization is to be rendered for top level organization.
In absence of this parameter a SPARQL query will be fired which will attempt to provide a top level organization.The name 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.
</td>
</tr>
<tr class="odd_row">
<td>
visualization.topLevelOrg
</td>
<td>
http://vivo-trunk.indiana.edu/individual/topLevelOrgURI
</td>
</tr>
</table>
<h3 id="deploy">V. Compile and deploy</h3>
<p>
At the command line, from the top level of the unpacked distribution
directory, type:
</p>
2011-01-14 17:02:11 +00:00
<pre>
ant all
2011-01-14 17:02:11 +00:00
</pre>
<p>
to build VIVO and deploy to Tomcat's webapps
directory.
</p>
<h3 id="tomcat_settings">VI. Set Tomcat JVM parameters and security limits</h3>
<p>
Currently, VIVO copies the contents of your RDF database into memory
2011-01-14 17:02:11 +00:00
in order to serve Web requests quickly (the in-memory copy and the
underlying databaseare kept in synch as edits are performed).
<p>
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.
<br/>
For example:
</p>
2011-01-14 17:02:11 +00:00
<pre>
export CATALINA_OPTS="-Xms2048m -Xmx1024m -XX:MaxPermSize=128m"
2011-01-14 17:02:11 +00:00
</pre>
<p>
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.
</p>
<p>
If an OutOfMemoryError is
encountered during VIVO execution, it can be remedied by increasing the
heap parameters and restarting Tomcat.
</p>
<p>
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":
</p>
2011-01-14 17:02:11 +00:00
<pre>
apache hard nproc 400
tomcat6 hard nproc 1500
</pre>
<h3 id="start_tomcat">VII. Start Tomcat </h3>
<p>
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
catalina.out file in Tomcat's logs directory.
</p>
<h3 id="add_rdf">VIII. Log in and add RDF data </h3>
<p>
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 <em>initialAdminUser</em>
username you set up in Step IV. The initial password for the <em>initialAdminUser</em>
account is "defaultAdmin" (without the quotes). On first login, you will be
prompted to select a new password and verify it a second time.
</p>
<p>
After verifying your new password, you will be presented with a menu of
editing options. Here you can create OWL classes, object properties,
2011-01-14 17:02:11 +00:00
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 a number of visibility and display options
available for each ontology entity. VIVO comes with a core VIVO
2011-01-14 17:02:11 +00:00
ontology, but you may also upload other ontologies from an RDF
file.
</p>
<p>
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 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."
</p>
2011-01-14 17:02:11 +00:00
<p>
Clicking the "Index" tab in the navigation bar at the top left of
the page will show a simple index of the knowledge base.
</p>
<p>
See more
documentation for configuring VIVO, ingesting data, and manually adding
data at <a href="http://vivoweb.org/support">http://vivoweb.org/support</a>.
</p>
</p>
<h3 id="contact_email">IX. Set the Contact Email Address (if using "Contact Us" form)</h3>
<p>
If you have configured your application to use the "Contact Us"
feature in Step IV (<em>Vitro.smtpHost</em>), you will also need to add an email address
to the VIVO application.&nbsp; This is the email that the contact form
submits to. It can be a list server or an individual's
email address.
</p>
<p>
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").&nbsp; In the
"Site Information Editing Form," enter a functional email address in
the field "Contact Email Address." and submit the change.
</p>
<p>
If you set the<em>Vitro.smtpHost</em>
in Step IV and do NOT provide an email addressin this
step, your users will receive a java error in the interface.
</p>
<h3 id="tomcat_connector">X. Set up Apache Tomcat Connector </h3>
<p>
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).
</p>
<p>
This will make VIVO available at "http://example.com" instead of
"http://example.com:8080/vivo"
</p>
<p>
Using the mod_jk connector allows for communication between Tomcat
2011-01-14 17:02:11 +00:00
and the primary web server. The <a href="http://tomcat.apache.org/connectors-doc/generic_howto/quick.html">Quick
Start HowTo</a>
on the Apache site describes the minimum server configurations
for several popular web servers.
</p>
<p>
After setting up the mod_jk connector above, you will need to
modify the Tomcat's server.xml ([tomcat root]/conf/) to respond to
requests from Apache via the connector. Look for the
&lt;connector&gt; directive and add the following properties:
</p>
2011-01-14 17:02:11 +00:00
<pre>
connectionTimeout="20000" maxThreads="320" keepAliveTimeout="20000"&nbsp;
2011-01-14 17:02:11 +00:00
</pre>
<p>
Note: the value for maxThreads (320) is equal to the value for MaxClients
in the apache's "httpd.conf" file.
</p>
<p>
Locate the &lt;Host name="localhost"...&gt; directive and update as
follows:
</p>
2011-01-14 17:02:11 +00:00
<!-- ELLY IS WORKING HERE. -->
<pre>
2011-01-14 17:02:11 +00:00
&lt;Host name="localhost" appBase="webapps"
DeployOnStartup="false"
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false"&gt;
&lt;Alias&gt;example.com&lt;/Alias&gt;
&lt;Context path=""
docBase="/usr/local/tomcat/webapps/vivo"
reloadable="true"
2011-01-14 17:02:11 +00:00
cookies="true" &gt;
&lt;Manager pathname="" /&gt;
&lt;Environment type="java.lang.String" override="false"
name="path.configuration"
value="deploy.properties"
2011-01-14 17:02:11 +00:00
/&gt;
&lt;/Context&gt;
...
</pre>
<h3 id="pellet">XI. Configure Pellet Reasoner </h3>
2011-01-14 17:02:11 +00:00
<p><em>Do we need this section still? - elly</em></p>
<p>VIVO uses the Pellet engine to perform reasoning, which runs in the
background at startup and also when the knowledge base is edited. VIVO
continues serving pages while the reasoner continues working; when the
reasoner finishes, the new inferences appear. Inferred statements are
cached in a database graph so that they are available immediately when
2011-01-14 17:02:11 +00:00
VIVO is restarted.</p>
<p>By default, Pellet is fed only an incomplete view of
your ontology and only certain inferences are materialized. These
include rdf:type,&nbsp; rdfs:subClassOf,owl:equivalentClass, and
owl:disjointWith. This mode is typically suitable for ontologies with a
lot of instance data.&nbsp; If you would like to keep the default mode,
2011-01-14 17:02:11 +00:00
skip to the next step. </p>
<p>
To enable "complete" OWL inference (materialize
all significant entailed statements), open
"vitro-core/webapp/config/web.xml" and search for PelletReasonerSetup.
</p>
<p>Then change the name of the listener class to
PelletReasonerSetupComplete. Because "complete" reasoning can be very
resource intensive, there is also an&nbsp; option to materialize nearly
2011-01-14 17:02:11 +00:00
all inferences except owl:sameAs and owl:differentFrom. </p>
<p>This is enabled
by specifying PelletReasonerSetupPseudocomplete. For ontologies with
large numbers of individuals, this mode can offer enormous performance
2011-01-14 17:02:11 +00:00
improvements over the "complete" mode. </p>
<p>Finally, a class called
PelletReasonerSetupPseudocompleteIgnoreDataproperties is provided to
improve performance on ontologies with large literals where data
2011-01-14 17:02:11 +00:00
property entailments are not needed.</p>
</p>
<h3 id="external_auth">XII. Using an External Authentication System with VIVO </h3>
<p>
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&nbsp; 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&nbsp; 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&nbsp; 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<65><72>&Ntilde;<EFBFBD>&yen;s network
ID When a user completes the authentication process, the Apache server
will put the user<65><72>&Ntilde;<EFBFBD>&yen;s network ID into one of the headers
of the HTTP request.&nbsp; The instructions from your institution
should tell you which header is used for this purpose.&nbsp; 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
ShibbolethThe VIVO login form will display a button labelled
<20><>&Ntilde;úLog in using BearCat Shibboleth<74><68>&Ntilde;ù.* 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&nbsp; the user
may edit his own profile data. VIVO will search the data model for a
person with a property that matches the User<65><72>&Ntilde;<EFBFBD>&yen;s network
ID.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
</p>
<h3 id="installation_check">XIII. Was the installation successful? </h3>
<p>
If you have completed the previous steps, you have good indications
that the installation was successful.&nbsp; * 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 left, below
the logo. You should seea "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
initialAdminUser username 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.&nbsp; 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 tothe 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 theprevious
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. * The
search box is on the right side, directly opposite the "Index" link.
Type the word "Australia" into the 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.
</p>
</div>
<!-- #wrapper-content -->
<footer role="contentinfo">
<p class="copyright">
<small>
&copy;2011
All Rights Reserved | <a class="terms" href="/termsOfUse">Terms of Use</a>
</small>
| Powered by <a class="powered-by-vivo" href="http://vivoweb.org" target="_blank"><strong>VIVO</strong></a>
</p>
<nav role="navigation">
<ul id="footer-nav" role="list">
<li role="listitem">
<a href="http://vivoweb.org/about">About</a>
</li>
<li role="listitem">
<a href="http://vivoweb.org/contact">Contact Us</a>
</li>
<li role="listitem">
<a href="http://www.vivoweb.org/support" target="blank">Support</a>
</li>
</ul>
</nav>
</footer>
</body>
</html>