Namestitev SubmitServer » History » Version 4

« Previous - Version 4/6 (diff) - Next » - Current version
Gašper Fele-Žorž, 04.02.2011 19:22


Namestitev SubmitServer

Najprej namestimo potrebne dodatne pakete:

apt-get install tomcat6 mysql-server subversion ant liblog4j1.2-java libmysql-java

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

Nato dodamo userja in ustvarimo podatkovno bazo na mysql:

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';

Preverimo, če baza deluje:

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> 

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

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

Č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:

<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>

Ustvarimo tabele v bazi:

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

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

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

Nato izvedemo:

mysql -u marmoset -p -e "source bootstrap.sql" -D marmoset

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

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

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

/etc/tomcat6/catalina.properties
tako, da k common.loader dodamo ",/usr/share/java/*.jar":
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

Med nastavitve Tomcata dodamo podatke o podatkovni bazi, na katero se SubmitServer povezuje. To storimo tako, da v

/etc/tomcat6/web.xml
dodamo nekaj vnosov "<context-param>".
Konec datoteke potem izgleda takole:

    <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>

Ponovno zaženemo Tomcat:

bober:/home/polz/marmoset/SubmitServer/trunk/SubmitServer2# /etc/init.d/tomcat6 restart

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 . Vseeno na hitro povzetek.

Najprej ustvarimo ključe:

bober:~# keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/share/tomcat6/.keystore

Geslo si seveda zapomnimo.

Nato nastavimo tomcat, da jih uporabi. To storimo tako, da v

/etc/tomcat6/server.xml
odkomentiramo in dodamo geslo v odsek:

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

Ponovno zaženemo Tomcat:

bober:/home/polz/marmoset/SubmitServer/trunk/SubmitServer2# /etc/init.d/tomcat6 restart

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