mirror of https://github.com/BOINC/boinc.git
331 lines
8.2 KiB
PHP
331 lines
8.2 KiB
PHP
<?php
|
|
|
|
require_once("docutil.php");
|
|
page_head("Software prerequisites");
|
|
?>
|
|
|
|
<h2>Unix</h2>
|
|
Solaris 2.6-2.9, Red Hat 8 and Enterprise Edition,
|
|
Mac OS X, and Debian Linux (stable and unstable)
|
|
should work out of the box.
|
|
Other Unix-like systems should work without too much effort.
|
|
<p>
|
|
You'll need to install the following software before building BOINC:
|
|
|
|
<table border=1 cellpadding=8>
|
|
<tr>
|
|
<th><br></th>
|
|
<th>Server</th>
|
|
<th>Core client<br></th>
|
|
<th>BOINC Manager<br></th>
|
|
<th>Applications<br>(non-graphical)</th>
|
|
<th>Applications<br>(graphical)</th>
|
|
</tr>
|
|
<tr>
|
|
<td>GNU tools (find them <a href=http://directory.fsf.org/GNU/>here</a>):
|
|
<br>
|
|
<br>make 3.79+
|
|
<br>m4 1.4+
|
|
<br>libtool 1.4+
|
|
<br>pkg-config 0.15+
|
|
<br>autoconf 2.58+</a>
|
|
<br>automake 1.8+</a>
|
|
<br>GCC 3.0.4+
|
|
</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Python 2.2+
|
|
<br>
|
|
<a href=http://sourceforge.net/projects/mysql-python>MySQLdb module 0.9.2+</a>
|
|
(see <a href=install_python_mysqldb.txt>installation instructions</a>)
|
|
<br>xml module
|
|
</td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td>MySQL 4.0+ or 4.1+
|
|
<br>MySQL client
|
|
</td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Apache with mod_ssl and PHP 4.0.6+
|
|
</td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href=http://www.openssl.org/>OpenSSL</a> version 0.9.8+
|
|
(included with the BOINC source distribution for Windows)
|
|
</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href=http://curl.haxx.se/>libcurl</a> version 7.14.0+
|
|
(included with the BOINC source distribution for Windows)
|
|
</td>
|
|
<td><br></td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href=http://www.wxwidgets.org/>WxWidgets</a> 2.6.1
|
|
</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td>GL, GLU, GLUT libraries</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td>X11 libraries and include files</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>configure</code> option</td>
|
|
<td>--enable-server</td>
|
|
<td>--enable-client</td>
|
|
<td>--enable-client (if WxWidgets and X11 found)</td>
|
|
<td>--enable-client</td>
|
|
<td>--enable-client (if GL/GLU/GLUT found)</td>
|
|
</tr>
|
|
</table>
|
|
<h3>Operating system notes</h3>
|
|
<ul>
|
|
<li>
|
|
Some parts of the BOINC server (the feeder and scheduling server)
|
|
use shared memory.
|
|
On hosts where these run,
|
|
the operating system must have shared memory enabled,
|
|
with a maximum segment size of at least 32 MB.
|
|
How to do this depends on the operating system;
|
|
some information is
|
|
<a href=http://developer.postgresql.org/docs/postgres/kernel-resources.html>here</a>.
|
|
</ul>
|
|
<h3>WxWidgets notes</h3>
|
|
<p>
|
|
Configure with the <code>--with-gtk --disable-shared</code> options
|
|
(BOINC needs a static library).
|
|
<p>
|
|
If you have an older WxWidgets install,
|
|
uninstall it (make uninstall), then install 2.6.
|
|
|
|
<h3>MySQL notes</h3>
|
|
<ul>
|
|
|
|
<li>
|
|
After installing and running the server,
|
|
grant permissions for your own account and for
|
|
the account under which Apache runs
|
|
('nobody' in the following; may be different on your machine).
|
|
All mysql accounts should be password protected including root.
|
|
<pre>
|
|
mysql -u root
|
|
grant all on *.* to yourname@localhost identified by 'password';
|
|
grant all on *.* to yourname identified by 'password';
|
|
grant all on *.* to nobody@localhost identified by 'password';
|
|
grant all on *.* to nobody identified by 'password';
|
|
</pre>
|
|
<li>
|
|
Set your PATH variable to include MySQL programs
|
|
(typically /usr/local/mysql and /usr/local/mysql/bin).
|
|
|
|
<li>
|
|
You'll need to back up your database.
|
|
Generally this requires stopping the project,
|
|
making a copy or snapshot, and restarting.
|
|
An example is <a href=mysql_backup.txt>here</a>.
|
|
<li>
|
|
BOINC gets MySQL compiler and linker flags from a program
|
|
called <code>mysql_config</code> which comes with your MySQL distribution.
|
|
This sometimes references libraries that are not part of your base system
|
|
installation, such as <code>-lnsl</code> or <code>-lnss_files</code>.
|
|
You may need to install additional packages
|
|
(often you can use something called 'mysql-dev' or 'mysql-devel')
|
|
or fiddle with Makefiles.
|
|
|
|
<li>
|
|
MySQL can be the bottleneck in a BOINC server.
|
|
You may want to learn about (or hire someone who knows about)
|
|
MySQL performance.
|
|
For example, read about the
|
|
<a href=http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html>MySQL query cache</a>.
|
|
|
|
</ul>
|
|
<h3>MySQLclient notes</h3>
|
|
<ul>
|
|
<li>
|
|
Configure mysql with the --enable-thread-safe-client switch.
|
|
<li>
|
|
Set your LD_LIBRARY_PATH to refer to the correct library.
|
|
</ul>
|
|
|
|
<h3>PHP notes</h3>
|
|
<ul>
|
|
<li> Make sure 'magic quotes' are enabled (this is the default).
|
|
The file /etc/php.ini should contain
|
|
<pre>
|
|
magic_quotes_gpc = On
|
|
</pre>
|
|
<li>
|
|
By default, BOINC uses PHP's <code>mail</code> function to send
|
|
email to participants.
|
|
This uses sendmail.
|
|
If this doesn't work, you can use
|
|
<a href=http://phpmailer.sourceforge.net/>PHPMailer</a> instead,
|
|
which is a very flexible mail-sending mechanism.
|
|
To do this:
|
|
<ul>
|
|
<li> Download PHPMailer and put it under PROJECT/html/inc/phpmailer.
|
|
<li> Set the following variables in your
|
|
PROJECT/html/project/project.inc file (substitute your own values):
|
|
<pre>
|
|
$USE_PHPMAILER = true;
|
|
$PHPMAILER_HOST = "xxx.xxx.xxx";
|
|
$PHPMAILER_MAILER = "smtp";
|
|
</pre>
|
|
</ul>
|
|
</ul>
|
|
|
|
<h3>Library notes</h3>
|
|
<p>
|
|
If you have old versions of libraries (curl, openssl etc.)
|
|
in /usr/lib, and newer versions somewhere else (like /usr/local/lib)
|
|
you must tell the linker where to find the newer versions:
|
|
<pre>
|
|
./configure LDFLAGS=-L/usr/local/lib
|
|
</pre>
|
|
|
|
<h3>X11 notes</h3>
|
|
<p>
|
|
To get the X11 support,
|
|
select the relevant options when you're installing Linux,
|
|
or (Redhat) go to System Settings/Add Software.
|
|
|
|
<ul>
|
|
<li>
|
|
Notes for <a href=debian_linux_install.txt>Debian Linux</a>.
|
|
</ul>
|
|
|
|
<h3>Apache notes</h3>
|
|
<p>
|
|
In httpd.conf, set the default MIME type as follows
|
|
(otherwise you'll get file upload signature verification errors):
|
|
<pre>
|
|
DefaultType application/octet-stream
|
|
</pre>
|
|
Suppose Apache runs as user 'apache'
|
|
and BOINC daemons runs as user 'boincadm'.
|
|
Directories created by apache need to be writeable to boincadm.
|
|
This can be done in any of several ways:
|
|
<ul>
|
|
<li> Use Apache's suexec mechanism
|
|
to make the CGI programs run as boincadm.
|
|
<li> Make the CGI programs setuid and owned by boincadm.
|
|
<li>
|
|
Edit /etc/group so that boincadm belongs
|
|
to group apache, i.e. the line:
|
|
<pre>
|
|
apache:x:48:
|
|
</pre>
|
|
becomes:
|
|
<pre>
|
|
apache:x:48:boincadm
|
|
</pre>
|
|
Add these two lines to the beginning of the apache start script
|
|
(called apachectl, usually in /usr/sbin on linux):
|
|
<pre>
|
|
umask 2
|
|
export umask
|
|
</pre>
|
|
Apache will need to be stopped/restarted for this to take effect.
|
|
|
|
Now any file apache creates should have group writeable permissions
|
|
(thanks to the umask) and user boincadm, who now belongs to group
|
|
apache, should be able to update/delete these files.
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<h2>Windows</h2>
|
|
<table border=1 cellpadding=8>
|
|
<tr>
|
|
<th><br></th>
|
|
<th>Core client<br></th>
|
|
<th>BOINC Manager<br></th>
|
|
<th>Installer</th>
|
|
<th>Applications</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Visual Studio .NET (Visual C++ 7.0)</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td>WxWidgets 2.4.2</td>
|
|
<td><br></td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Installshield X</td>
|
|
<td><br></td>
|
|
<td><br></td>
|
|
<td>X</td>
|
|
<td><br></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3>WxWidgets notes</h3>
|
|
<ul>
|
|
<li> Download and install the WxWidgets source
|
|
according to instructions on the web site.
|
|
<li> In Settings/Control Panel/System,
|
|
select Advanced; click Environment Variables.
|
|
Under 'User variables' click New.
|
|
Create a variable named 'wxwin'
|
|
with value 'c:\wx' (or wherever you installed it).
|
|
Then restart Visual Studio.
|
|
</ul>
|
|
|
|
<?
|
|
page_tail();
|
|
?>
|