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