boinc/doc/os_x_server_install.txt

96 lines
4.9 KiB
Plaintext

OS X BOINC Installation Procedure:
0. If you have any comments about this procedure (what is difficult, what you think is unnecessary) please send them to the BOINC project admins. Change all references from "eheien" to your own username. You will need the administrator password to make changes to Apache.
1. Ensure that you have PHP, MySQL, and the Apache PHP module installed. You can get these from http://www.php.net and http://www.entropy.ch/software/macosx/welcome.html. Ensure that Apache (Personal Web Sharing) is turned on in System Preferences - Sharing.
2. Unzip and untar boinc_x.yz.tar.gz
3. Change the MAX values in sched/sched_shmem.h each to 10 or you'll get an "shmget: Invalid argument" error when you run the feeder. Alternatively, you can change shared memory limitations in the kernel by editing the file:
/System/Library/StartupItems/SystemTuning/SystemTuning
changing
sysctl -w kern.sysv.shmmax
to a large value (i.e. 134217728). You must restart after editing this file for the changes to take effect.
4. ./configure and make in the boinc directory.
5. Run the following commands in the terminal. These will create the necessary directories for testing:
mkdir ~/Sites/projects
mkdir ~/Sites/hosts
mkdir ~/Sites/keydir
mkdir ~/Sites/cgi-bin
I use the Sites directory rather than /Library/WebServer because I couldn't get the latter to work.
6. Generate keypairs. These are useful for security in real projects. We don't really need them for testing but their usage is built into BOINC so we have to create them anyway. In a real project, you would never want them visible to the outside world (i.e. don't put them in the Sites directory) and the code_sign_private should never even be on a computer on the network. To generate them, cd to boinc/lib and run:
./crypt_prog -genkey 1024 ~/Sites/keydir/upload_private ~/Sites/keydir/upload_public
./crypt_prog -genkey 1024 ~/Sites/keydir/code_sign_private ~/Sites/keydir/code_sign_public
7. Add the following to your .tcshrc file (setting the correct location for the boinc source directory):
setenv BOINC_MAJOR_VERSION 1
setenv BOINC_MINOR_VERSION 00
setenv BOINC_PROJECTS_DIR ~/Sites/projects
setenv BOINC_HOSTS_DIR ~/Sites/hosts
setenv BOINC_USER_NAME eheien
setenv BOINC_SRC_DIR ~/Desktop/boinc/
setenv BOINC_CGI_DIR ~/Sites/cgi-bin
setenv BOINC_CGI_URL http://localhost/~eheien/cgi-bin
setenv BOINC_HTML_DIR ~/Sites
setenv BOINC_HTML_URL http://localhost/~eheien
setenv BOINC_KEY_DIR ~/Sites/keydir
setenv BOINC_PLATFORM powerpc-apple-darwin6.1
setenv BOINC_SHMEM_KEY 0x3612a32b
Quit and reopen Terminal to load these new environment variables before continuing.
8. Make sure both you and root (which runs Apache) have database access in mysql. To do this, run "mysql -u root -p" at the command line, and enter the mysql password (or hit enter if there is none). Once in mysql, enter:
grant all on * to root@localhost;
grant all on * to eheien@localhost;
This is necessary to allow the server and test scripts to access the database for testing.
9. cd to /etc/httpd/users. "sudo vi eheien.conf". Change the following line:
Options Indexes MultiViews
to
Options Indexes MultiViews FollowSymlinks
And add the following line to the end of the file:
ScriptAlias /~eheien/cgi-bin/ "/Users/eheien/Sites/cgi-bin/"
This will allow Apache to follow the symbolic links set up by the test script and execute the proper cgi programs (used for the server).
10. "sudo apachectl graceful" to restart Apache with the new configuration.
11. Go to boinc/test and run ./test_uc.php to test the whole thing. Running the core client should take less than a minute or so. The final output from the test should look something like:
adding apps
adding platforms
adding app versions
cp: /Users/eheien/Desktop/boinc//html_user/CVS is a directory (not copied).
cp: /Users/eheien/Desktop/boinc//html_ops/sample_stripchart is a directory (not copied).
cp: /Users/eheien/Desktop/boinc//html_ops/CVS is a directory (not copied).
sed -e s/SCHEDULER_URL/http:\\/\\/localhost\\/~eheien\\/cgi-bin\\/test\\/cgi/ /Users/eheien/Sites/projects/test/html_user/index.html > temp; mv temp /Users/eheien/Sites/projects/test/html_user/index.html
The master URL for project test is http://localhost/~eheien/test/html_user/index.html
The admin URL for project test is http://localhost/~eheien/test/html_ops/index.html
creating account files
writing /Users/eheien/Sites/hosts/test/account_test.xml
adding work
Running core client
Files match: uc_correct_output
Files match: uc_correct_output
The name of the project database will be "eheien_test". If something goes wrong during the test, you can look at ~/Sites/hosts/test/client.out and ~/Sites/cgi-bin/test/feeder_out for debugging information. You can also look at the webserver logs at /var/log/httpd to see if the client is connecting to the server. If you want to view the projects user or administrative website, use a web browser and go to the master URL or admin URL listed above.