Project

General

Profile

1 3956 tao
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4
<html xmlns="http://www.w3.org/1999/xhtml">
5
<head>
6
  <meta http-equiv="Content-Type" content=
7
  "text/html; charset=us-ascii" />
8
  <meta name="generator" content="pandoc" />
9
  <style type="text/css">
10
/*<![CDATA[*/
11
  ol.decimal { list-style-type: decimal; }
12 4607 walbridge
	li { padding-bottom: 5px; }
13
	blockquote {
14
		background-color: #f5f5f5;
15
		margin: 10px 15px 5px 20px;
16
		padding: 1px 0px 1px 10px;
17
	}
18
19
	.keyword {
20
		color: #00008b;
21
	}
22
23
	.type {
24
		color: #2b91af;
25
	}
26
27
	.string {
28
		color: #810541;
29
	}
30
31 3956 tao
  /*]]>*/
32
  </style>
33
34
  <title>Metacat Install - Registry</title>
35
  <link rel="stylesheet" type="text/css" href="default.css" />
36
</head>
37
38
<body>
39
  <table class="tabledefault" width="100%">
40
    <tr>
41
      <td rowspan="2"><img src="images/KNBLogo.gif" /></td>
42
43
      <td colspan="7">
44
        <div class="title">
45
          Metacat Installation - Registry
46
        </div>
47
      </td>
48
    </tr>
49
50
    <tr>
51
      <td><a href="/" class="toollink">KNB Home</a></td>
52
53
      <td><a href="/data.html" class="toollink">Data</a></td>
54
55
      <td><a href="/people.html" class="toollink">People</a></td>
56
57
      <td><a href="/informatics" class=
58
      "toollink">Informatics</a></td>
59
60
      <td><a href="/biodiversity" class=
61
      "toollink">Biocomplexity</a></td>
62
63
      <td><a href="/education" class="toollink">Education</a></td>
64
65
      <td><a href="/software" class="toollink">Software</a></td>
66
    </tr>
67
  </table>
68
  <hr />
69
70
  <table class="tabledefault" width="100%">
71
    <tr>
72
      <td class="tablehead" colspan="2">
73
        <p class="emphasis">Installing the Metacat Registry</p>
74
      </td>
75
    </tr>
76
77
    <tr>
78
      <td>Author: Shaun Walbridge<br />
79
      Date: 06/06/2008<br /></td>
80
    </tr>
81
  </table>
82
83
  <h1 id="registry-installation">Registry Installation</h1>
84
85
  <h2 id="whats-it-for">What's it for?</h2>
86
87
  <p>The Metacat Registry provides an easy mechanism to create and
88
  edit simple EML metadata documents, and accounts for your Metacat
89
  users. It is an optional component of Metacat, but is useful when
90
  you need very low barriers to creating simple EML, or have users
91
  unable to use Morpho. The LDAP account management interface is
92
  useful if you are authenticating users against LDAP, and need to
93
  provide a basic mechanism for managing user accounts.</p>
94
95
  <h2 id="installation-instructions">Installation Instructions</h2>
96
97
  <p>The Registry can be installed on any machine Metacat runs on,
98
  but does require additional legwork to get it installed. It
99
  requires that Metacat is set deployed behind Apache, as our
100
  recommended installation platform, and the instructions assume
101
  Apache is already installed and working correctly.</p>
102
103
  <h2 id="steps">Steps</h2>
104
105
  <ol class="decimal">
106
    <li>
107
      <p>Download and extract the Metacat release:</p>
108 4607 walbridge
      <blockquote>
109
<pre><span class="type">mkdir</span> metacat &amp;&amp; cd metacat
110
<span class="type">wget</span> http://knb.ecoinformatics.org/software/dist/metacat-src-1.8.0.zip
111
<span class="type">unzip</span> metacat-src-1.8.0.zip
112
<span class="type">cd</span> metacat-1.8.0
113
<span class="type">export</span> METACAT=`pwd`
114 3956 tao
</pre>
115 4607 walbridge
</blockquote>
116 3956 tao
    </li>
117
118
    <li>
119
      <p>Build the Metacat Perl client library:</p>
120 4607 walbridge
      <blockquote>
121
<pre><span class="type">cd</span> $METACAT/src/perl/Metacat
122
<span class="type">perl</span> Makefile.PL
123
<span class="type">sudo make</span>
124
<span class="type">sudo make install</span>
125 3956 tao
</pre>
126 4607 walbridge
</blockquote>
127 3956 tao
    </li>
128
129
    <li>
130 4607 walbridge
      <p>Install the system libraries needed. On Redhat:
131
      <blockquote>
132
<pre><span class="type">sudo yum install</span> gcc libxml2-devel libxslt-devel ant -y
133 3956 tao
</pre>
134 4607 walbridge
</blockquote>
135 3956 tao
136 4607 walbridge
      On Debian:
137
      <blockquote>
138
			<pre>
139
<span class="type">sudo apt-get install</span> ant libappconfig-perl libxml-libxml-perl libxml-libxslt-perl \
140
libtemplate-perl libcgi-session-perl libdigest-sha1-perl libnet-ldap-perl \
141
libterm-readkey-perl libxml-dom-perl libsoap-lite-perl -y
142
</pre>
143
</blockquote>
144 4366 daigle
	  You will need to install one package using cpan
145 4607 walbridge
      <blockquote><pre><span class="type">sudo cpan</span> -i Config::Properties</pre></blockquote>
146 4366 daigle
147 4607 walbridge
      Debian users should skip ahead to step 7.
148 4009 walbridge
</p>
149 3956 tao
    </li>
150
151
    <li>
152
      <p>Install CPAN, which allows us to install the Perl
153
      dependencies for the registry and account management parts of
154
      Metacat. If asked to manually configure cpan, type 'no' and
155
      CPAN will be setup with its default values.</p>
156 4607 walbridge
      <blockquote>
157
<pre><span class="type">sudo yum install</span> perl-CPAN
158
<span class="type">sudo cpan</span>
159 3956 tao
</pre>
160 4607 walbridge
</blockquote>
161 3956 tao
162
      <p>You should now see a prompt which looks like:</p>
163 4607 walbridge
      <blockquote>
164
<pre><span class="string">cpan&gt;</span>
165 3956 tao
</pre>
166 4607 walbridge
</blockquote>
167 3956 tao
168
      <p>The rest of the commands will assume you're inside of
169
      CPAN. Let's get the most recent version of the CPAN software.
170
      Just press return after any prompts you recieve during this
171
      process.</p>
172 4607 walbridge
      <blockquote>
173
<pre>install Bundle::CPAN
174
reload cpan
175 3956 tao
</pre>
176 4607 walbridge
</blockquote>
177 3956 tao
    </li>
178
179
    <li>
180
      <p>Install the required modules. Here we're installing an old
181
      LibXSLT, as the current one requires a newer libxslt than is
182
      available on Redhat 4 &amp; 5. Again, just answer 'yes' to
183
      any questions.</p>
184 4607 walbridge
      <blockquote>
185
<pre>install AutoLoader
186 3956 tao
install CGI
187
install CGI::SEssion
188 4009 walbridge
install LWP::UserAgent
189 3956 tao
install Net::LDAP
190
install Template
191
install URI
192
install MSERGEANT/XML-LibXSLT-1.58.tar.gz
193
</pre>
194 4607 walbridge
</blockquote>
195 3956 tao
    </li>
196
197
    <li>
198
      <p>As part of the Metacat setup, a property called
199
      'inst.cgi.dir' is set, which controls the location the perl
200
      scripts will be installed into, with a default of
201
      '/var/www/cgi-knb'. To install the registry and the account
202
      manager to this folder we'll run ant:</p>
203 4607 walbridge
      <blockquote>
204
<pre><span class="type">cd</span> $METACAT
205
<span class="type">sudo ant</span> install-registry
206
<span class="type">sudo ant</span> insall-ldap
207 3956 tao
</pre>
208 4607 walbridge
</blockquote>
209 3956 tao
    </li>
210
211
    <li>
212
      <p>A registry instance can support one or more skins. Skins
213
      provide a mechanism for giving a custom look to your Metacat
214
      installation, but require integration work to initially
215 4607 walbridge
      create. For this example, we'll use the <pre>nceas</pre>
216 3956 tao
      skin provided with Metacat. First, we'll want to install the
217
      skin:</p>
218 4607 walbridge
      <blockquote>
219
<pre><span class="type">sudo ant</span> install-skin
220 3956 tao
</pre>
221 4607 walbridge
</blockquote>
222 3956 tao
223 4607 walbridge
      <p>When prompted, type <pre><span class="string">nceas</span></pre>.</p>
224 3956 tao
    </li>
225
226
    <li>
227 4366 daigle
      <p>Metacat uses the 'application.tempDir' property from
228
      metacat.properties to set a temporary
229 3956 tao
      space to store uploaded files. If you'd like your registry to
230
      allow file uploads, we'll need to make sure Apache can write
231
      to it. The apache user varies from machine to machine, but
232 4607 walbridge
      typically it will be either
233
			<pre><code>www-data</code> or <code>apache</code></pre>.
234
			Once finding your appropriate apache
235 3956 tao
      user, we'll want to change ownership of a few files, here
236
      using the user <code>apache</code>:</p>
237 4607 walbridge
      <blockquote>
238
<pre><span class="type">sudo chown</span> apache /tmp/knb
239 3956 tao
</pre>
240 4607 walbridge
</blockquote>
241 3956 tao
242
      <p>Each skin has a 'lastid' file, which controls which the
243
      accession numbers metacat generates. As with the temporary
244
      folder, we'll want the registry to be able to write to this
245
      file, replacing the skin name with the skin you're planning
246
      on using:</p>
247 4607 walbridge
      <blockquote>
248
<pre>sudo touch /var/www/org.ecoinformatics.knb/knb/style/skins/nceas/nceas.lastid
249 3956 tao
sudo chown apache /var/www/org.ecoinformatics.knb/knb/style/skins/nceas/nceas.lastid
250
</pre>
251 4607 walbridge
</blockquote>
252 3956 tao
253
      <p>You'll need to have one lastid file for each skin your
254
      site will support.</p>
255
    </li>
256
257
    <li>
258
      <p>Configure Apache to serve up the pages we've just
259
      configured. In your httpd.conf or equivalent, add:</p>
260 4607 walbridge
      <blockquote>
261
<pre>ScriptAlias /cgi-bin/ "/var/www/cgi-knb/"
262 3956 tao
&lt;Directory "/var/www/cgi-knb"&gt;
263
    AllowOverride None
264
    Options ExecCGI
265
    Order allow,deny
266
    Allow from all
267
&lt;/Directory&gt;`
268
</pre>
269 4607 walbridge
</blockquote>
270 3956 tao
271
      <p>Then reload Apache:</p>
272 4607 walbridge
      <blockquote>
273
<pre>/etc/init.d/httpd reload
274 3956 tao
</pre>
275 4607 walbridge
</blockquote>
276 3956 tao
    </li>
277
278
    <li>
279
      <p>Change owner and access permission of some credential files:</p>
280 4607 walbridge
      <blockquote>
281
<pre>cd /webapps/knb/style/skins/</pre>
282
<pre>find . -name "*.cfg" -exec chmod 600 {} \;</pre>
283
<pre>find . -name "*.cfg" -exec chown apache {} \;</pre>
284
</blockquote>
285 3956 tao
286
<p>Note: "/webapps/knb" is subject to change base on your configuration.</p>
287 4607 walbridge
<p>         "apache" user is the one who runs httpd server.</p>
288 3956 tao
289
      <p>Those commands will make the files which contain credentials are not accessible
290
      from web browsers. </p>
291
    </li>
292
293
    <li>
294
      <p>Now visit the resulting URL:</p>
295 4607 walbridge
      <blockquote>
296
<pre>http://localhost/cgi-bin/register-dataset.cgi?cfg=nceas
297 3956 tao
</pre>
298 4607 walbridge
</blockquote>
299 3956 tao
300
      <p>If everything worked correctly, you should see a page like
301
      this: <img src="images/registry-login.jpg" alt=
302
      "Registry Login Page" /></p>
303
    </li>
304
  </ol>
305
306
  <h2 id="installing-the-nceas-registry">Installing the NCEAS
307
  Registry</h2>
308
309
  <p>These are special instructions required for the NCEAS skin to
310
  get a current projects list from the AdminDB, and can safely be
311
  ignored in all other uses.</p>
312
313
  <ol class="decimal">
314
    <li>
315
      <p>Download and install the Oracle Instant Client RPMs. These
316
      can be obtained from the <a href=
317
      "http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html">
318
      oracle website</a>.</p>
319 4607 walbridge
      <blockquote>
320
<pre>rpm -i oracle-instantclient-basic-10.2.0.3-1.i386.rpm
321 3956 tao
rpm -i oracle-instantclient-devel-10.2.0.3-1.i386.rpm
322
rpm -i oracle-instantclient-sqlplus-10.2.0.3-1.i386.rpm
323
</pre>
324 4607 walbridge
</blockquote>
325 3956 tao
    </li>
326
327
    <li>
328 4607 walbridge
      <p>Next, we'll need an <pre>tnsnames.ora</pre> file for
329 3956 tao
      Oracle to locate the server we're connecting to. In this
330
      example, we'll copy it from a remote location:</p>
331 4607 walbridge
      <blockquote>
332
<pre>mkdir -p /usr/lib/oracle/10.2.0.3/network/admin/ &amp;&amp; cd !$
333 3956 tao
scp walbridge@knb.ecoinformatics.org:/usr/lib/oracle/10.1.0.4/network/admin/tnsnames.ora .
334
</pre>
335 4607 walbridge
</blockquote>
336 3956 tao
    </li>
337
338
    <li>
339
      <p>The AdminDB is accessed via Perl, so install the needed
340
      Oracle driver using CPAN:</p>
341 4607 walbridge
      <blockquote>
342
<pre>cpan
343 3956 tao
install DBI
344
install DBD::Oracle
345
</pre>
346 4607 walbridge
</blockquote>
347 3956 tao
    </li>
348
349
    <li>
350
      <p>Now we can install the AdminDB module itself:</p>
351 4607 walbridge
      <blockquote>
352
<pre>mkdir -p ~/projects/admindb &amp;&amp; cd !$
353 3956 tao
export CVSROOT=:ext:walbridge@cvs.nceas.ucsb.edu:/cvsnceas
354
cvs co admindb
355
cd admindb/perl/NCEAS/AdminDB
356
perl Makefile.PL
357
make
358
sudo make install
359
</pre>
360 4607 walbridge
</blockquote>
361 3956 tao
    </li>
362
363
    <li>
364
      <p>Finally, set the correct properties in the
365 4607 walbridge
      <pre>nceas.cfg</pre> file:</p>
366
      <blockquote>
367
<pre>nceas_db = //hyperion.nceas.ucsb.edu:1521/nceasp.nceas.ucsb.edu
368 3956 tao
nceas_db_user = admowner
369
nceas_db_password = NCEAS_DB_READ_PASSWORD_HERE
370
</pre>
371 4607 walbridge
</blockquote>
372 3956 tao
    </li>
373
374
    <li>
375 4607 walbridge
      <p>A quick check of <pre>register-dataset.cgi</pre> should
376 3956 tao
      now show a complete list of projects: <img src=
377
      "images/registry-nceas-projects.png" alt=
378
      "NCEAS Project list" /></p>
379
    </li>
380
  </ol>
381
382
  <h2 id="notes">Notes</h2>
383
384
  <p>Redhat based, tested on Centos 5</p>
385
386
  <p>Debian based, tested on Ubuntu 8.04</p>
387
</body>
388
</html>