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';
Popravimo /etc/mysql/my.cnf po vzorcu:
[mysqld] character-set-server = utf8 [client] default-character-set = utf8
Bazo kot root ponovno zaženemo z:
/etc/init.d mysql
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:~/.../dbScripts$ mysql -u marmoset -p -e "source marmoset-schema.sql" -D marmoset polz@bober:~/.../dbScripts$ mysql -u marmoset -p -e "source sql-patches/project-starter-file-archives.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.propertiestako, 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.xmldodamo 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.xmlodkomentiramo 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.
Updated by Gašper Fele-Žorž almost 14 years ago · 6 revisions