ProcksiFramework » History » Version 1

Anonymous, 09/14/2007 10:34 AM

1 1 Anonymous
= ProCKSI Framework =
2 1 Anonymous
(needs to be updated)
3 1 Anonymous
4 1 Anonymous
== Installation and Basic Configuration ==
5 1 Anonymous
This section describes the installation and configuration of the ProCKSI server component. This includes the configuration of the web server and the database.
6 1 Anonymous
7 1 Anonymous
The server component will be installed into the home directory of the user ''procksi''. Therefore, make sure that it is on a separate partition / hard disk with much space. In the best case, this will be a RAID system.
8 1 Anonymous
9 1 Anonymous
Get the latest release of the server component, referred to in the following as ''RELEASE'', and extract it into ''/home/procksi/RELEASE.'' 
10 1 Anonymous
{{{
11 1 Anonymous
tar -xvzf RELEASE.tgz
12 1 Anonymous
}}}
13 1 Anonymous
14 1 Anonymous
Create a softlink from ''RELEASE'' to a generic directory ''/home/procksi/latest''. This will be accessed by the web server:
15 1 Anonymous
{{{
16 1 Anonymous
ln -s /home/procksi/RELEASE /home/procksi/latest
17 1 Anonymous
}}}
18 1 Anonymous
19 1 Anonymous
In order to test new versions, referred in the following as ''TEST'', before taking them officially online, create a softlink from ''TEST'' to a generic directory ''/home/procksi/test''. This will be accessed by the web server:
20 1 Anonymous
{{{
21 1 Anonymous
ln -s /home/procksi/TEST /home/procksi/test
22 1 Anonymous
}}}
23 1 Anonymous
24 1 Anonymous
In case that you want to bring the test version online, just delete the softlinks and repeat the previous steps for the new release. Please make sure that always both softlinks exist!
25 1 Anonymous
26 1 Anonymous
Change into the administrative directory and run the installation script. Change the server settings, database settings and directory settings if necessary.
27 1 Anonymous
{{{
28 1 Anonymous
cd /home/procksi/latest/admin
29 1 Anonymous
./configure.pl
30 1 Anonymous
}}}
31 1 Anonymous
32 1 Anonymous
33 1 Anonymous
   
34 1 Anonymous
35 1 Anonymous
36 1 Anonymous
== Web Server Configuration ==
37 1 Anonymous
Make the following changes to the Apache configuration file (''/etc/httpd/conf/httpd.conf''):
38 1 Anonymous
{{{
39 1 Anonymous
User  			procksi
40 1 Anonymous
Group 			procksi
41 1 Anonymous
ServerAdmin		procksi@cs.nott.ac.uk
42 1 Anonymous
ServerName 		procksi.cs.nott.ac.uk
43 1 Anonymous
DocumentRoot /home/procksi/latest/html
44 1 Anonymous
<Directory /home/procksi/latest/html">
45 1 Anonymous
   AllowOverride AuthConfig
46 1 Anonymous
</Directory>
47 1 Anonymous
LogFormat "%t %h %l %u \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
48 1 Anonymous
LogFormat "%t %h %l %u \"%r\" %>s %b" common
49 1 Anonymous
LogFormat "%t %{Referer}i -> %U" referer
50 1 Anonymous
LogFormat "%t %{User-agent}i" agent
51 1 Anonymous
52 1 Anonymous
#Exclude Logging of Ganglia Requests
53 1 Anonymous
SetEnvIf Request_URI "ganglia" ganglia
54 1 Anonymous
55 1 Anonymous
#
56 1 Anonymous
# The location and format of the access logfile (Common Logfile Format).
57 1 Anonymous
# If you do not define any access logfiles within a <VirtualHost>
58 1 Anonymous
# container, they will be logged here.  Contrariwise, if you *do*
59 1 Anonymous
# define per-<VirtualHost> access logfiles, transactions will be
60 1 Anonymous
# logged therein and *not* in this file.
61 1 Anonymous
#
62 1 Anonymous
63 1 Anonymous
CustomLog /home/procksi/latest/logs/access.log common env=!ganglia
64 1 Anonymous
65 1 Anonymous
#
66 1 Anonymous
# If you would like to have agent and referer logfiles, uncomment the
67 1 Anonymous
# following directives.
68 1 Anonymous
#
69 1 Anonymous
70 1 Anonymous
CustomLog /home/procksi/latest/logs/referer.log referer env=!ganglia
71 1 Anonymous
CustomLog /home/procksi/latest/logs/agent.log agent env=!ganglia
72 1 Anonymous
73 1 Anonymous
#
74 1 Anonymous
# For a single logfile with access, agent, and referer information
75 1 Anonymous
# (Combined Logfile Format), use the following directive:
76 1 Anonymous
#
77 1 Anonymous
#CustomLog logs/access_log combined env=!ganglia
78 1 Anonymous
79 1 Anonymous
ScriptAlias /cgi-bin/ /home/procksi/latest/cgi-bin/
80 1 Anonymous
81 1 Anonymous
<Directory "/home/procksi/latest/cgi-bin">
82 1 Anonymous
    AllowOverride None
83 1 Anonymous
    Options None
84 1 Anonymous
    Order allow,deny
85 1 Anonymous
    Allow from all
86 1 Anonymous
</Directory>
87 1 Anonymous
88 1 Anonymous
Alias  /data/ 	  /home/procksi/latest/data/
89 1 Anonymous
Alias  /images/   /home/procksi/latest/images/
90 1 Anonymous
Alias  /styles/   /home/procksi/latest/styles/
91 1 Anonymous
Alias  /applets/  /home/procksi/latest/applets/
92 1 Anonymous
Alias  /scripts/  /home/procksi/latest/scripts/
93 1 Anonymous
Alias  /ganglia/  /usr/local/ganglia/html/
94 1 Anonymous
95 1 Anonymous
#Redirection
96 1 Anonymous
Redirect /trac https://psiren.cs.nott.ac.uk/projects/procksi/
97 1 Anonymous
98 1 Anonymous
AddLanguage de .de
99 1 Anonymous
AddLanguage en .en
100 1 Anonymous
AddLanguage es .es
101 1 Anonymous
AddLanguage fr .fr 
102 1 Anonymous
LanguagePriority en es de fr
103 1 Anonymous
104 1 Anonymous
Alias /errordocs/ "/home/procksi/errordocs"
105 1 Anonymous
<IfModule mod_negotiation.c>
106 1 Anonymous
    <IfModule mod_include.c>
107 1 Anonymous
        <Directory /home/procksi/errordocs>
108 1 Anonymous
            AllowOverride none
109 1 Anonymous
            Options MultiViews IncludesNoExec FollowSymLinks
110 1 Anonymous
            AddType text/html .shtml
111 1 Anonymous
            <FilesMatch "\.shtml[.$]">
112 1 Anonymous
                SetOutputFilter INCLUDES
113 1 Anonymous
            </FilesMatch>
114 1 Anonymous
        </Directory>
115 1 Anonymous
116 1 Anonymous
        ErrorDocument 400 /errordocs/400_BAD_REQUEST
117 1 Anonymous
        ErrorDocument 401 /errordocs/401_UNAUTHORIZED
118 1 Anonymous
        ErrorDocument 403 /errordocs/403_FORBIDDEN
119 1 Anonymous
        ErrorDocument 404 /errordocs/404_NOT_FOUND
120 1 Anonymous
        ErrorDocument 405 /errordocs/405_METHOD_NOT_ALLOWED
121 1 Anonymous
        ErrorDocument 406 /errordocs/406_NOT_ACCEPTABLE
122 1 Anonymous
        ErrorDocument 408 /errordocs/408_REQUEST_TIMEOUT
123 1 Anonymous
        ErrorDocument 410 /errordocs/410_GONE
124 1 Anonymous
        ErrorDocument 411 /errordocs/411_LENGTH_REQUIRED
125 1 Anonymous
        ErrorDocument 412 /errordocs/412_PRECONDITION_FAILED
126 1 Anonymous
        ErrorDocument 413 /errordocs/413_REQUEST_ENTITY_TOO_LARGE
127 1 Anonymous
        ErrorDocument 414 /errordocs/414_REQUEST_URI_TOO_LARGE
128 1 Anonymous
        ErrorDocument 415 /errordocs/415_UNSUPPORTED_MEDIA_TYPE
129 1 Anonymous
        ErrorDocument 500 /errordocs/500_INTERNAL_SERVER_ERROR
130 1 Anonymous
        ErrorDocument 501 /errordocs/501_NOT_IMPLEMENTED
131 1 Anonymous
        ErrorDocument 502 /errordocs/502_BAD_GATEWAY
132 1 Anonymous
        ErrorDocument 503 /errordocs/503_SERVICE_UNAVAILABLE
133 1 Anonymous
        ErrorDocument 506 /errordocs/506_VARIANT_ALSO_VARIES
134 1 Anonymous
    </IfModule>
135 1 Anonymous
</IfModule>
136 1 Anonymous
137 1 Anonymous
<Location /server-status>
138 1 Anonymous
    SetHandler server-status
139 1 Anonymous
    Order deny,allow
140 1 Anonymous
    Deny from all
141 1 Anonymous
    Allow from .cs.nott.ac.uk
142 1 Anonymous
</Location>
143 1 Anonymous
144 1 Anonymous
<Location /server-info>
145 1 Anonymous
    SetHandler server-info
146 1 Anonymous
    Order deny,allow
147 1 Anonymous
    Deny from all
148 1 Anonymous
    Allow from .cs.nott.ac.uk
149 1 Anonymous
</Location>
150 1 Anonymous
}}} 
151 1 Anonymous
152 1 Anonymous
153 1 Anonymous
* Make the apache daemon start at bootup. Enter at the command line of the master node:
154 1 Anonymous
   {{{
155 1 Anonymous
   /sbin/chkconfig  --add httpd
156 1 Anonymous
   /sbin/chkconfig  httpd  on
157 1 Anonymous
   }}}
158 1 Anonymous
159 1 Anonymous
 * Start the apache daemon. Enter at the command line of the master node: 
160 1 Anonymous
   {{{
161 1 Anonymous
   /sbin/service  httpd  restart
162 1 Anonymous
   }}}
163 1 Anonymous
164 1 Anonymous
165 1 Anonymous
166 1 Anonymous
== Email Configuration ==
167 1 Anonymous
The ProCKSI server component send emails to the user for several occasions. In order to make sure that they are delivered correctly even when the internet is temporarily not available, a local SMTP server (''postfix'') is set up. This will accect emails from the private network only, store them temporarily (if necessary), and forward them to an email relay server.
168 1 Anonymous
169 1 Anonymous
170 1 Anonymous
171 1 Anonymous
Make sure that ''postfix'' is the default mailing software (and not ''sendmail''!).
172 1 Anonymous
{{{
173 1 Anonymous
system-switch-mail -activate postfix
174 1 Anonymous
}}}
175 1 Anonymous
176 1 Anonymous
Make the following changes to the ''postfix ''configuration file (''/etc/postfix/main.cf''):
177 1 Anonymous
{{{
178 1 Anonymous
myhostname = procksi0.cs.nott.ac.uk
179 1 Anonymous
mydomain = cs.nott.ac.uk
180 1 Anonymous
myorigin = $mydomai
181 1 Anonymous
inet_interfaces = all
182 1 Anonymous
mydestination = $myhostname, localhost.$mydomain, localhost
183 1 Anonymous
mynetworks_style = subnet
184 1 Anonymous
virtual_alias_maps = hash:/etc/postfix/virtual
185 1 Anonymous
relayhost = marian.cs.nott.ac.uk
186 1 Anonymous
}}}
187 1 Anonymous
188 1 Anonymous
Create or modify ''/etc/postfix/virtual'':
189 1 Anonymous
{{{
190 1 Anonymous
root        root@localhost
191 1 Anonymous
postmaster  postmaster@localhost
192 1 Anonymous
adm         root@localhost
193 1 Anonymous
}}}
194 1 Anonymous
195 1 Anonymous
Generate the corresponding database file (''virtual.db''):
196 1 Anonymous
{{{
197 1 Anonymous
postmap /etc/postfix/virtual
198 1 Anonymous
}}}
199 1 Anonymous
200 1 Anonymous
Make sure that the postfix daemon is running, and that it will start at boot time:
201 1 Anonymous
{{{
202 1 Anonymous
/sbin/service postfix start
203 1 Anonymous
/sbin/chkconfig --add postfix
204 1 Anonymous
/sbin/chkconfig postfix on
205 1 Anonymous
}}}
206 1 Anonymous
207 1 Anonymous
Make sure that the firewall is not open for port 25 or port 28!
208 1 Anonymous
209 1 Anonymous
Check that the STMTP server in ''/home/procksi/latest/conf/main.ini'' is set correctly set to ''procksi0.cs.nott.ac.uk''
210 1 Anonymous
211 1 Anonymous
212 1 Anonymous
213 1 Anonymous
== Garbage Cleanup Scheduling ==
214 1 Anonymous
After a certain period of time, given in ''/home/procksi/latest/conf/main.ini'', sessions and requests expire and must be deleted. 
215 1 Anonymous
216 1 Anonymous
Edit ''procksi's'' crontab file taking effect for the ''latest'' and ''test'' version:
217 1 Anonymous
{{{
218 1 Anonymous
crontab -e
219 1 Anonymous
  0-59/1 * * * * /home/procksi/latest/cron/check_sessions.sh
220 1 Anonymous
  1-59/1 * * * * /home/procksi/latest/cron/check_tasks.sh
221 1 Anonymous
  2-59/1 * * * * /home/procksi/latest/cron/check_requests.sh
222 1 Anonymous
}}}
223 1 Anonymous
224 1 Anonymous
Analogously for ''/home/procksi/test''.
225 1 Anonymous
226 1 Anonymous
227 1 Anonymous
228 1 Anonymous
== Linking External Software ==
229 1 Anonymous
Make sure that all links in ''/home/procksi/latest/bin'' point to the correct files of the operating system: 
230 1 Anonymous
{{{
231 1 Anonymous
sh, compress, bzip2, gzip, zip, ppmz, qsub
232 1 Anonymous
}}}
233 1 Anonymous
234 1 Anonymous
235 1 Anonymous
Make sure that all further executable links in ''/home/procksi/latest/bin'' point to the correct files on the file system: 
236 1 Anonymous
{{{
237 1 Anonymous
 exec_cluster, exec_!DaliLite, exec_MaxCMO, exec_molauto, exec_molscript
238 1 Anonymous
}}}