Namestitev SubmitServer » History » Version 5

Version 4 (Gašper Fele-Žorž, 04.02.2011 19:22) → Version 5/6 (Gašper Fele-Žorž, 07.02.2011 12:53)

h1. Namestitev SubmitServer

Najprej namestimo potrebne dodatne pakete:

<pre>
apt-get install tomcat6 mysql-server subversion ant liblog4j1.2-java libmysql-java
</pre>

Geslo za root mysql je na marmoset.fri.uni-lj.si enako geslu za root sicer.

Nato "dodamo userja":http://dev.mysql.com/doc/refman/5.1/en/adding-users.html in "ustvarimo podatkovno bazo":http://dev.mysql.com/doc/refman/5.0/en/create-database.html na mysql:

<pre>
shell> mysql -u root -p
mysql> create user 'marmoset'@'localhost' identified by 'malaopica';
mysql> create database marmoset character set = utf8;
mysql> grant all privileges on marmoset.* to 'marmoset'@'localhost';
</pre>

Popravimo /etc/mysql/my.cnf po vzorcu:
<pre>
[mysqld]
character-set-server = utf8

[client]
default-character-set = utf8
</pre>

Bazo kot root ponovno zaženemo z:
<pre>
/etc/init.d mysql
</pre>
Preverimo, če baza deluje:

<pre>
polz@bober:~$ mysql -u marmoset -p -D marmoset
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.1.49-3 (Debian)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
</pre>

Če deluje, lahko iz svn repozitorija poberemo marmoset. Uporabimo kopijo, ki je na redmine.

<pre>
polz@bober:~$ svn co https://lusy.fri.uni-lj.si/svn/marmoset/
</pre>

Če bi slučajno kdo še hotel uporabiti marmoset iz git snapshota, potlej bi moral
popraviti še datoteko "build.xml" - iz neznanega razloga developerji niso hoteli,
da bi se v .war spravila celotna aplikacija. Popraviti je torej treba pravilo
"war", da potlej izgleda takole:

<pre>
<war
destfile="${dist}/${warfile}"
webxml="WebRoot/WEB-INF/web.xml"
>
<fileset dir="WebRoot">
<!--
<exclude name="WEB-INF/classes/edu/umd/cs/submitServer/shared/*class"/>
<exclude name="WEB-INF/lib/log4j.jar"/>
-->
</fileset>
</war>
</pre>

Ustvarimo tabele v bazi:

<pre>
polz@bober:~/marmoset$ cd SubmitServerModelClasses/trunk/SubmitServerModelClasses/dbScripts/
polz@bober:~/marmoset/SubmitServerModelClasses/trunk/SubmitServerModelClasses/dbScripts$ mysql -u marmoset -p -e "source marmoset-schema.sql" -D marmoset
polz@bober:~/marmoset/SubmitServerModelClasses/trunk/SubmitServerModelClasses/dbScripts$ mysql -u marmoset -p -e "source sql-patches/project-starter-file-archives.sql"
-D marmoset
</pre>

Ustvarimo uporabnika v bazi. Najprej popravimo bootstrap.sql, ki vsebuje nekaj takega:

<pre>
INSERT INTO students
VALUES (DEFAULT, 'USERNAME', 'UNIKATNA_ID_ŠTEVILKA', 'IME', 'PRIIMEK', 'yes', DEFAULT, DEFAULT, DEFAULT, 'GESLO');
</pre>

Nato izvedemo:
<pre>
mysql -u marmoset -p -e "source bootstrap.sql" -D marmoset
</pre>

Namestimo SubmitServer na Tomcat - pred tem lahko popravimo local.properties, kjer je mogoče nastaviti direktorij,
v katerega se marmoset namesti. V svn je različica, ki ima ta direktorij nastavljen na /var/lib/tomcat6

<pre>
polz@bober:~/marmoset# cd SubmitServer/trunk/SubmitServer2/
polz@bober:~/marmoset/SubmitServer/trunk/SubmitServer2# ant production.install
</pre>

Nastavimo Tomcat tako, da bo classe iskal tudi v direktoriju, kjer je večina javanskih knjižnic. SubmitServer namreč od tam potrebuje log4j knjižnico. Popravimo datoteko
<pre>/etc/tomcat6/catalina.properties</pre> tako, da k common.loader dodamo ",/usr/share/java/*.jar":
<pre>
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,/var/lib/tomcat6/common/classes,/var/lib/tomcat6/common/*.jar,/usr/share/java/*.jar
</pre>

Med nastavitve Tomcata dodamo podatke o podatkovni bazi, na katero se SubmitServer povezuje. To storimo tako, da v <pre>/etc/tomcat6/web.xml</pre> dodamo nekaj vnosov "<context-param>".
Konec datoteke potem izgleda takole:

<pre>
<context-param>
<param-name>authentication.service</param-name>
<param-value>edu.umd.cs.submitServer.GenericStudentPasswordAuthenticationService</param-value>
</context-param>
<context-param>
<param-name>database.server.jdbc.url</param-name>
<param-value>jdbc:mysql://localhost/marmoset</param-value>
</context-param>
<context-param>
<param-name>database.user</param-name>
<param-value>marmoset</param-value>
</context-param>
<context-param>
<param-name>database.password</param-name>
<param-value>malaopica</param-value>
</context-param>
<context-param>
<param-name>database.driver</param-name>
<param-value>org.gjt.mm.mysql.Driver</param-value>
</context-param>
</web-app>
</pre>

Ponovno zaženemo Tomcat:
<pre>
bober:/home/polz/marmoset/SubmitServer/trunk/SubmitServer2# /etc/init.d/tomcat6 restart
</pre>

Bravo! S tem je SubmitServer v principu nameščen. Zakaj le v principu? Zato, ker je treba omogočiti dostop do njega prek https.
Postopek je opisan "tukaj":http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html . Vseeno na hitro povzetek.

Najprej ustvarimo ključe:
<pre>
bober:~# keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat6/.keystore
</pre>

Geslo si seveda zapomnimo.

Nato nastavimo tomcat, da jih uporabi. To storimo tako, da v <pre>/etc/tomcat6/server.xml</pre> odkomentiramo in dodamo geslo v odsek:

<pre>
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystorePass="GESLO" URIEncoding="UTF-8"
clientAuth="false" sslProtocol="TLS" />
</pre>

Ponovno zaženemo Tomcat:
<pre>
bober:/home/polz/marmoset/SubmitServer/trunk/SubmitServer2# /etc/init.d/tomcat6 restart
</pre>

Če kaj ne deluje, si razčesnemo glavo.