
.. _boinc_server:

============
BOINC server
============

When BOINC is applied to handle communication a series of addition dependencies must be fulfilled. On an Ubuntu 10 installation all these dependencies can be obtained via the package manager. The following describes how to build the *BOINC server*. (`ServerIntro <http://boinc.berkeley.edu/trac/wiki/ServerIntro>`_)

Dependencies
------------

To build the *BOINC server* the following is required:

* ``apache2-mpm-prefork``
* ``libapache2-mod-php5``
* ``libmysql++-dev``
* ``mysql-client``
* ``mysql-server``
* ``python-mysqldb``
* ``php5-mysql``
* ``php5-cli``
* ``php5-gd``
* ``phpmyadmin``
* ``libssl-dev``

OS, MySQL and APAHCE
--------------------

Additionally must the ``OS`` and ``MySQL`` be prepared to the *BOINC server*. On the OS make a new user (``boincadm``)::

    sudo useradd -m -s /bin/bash boincadm

And add this new user to the group ``www-data``::

    sudo usermod -G boincadm www-data

Now allow ``boincadm`` to use the database by starting ``MySQL``::

    mysql -h localhost -u root [-p]

where the ``-p`` only should be used if the *MySQL root* user got a password. In the prompt type::

    GRANT ALL ON *.* TO boincadm@localhost; 
    SET PASSWORD FOR boincadm@localhost=''; 
    exit

Finally change the ``httpd.conf`` for apache to set default MIME type::
   
    DefaultType application/octet-stream 

Installation
------------

The *BOINC server* code be build with the commands::

    ./_autosetup
    ./configure --disable-client
    make

If ``./autosetup`` complains about a too old version of ``autoreconf`` change the line ``if check version autoreconf 2.58`` to ``if check version /usr/bin/autoreconf2.50`` in this file.
