Установка сервера BOINC на Unix
Группы и права доступа
Серверные программы BOINC работают как два разных пользователя:
Планировщик, обработчик загрузки файлов, и сетевое программное обеспечение запускается с правами аккаунта веб-сервера (в Fedora это пользователь 'apache'; в Debian это 'www-data').
Остальные программы запускается под обычными аккаунтами пользователей, называемыми “собственники проекта”.
Владельцем проекта может стать уже существующий аккаунт, или же специально созданный с помощью useradd. В дальнейшем мы будем считать, что владелец проекта это boincadm, с первичной группой boincadm.
Не используйте root в качестве собственника проекта.
По умолчанию, директории созданные пользователем apache не доступны в сети. Это вызывает проблемы, к примеру, обработчик создает каталог в иерархии загрузки, он принадлежит (Apache, Apache), и файл деструктор (который работает как boincadm) не сможет удалить файлы.
Решением проблемы является, добавление apache в группу boincadm используя
$ usermod -G -a boincadm apache
Или изменив файл /etc/group, внеся в строку
boincadm:x:577:
строку
boincadm:x:577:apache
("577" это ID группы; оно может отличаться в вашей системе).
Apache будет необходимо перезапустить, чтобы изменения вступили в силу.
Оба boincadm и apache должны иметь umasks которая позволяет группе читать и изменять файлы. Место, где необходимо добавить эту опцию, зависит от вашей операционной системы. Обычно вы можете использовать umasks 0002 или 0007.
Когда вы создадите BOINC проект используя make_project, все важные каталоги будут принадлежать boincadm и иметь Set-GID битный набор; это значит что любой директорий или файл созданный пользователем apache, в этих директориях будет иметь права группы boincadm(не группы apache).Программное обеспечение BOINC создает все группы директорий с возможностью чтение/запись. Таким образом, как Apache так и boincadm будут иметь доступ на чтение/запись ко всем каталогам и файлам, но другие пользователи не будут иметь доступа.
Чтобы исправить права доступа на существующем проекте, сделайте следующее:
chmod 02770 upload
chmod 02770 html/cache
chmod 02770 html/inc
chmod 02770 html/languages
chmod 02770 html/languages/compiled
chmod 02770 html/user_profile
Вам также может понадобиться изменить владельца этих каталогов и всех их подкаталогов в boincadm/boinc. Если вы запустили несколько проектов на одном сервере, и хотите, изолировать их друг от друга, вы можете создать другого пользователя и группу для каждого проекта, и добавить права Apache для всех групп.
При исполнении ваши файлы проекта из Apache, обратите внимание, что все каталоги вплоть до каталога HTML, должны иметь права на исполнение. Например, если вы используете make_project для создания шаблона проекта в вашей домашней директории, директория должна иметь права 711, тогда как по умолчанию стоит 700. Если выполнить неверно, то будет ошибка 403 Forbidden, в момент подключения из браузера к странице проекта.
Некоторые правки MySQL
После установки MySQL, создайте аккаунт MySQL для владельца проекта. В качестве примера будет использовано имя boincadm, такое же как и у Unix аккаунта. Все MySQL аккаунты должны быть защищены паролем; в качесте примера использован пароль «foobar» (используйте что-то другое).
mysql -u root -p
CREATE USER 'boincadm'@'localhost' IDENTIFIED BY 'foobar';
GRANT ALL ON *.* TO 'boincadm'@'localhost';
Это дает boincadm доступ к всем базам MySQL находящимся на хосте; если вы используете MySQL для других целей на хосте, установите права доступа более ограниченно.
Другие замечания:
Добавте программы MySQL в переменную среды boincadm PATH. (обычно они находятся /usr/local/mysql и /usr/local/mysql/bin).
Вы хотите, периодически создавать резервные копии базы данных. Как правило, это требует остановки проекта, делая копию или снимок, затем перезапуск.
BOINC берет MySQL компилятор и линковщик флагов из программы называемой mysql_config которая поставляется вместе с дистрибутивом MySQL. Иногда программа может просить библиотеки, которые не являются частью входящую в предустановленную базу вашей системы, например -lnsl или -lnss_files. Вам может понадобиться установить дополнительные пакеты(чаще всего вы можете использовать что-то называемое 'mysql-dev' или 'mysql-devel') или повозиться с Makefile.
MySQL может стать узким местом в BOINC сервере.
MySQLclient замечания
Настройте mysql с опцией --enable-thread-safe-client switch.
Установите вашу LD_LIBRARY_PATH для обращения к правильной библиотеке.
Apache замечания
В httpd.conf, установить тип MIME по умолчанию, следующим образом (в противном случае вы получите ошибку загрузки файла верификации подписи):
DefaultType application/octet-stream
Чтобы уменьшить частоту отказов в обслуживании, мы рекомендуем выключить индексацию каталогов, добавив -Indexes директиве Options.
Убедитесь, что расширения файлов, используемые вашим приложением или файлы данных, не обрабатываются нежелательным образом на Apache. Например, если некоторые из ваших файлов есть '' .map расширение, удалить строку
AddHandler imap-file map
из httpd.conf
Apache имеет ограничение на размер запроса по умолчанию 1 Мб. Если вероятность того что ваш проект превысит этот размер (большие выходные файлы, большие сообщения планировщика запросов) увеличьте его например до 128 MB:
LimitXMLRequestBody 134217728
LimitRequestBody 134217728
Настройки PHP
Вам может понадобиться добавить GD и XML библиотеки на ваш PHP; Вы можете сделать это с помощью следующей команды:
yum install php-gd php-xml
затем перезагрузите Apache.
PHPMailer
По умолчанию, BOINC использует PHP для рассылки писем участникам. С помощью sendmail. Если это не работает, вы можете использовать PHPMailer, это очень гибкая система рассылки почты, вместо предыдущего. Необходимо сделать следующее:
Загрузить PHPMailer и положить пакет в директорию PROJECT/html/inc/phpmailer (т.е. файлы class.smtp.php и class.phpmailer.php должны находиться в этой директории).
Измените html/project/project.inc добавив функции function
«
make_php_mailer() {
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "somebody@gmail.com";
$mail->Password = "xxx";
$mail->SetFrom('admin@boincproject.com', 'somebody');
$mail->AddReplyTo("admin@boincproject.com", "somebody");
return $mail;
}
»[12]
(подставьте значения, подходящие для вашего SMTP сервера).
Возможные проблемы
После добавления нового пользователя, вы должны проверить, был ли создан домашний каталог. Возмжно, вам придется вручную создать его.
$ mkdir /home/{username}
$ chown {username}:{username} /home/{username}
Ссылка /usr/bin/gcc что указывает на используемый в настоящее время компилятор может отсутствовать. Это может привести к ошибкам при выполнении команды make. Особенно, когда пытаетесь собрать графическую часть API вам необходима ссылка на /usr/bin/g++ (make дает предупреждение, что он не может найти GL/GLU/GLUT хотя он установлен). Таким образом, вы должны создать символьные ссылки, в зависимости от версий вашего GCC и G ++, сначала:
$ ln -s /usr/bin/gcc-4.11 /usr/bin/gcc
$ ln -s /usr/bin/g++-4.11 /usr/bin/g++
В новых дистрибутивах linux, вы не можете войти в систему как суперпользователь. Вместо этого есть пользователь notroot, кем вы можете войти, но вы не будете иметь привилегии суперпользователя. Если приложение или скрипт должен обладать правами суперпользователя, вы вынуждены ввести пароль, который вы вводили при установке. В окне консоли вы можете получить правами суперпользователя либо с помощью su (Debian), либо sudo (Ubuntu, Fedora). Обратите внимание на одинарные кавычки вокруг команды при использовании su -c !
$ su -c {'command'}
$ sudo {command}
Если у вас есть проблемы выполнения команд sudo, необходимо добавить пользователя в файл /etc/sudoers. Чтобы отредактировать этот файл, просто используйте эту команду:
$ sudo visudo
В этом файле нужно добавить еще одну строку после строки для notroot. Можно использовать это:
{username} ALL=(ALL) ALL
Инструкция установки дополнительных пакетов для сервера Debian 6.0.
Дальнейшая инструкция включает списки пакетов, представленные в качестве примера, по причине возможности обновления пакетов, что может привести к изменениям, как в инструкции, так и работы с пакетами в целом.
Необходимое ПО для установки
Обычные пакеты для сборки BOINC (основывается на требованиях (Unix/Linux)):
m4
make
dh-autoreconf
pkg-config
vim
git
Пакеты необходимые для сервера BOINC:
libapache2-mod-php5
mysql-server-5.1
libmysqlclient-dev
php5-mysql
php5-cli
php5-gd
phpmyadmin
python
python-mysqldb (or MySQL-python)
libssl-dev
libcurl4-openssl-dev
Пакеты необходимые библиотекам BOINC(включая графические):
freeglut3-dev
libxmu-dev
libxi-dev
libjpeg62-dev
Пакеты необходимые для BOINC клиента и менеджера (В дополнение к библиотекам):
libssl-dev
libcurl4-openssl-dev
libxss-dev
libnotify-dev
libxcb-atom1-dev
libsqlite3-dev
дополнительные пакеты для графического менеджера рабочего стола:
kdebase
kde-guidance
synaptic
iceweasel
xserver-org
Этот список содержит все необходимые пакеты для сервера BOINC и клиентских компонентов. При первом включении, эти пакеты должны быть установлены со способностью. Графический менеджер рабочего стола является необязательной частью, но делает конфигурацию сервера немного проще. Список не содержит пакеты безопасности для защиты вашего сервера.
Создание новой учетной записи пользователя BOINC
Лучший способ создания учетной записи пользователя boinc во время инсталляции в тот момент когда вас спрашивают имя пользователя и пароль. Введите 'boincadm', или любое имя на ваше усмотрение, в качестве имени пользователя. В качестве имени по умолчанию будет использоваться 'boincadm'.
После завершения установки, пожалуйста, войдите в систему как пользователь, созданный во время установки. Если вы установили графический менеджер рабочего стола, откройте текстовую консоль (Konsole или xterm).
Следующий шаг, чтобы добавить пользователя 'www-data' (сервер Apache) к группе вновь созданного пользователя:
$ usermod -G -a boincadm www-data
Конфигурация MySQL сервер
Создайте новую базу данных MySQL для пользователя.
$ mysql -h localhost -u root -p
> GRANT ALL ON *.* TO 'boincadm'@'localhost';
> SET PASSWORD FOR 'boincadm'@'localhost'='';
The permissions can be limited to project database only, later; Defining an empty password simplifies the installation, can be changed later.
Инкапсуляция базы данных проекта возможна только позже; Определив пароль пустым, вы упростите установку, пароль может быть изменен позже.
Вы так же установить это, используя интерфейс phpmyadmin доступны через http://{server-IP}/phpmyadmin
|