Сервер для школ::Журнал СА4.2005
www.samag.ru
Льготная подписка для студентов      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

Jobsora


  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
28.05.2019г.
Просмотров: 2221
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 2209
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 1765
Комментарии: 0
Django 2 в примерах

 Читать далее...

28.05.2019г.
Просмотров: 1281
Комментарии: 0
Введение в анализ алгоритмов

 Читать далее...

27.03.2019г.
Просмотров: 1827
Комментарии: 1
Arduino Uno и Raspberry Pi 3: от схемотехники к интернету вещей

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Сервер для школ

Архив номеров / 2005 / Выпуск №4 (29) / Сервер для школ

Рубрика: Карьера/Образование /  Образование

Сергей Яремчук СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС

Сервер для школ

Сегодня как никогда велик интерес к использованию свободного ПО в учебных заведениях. Если к применению GNU/Linux, как признанного флагмана движения Open Source, на настольных системах предстоит еще пройти долгий путь, то на серверах положение не так плачевно. Энтузиасты уже давно используют преимущества свободного ПО, остается только подобрать необходимые приложения, чтобы решить возникшие задачи.

OpenAdministrationforSchools – OpenAdmin (http://richtech.ca/openadmin/index.html) представляет собой свободный Open Source-проект, предназначенный для решения задач по автоматизации учета, сбора и вывода информации, адаптированный для применения в школах и других, в том числе и высших учебных заведениях. Вся собранная информация сохраняется в базе данных, доступ к которой осуществляется при помощи веб-сервера, поэтому OpenAdmin не диктует особых требований к клиентскому ПО. Во избежание проблем с безопасностью для выдачи информации различным группам пользователей используются раздельные виртуальные веб-узлы. Так, каждая школа имеет по умолчанию три веб-узла. Все они защищены паролем. Кроме того, учителя используют индивидуальный пароль на преподавательском сайте, а устанавливаемые для удобства работы cookies имеют короткий период действия по умолчанию. Для доступа к данным на родительском и студенческом сайтах также используются индивидуальные логин и пароль. Отдельный виртуальный сайт может использоваться для вывода информации третьим лицам, что позволяет избежать делегирования прав. При этом если преподаватели ведут отдельные курсы со своими программами, для их учета используется отдельный сайт (iep). В дальнейшем планируется полная поддержка https, но пока этим заниматься придется самому. Распространяется OpenAdmin по лицензии GNU GPL.

Единственное обстоятельство,затрудняющее применение OpenAdmin в наших условиях, состоит в том, что интерфейс системы сугубо английский, хотя с учетом того, что все данные хранятся в обычных текстовых файлах, перевод можно проделать самостоятельно по мере ввода сервера в эксплуатацию. По сравнению с трудоемкостью заполнения самой базы и оптимизацией количества действительно необходимых записей это будет не так уж тяжело.

Итак, в настоящее время OpenAdmin позволяет хранить и выводить по запросу следующую информацию:

  • Student Demographics – все необходимые сведения об учащихся, причем можно занести не только стандартные паспортные, контактные данные и сведения о родителях, но и при необходимости этническую, религиозную, медицинскую и другую информацию, а также организовать поиск, отбор, предварительный анализ и вывод фактически по каждому пункту.
  • Attendance System – сюда заносятся данные о посещаемости, а точнее отсутствии учащихся на занятиях. Позволяет отследить посещаемость ученика не только по дням, но и по занятиям и конкретным темам. По результатам можно вывести разнообразные отчеты, включающие в том числе и информацию по различным группам, получить сведения о студентах, хорошо посещающих занятия, или наоборот, вывести список заядлых прогульщиков.
  • Discipline – простой дисциплинарный модуль, поможет контролировать дисциплину учащихся. Записи можно вводить без ограничения объема, при потребности удалять, плюс для удобства учета можно создать до шести категорий нарушений. Как результат можно вывести все проделки, совершенные отдельными учащимися, в школе в целом, статистику в течение определенного периода, что позволит выявить специфические виды проблем.
  • Gradebook – функция, доступная только с сайта преподавателей и позволяет выставлять оценки по предметам и тестам. Кроме ведения общей статистики, автоматически вычисляется средний бал успеваемости, который затем может быть выведен на родительском сайте.
  • Report Card System – гибкая система генерации отчетов с выводом до 20 сообщений в теме при неограниченном количестве тем, кроме web может выводиться в файл формата PDF, что очень удобно при распечатывании.
  • Parent Viewing – скрипты, позволяющие родителям просматривать результаты успеваемости, посещаемости и поведение своих чад.

Кроме того, имеются специальные модули экспорта/импорта, позволяющие легко переносить данные учащихся, например при их переходе в другую школу. Вполне естественно, что никто не запрещает добавить или, наоборот, удалить лишние компоненты и записи, изменить значение и положение полей, создать дополнительные отчеты и прочее.

Установка сервера OpenAdmin

Сервер OpenAdmin полностью построен на основе свободных компонентов. Все применяемые скрипты написаны на Perl, для хранения информации используется база данных MySQL. В качестве веб-сервера может быть использован любой продукт, поддерживающий виртуальные узлы. Разработчиками рекомендуется Apache. Кроме этого, необходимо наличие LibXML2 (http://www.xmlsoft.org), OpenSSL (http://www.openssl.org), TeX и нескольких модулей Perl. В большинстве дистрибутивов GNU/Linux все эти компоненты, как правило, уже имеются. Если же в качестве сервера используется Windows, то придется позаботиться об их инсталляции.

Перед тем как начать установку – общая информация о структуре веб-сервера. Каждая школа по умолчанию имеет три отдельных веб-узла. Один предназначен для общего управления содержанием, т.е. администрирования, второй предназначен для преподавателей и третий – для учащихся и их родителей. Все эти сайты находятся в архиве каталога school в соответствующих папках. Скрипты и сайт администрирования – в admin и cgi, преподавательский сайт – в tadmin и tcgi, родительский – в padmin и pcgi. При этом на одном веб-сервере можно одновременно разместить сайты нескольких школ, настройки этих серверов находятся в разных каталогах со структурой, описанной выше. Два сайта sis (Student Information System) и iep предназначены для специального (централизованного) доступа ко всем информационным ресурсам. Так как все эти сайты находятся на одном сервере, то необходимо обеспечить разрешение имен, прописав все узлы в файле /etc/hosts (что безопаснее) или в настройках DNS-сервера.

Чтобы меньше путаться в настройках, разработчики рекомендуют создать для школьных сайтов отдельный каталог, в котором и разместить всю вышеописанную иерархию.

# mkdir /schools

# cd /schools

# cp /tmp/openadmin-1.70.tar.gz

# tar xvzf openadmin-1.70.tar.gz

Для того чтобы в дальнейшем была возможность расширять сервер, добавляя новые учебные заведения, создадим для школы отдельную папку, в которую скопируем шаблоны с сайтами.

# mkdir 4school

# cp -r /schools/school /schools/4schoo

Смотрим в файле веб-сервера Apache httpd.conf в строках User и Group, от имени какого пользователя он работает, и устанавливаем его владельцем вновь созданных каталогов:

# chown -R apache:apache /schools

А для каталогов cgi устанавливаем права доступа в 755:

# chmod 755  /schools/4school/cgi

При необходимости можно установить логотип учебного заведения, заменив файл logo.gif и logotn.gif в подкаталоге admin/images. Теперь можно приступить к созданию необходимой базы данных.

# mysql -u root myschool –p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 11 to server version: 3.23.58

 

Type "help;" or "h" for help. Type "c" to clear the buffer.

Назначаем необходимые привилегии, чтобы не работать от имени администратора.

mysql>  grant all on myschool.* to school@localhost identified by "schoolpasswd";

Query OK, 0 rows affected (0.01 sec)

mysql>  quit

И при помощи файла blank.sql, содержащего необходимые команды, создаем таблицы в нашей базе данных.

# mysql -p -u school myschool < /schools/utility/blank.sql

Если будет использована SIS, то в целях безопасности необходимо создать отдельного пользователя, обладающего правами только на выборку данных из таблиц школ (select). Специальный ресурс iep имеет свою структуру таблиц базы данных, для создания которых используются файлы iepdata.sql и iepstruct.sql.

Теперь об Apache. В конце файла httpd.conf имеется секция «Virtual Hosts», в которой даны примеры и краткие комментарии по настройке виртуальных веб-узлов. Фактически для минимальной настройки необходимо будет создать три одинаковых секции, отличающиеся параметрами Document Root, ServerName и ScriptAlias. Для учительского и администраторского сайта, кроме того, создаются разделы, ограничивающие доступ.

### Проверьте наличие этих строк

AddTypetext/html .shtml

AddHandler server-parsed .shtml

### Section 3: Virtual Hosts

NameVirtualHost schools

### Администраторский сайт

<VirtualHost schools>

    ServerAdmin grinder@ua.fm

    DocumentRoot /schools/4school/admin

    ServerName admin.schools.com

    ErrorLog logs/schools.error_log

   CustomLog logs/schools.access_log common

 ScriptAlias /cgi-bin "/schools/4school/cgi"

</VirtualHost>

### Ограничиваем доступ

<Directory ”/schools/4school/admin”>

Authtype Basic

Authname Admin

AuthUserFile /usr/local/apache/private/admin4school

Options +Includes

<Limit GET POST>

require valid-user

</Limit>

</Directory>

<Directory ”/schools/4school/cgi”>

Authtype Basic

Authname Admin

AuthUserFile /usr/local/apache/private/admin4school

<Limit GET POST>

require valid-user

</Limit>

</Directory>

</VirtualHost>

### Учительский сайт

<VirtualHost schools>

    ServerAdmin grinder@ua.fm

    DocumentRoot /schools/4school/tadmin

    ServerName teacher.schools.com

    ErrorLog logs/schools.error_log

   CustomLog logs/schools.access_log common

 ScriptAlias /cgi-bin "/schools/4school/tcgi"

</VirtualHost>

### Ограничиваем доступ

<Directory ”/schools/4school/tadmin”>

Authtype Basic

Authname teacher

AuthUserFile /usr/local/apache/private/teacher4school

Options +Includes

<Limit GET POST>

require valid-user

</Limit>

</Directory>

<Directory ”/schools/4school/tcgi”>

Authtype Basic

Authname Admin

AuthUserFile /usr/local/apache/private/admin4school

<Limit GET POST>

require valid-user

</Limit>

</Directory>

</VirtualHost>

### Родительско-студенческий сайт

<VirtualHost schools>

    ServerAdmin grinder@ua.fm

    DocumentRoot /schools/4school/padmin

    ServerName parent.schools.com

    ErrorLog logs/schools.error_log

   CustomLog logs/schools.access_log common

 ScriptAlias /cgi-bin "/schools/4school/pcgi"

</VirtualHost>

Теперь проверяем правильность новых настроек.

# apachectl configtest

Syntax OK

Создаем пароли для каждого пользователя.

# htpasswd /usr/local/apache/private/teacher4school physicist

Перезапускаем веб-сервер.

# /etc/init.d/httpd restart

Останавливается httpd:            [  ОК  ]

Запускается httpd:            [  ОК  ]

И наконец, последний этап. В подкаталогах cgi и tcgi имеются файлы admin.conf, в которых необходимо изменить параметры для доступа к базе данных, расположение каталогов администраторского и учительского серверов, местонахождение утилиты pdflatex и почтовый адрес администратора, который будет выводиться в случае ошибок. В дальнейшем для упрощения настроек планируется использовать один такой файл, расположенный в /etc. При внимательном подходе к чтению на данном этапе все три сервера должны работать. Единственная проблема, с которой вы можете столкнуться, – это занесение в базу данных больших объемов информации. Регистрация одного-двух десятков учеников – терпима, но если их число превышает несколько сотен, то этот процесс превратится в настоящий кошмар. Для удобства рекомендуется воспользоваться скриптом studentupload.pl, который находится в подкаталоге utility. Этот скрипт считывает файл в формате CSV (Comma Separated Values) и заносит все сведения в базу данных. По умолчанию сценарий считывает 40 параметров и перед началом использования его необходимо подправить под свои требования. При работе скрипт не обновляет файл cgi/entry/studentnumber, в котором хранятся номера следующей записи, поэтому, чтобы не получились записи с одинаковыми порядковыми номерами, цифру в нем необходимо подправить самому. Если все же это произошло, то в решении проблемы могут помочь скрипты dupcheck.pl и sentry2.pl.

Несмотря на то что OpenAdmin ориентирован в первую очередь на применение в учебных заведениях, его наработки вполне можно использовать и в своих проектах, связанных с учетом большого количества персонала. Например, в библиотеках, дополнительно создав отдельную таблицу с книгами и используя поля оценок, контролировать для выданную литературу. Впрочем, вариантов много. По крайней мере, есть от чего оттолкнуться при возникновении такой задачи. Это довольно полезный инструмент, позволяющий избежать большого количества рутинной ручной работы.

Рисунок 1

Рисунок 2

Рисунок 3


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru