Changes between Initial Version and Version 1 of ServerIntro

Apr 24, 2007, 6:53:54 PM (15 years ago)

Converted by an automated script - manual changes will follow.


  • ServerIntro

    v1 v1  
     1= Setting up a BOINC server =
     3      You can potentially use any Unix system as a BOINC server. Our recommendations are:  * '''Hardware''': use a host with good CPU capacity (dual Xeon or Opteron), at least 2 GB of RAM, and at least 40 GB of free disk space. Do whatever you can to make it highly reliable (UPS power supply, RAID disk configuration, hot-swappable spares, tempurature-controlled machine room, etc.). If you anticipate a high-traffic project, use a machine whose RAM capacity is 8 GB or more, and that uses 64-bit processors. If your server capacity is exceeded, you can increase capacity using [ multiple server hosts]. However, we recommend that you not do this initially. In most cases one host is enough.
     4 * '''Software''': use a recent Linux release.
     6== Groups and permissions ==
     7 We recommend that you create a separate user and group for the BOINC server, and add the web-server user to this group. Details are [ here].
     9== Installing BOINC software ==
     10  * Download and install whatever [ software prerequisites] are needed on your system.
     11 * [ Download the BOINC software].
     12 * [ Configure and build] the BOINC software.
     14== Operating system configuration ==
     15  Some parts of the BOINC server (the feeder and scheduling server) use shared memory. Hosts where these run 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 [ here].   == MySQL notes ==
     16  * 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.
     18    mysql -u root
     19    grant all on *.* to yourname@localhost identified by 'password';
     20    grant all on *.* to yourname identified by 'password';
     21    grant all on *.* to nobody@localhost identified by 'password';
     22    grant all on *.* to nobody identified by 'password';
     24 * Set your PATH variable to include MySQL programs (typically /usr/local/mysql and /usr/local/mysql/bin).
     25 * You'll need to back up your database. Generally this requires stopping the project, making a copy or snapshot, and restarting. An example is [ here].
     26 * BOINC gets MySQL compiler and linker flags from a program called mysql_config which comes with your MySQL distribution. This sometimes references libraries that are not part of your base system installation, such as -lnsl or -lnss_files. You may need to install additional packages (often you can use something called 'mysql-dev' or 'mysql-devel') or fiddle with Makefiles.
     27 * MySQL can be the bottleneck in a BOINC server. To optimize its performance, read about [ configuring MySQL for BOINC].
     28 * [ Notes on running MySQL on a cluster].
     30== MySQLclient notes ==
     31  * Configure mysql with the --enable-thread-safe-client switch.
     32 * Set your LD_LIBRARY_PATH to refer to the correct library.
     34== Apache notes ==
     35 In httpd.conf, set the default MIME type as follows (otherwise you'll get file upload signature verification errors):
     39DefaultType application/octet-stream
     41 To limit denial-of-service attacks, we recommend turning off directory indexing by adding -Indexes to the Options directive.   == PHP notes ==
     42  * Make sure 'magic quotes' are enabled (this is the default). The file /etc/php.ini should contain
     44magic_quotes_gpc = On
     46 * By default, BOINC uses PHP's mail function to send email to participants. This uses sendmail. If this doesn't work, you can use [ PHPMailer] instead, which is a very flexible mail-sending mechanism. To do this:   * Download PHPMailer and put it under PROJECT/html/inc/phpmailer.
     47  * Set the following variables in your PROJECT/html/project/ file (substitute your own values):
     49 = true;
     50 = "";
     51 = "smtp";