Различия между версиями 11 и 29 (по 18 версиям)
Версия 11 от 2008-08-26 23:41:15
Размер: 13651
Редактор: VsevolodKrishchenko
Комментарий:
Версия 29 от 2009-03-22 23:53:52
Размер: 21480
Редактор: eSyr
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:
== О том, как ни с того, ни с сего сделать школьный вебсайт ==
=== Apache ===
Для начала установим web-сервер. В связи с тем, что на момент начала создания ПСПО в apache 2.0 были проблемы с безопасностью (при включении mod_proxy веб-сервер превращался в open proxy), в ПСПО используется apache 1.3, хотя в большинстве дистрибутивов сейчас используется apache 2.2.
Для развертывания web-сайта достаточно установить пакет apache. В случае ПСПО web-сервер будет работоспособен сразу после установки.
Строка 7: Строка 3:
Запустим apache: == Как сделать школьный веб-сайт ==

Когда вы заходите по протоколу HTTP на сервер, он в ответ на ваш запрос посылает вам некий текст, обычно в формате HTML. HTML — это язык разметки для организации гипертекстовых данных. Для просмотра этого документа пользователем используется программа, называемая веб-браузером («навигатором»), которая умеет показывать HTML-страницы описанным в них образом и обрабатывать разного рода деятельность пользователя: например, вы нажимаете мышкой на ссылку, и она содержимое страницы по этой ссылке показывает. Возникает вопрос: откуда берутся эти массивы данных в виде HTML-страниц? Для ответа на этот вопрос создадим собственный веб-сайт, который будет являться источником HTML-документов.

=== Веб-сервер Apache ===

Для создания веб-сайта в начале необходимо установить веб-сервер — программу, общающуюся с клиентами по протоколу HTTP. В связи с тем, что на момент начала создания ПСПО в [[http://httpd.apache.org/|веб-сервере Apache]] [[http://httpd.apache.org/docs/2.0/|версии 2.0]] были определенные проблемы с безопасностью при включении модуля mod_proxy, а [[http://httpd.apache.org/docs/2.2/|версия 2.2]] ещё не была доступна, в ПСПО используется старая, но испытанная версия [[http://httpd.apache.org/docs/1.3/|Apache 1.3]], хотя в большинстве дистрибутивов сейчас используется Apache 2.2.

Для развертывания веб-сервера достаточно установить пакет apache и запустить службу httpd. В случае ПСПО веб-сервер будет работоспособен сразу после установки.
Установим и запустим сервер Apache следующей командой:
Строка 9: Строка 14:
# service httpd start
Starting libhttpd.ep service:
DONE
# apt-get install apache && service httpd start
Строка 14: Строка 17:
Теперь при попытке зайти по доменному имени или IP-адресу используемой машины будет показано следующее: Теперь при попытке зайти на доменное имя или IP-адрес используемой машины по протоколу HTTP (например, при помощи браузера) будет показано следующее:
Строка 16: Строка 19:
{{attachment:PspoClasses/080730/ssh_port_forwarding_remote_server.png}} {{attachment:../../080730/ssh_port_forwarding_remote_server.png}}
Строка 18: Строка 21:
Это означает, что apache работает, однако отсутствует собственно сайт --- контент. По умолчанию сервер Apache использует в качестве корневого каталога сайта (!DocumentRoot) каталог со своей документацией. То, что мы видим приведённую выше страницу, означает, что веб-сервер работает, однако у нас отсутствует собственно веб-сайт, поскольку нет никакого содержания.
Строка 20: Строка 23:
=== Bluefish === === Создания HTML-страниц с помощью Bluefish ===
Строка 22: Строка 25:
Для создания сайта можно использовать специально предназначенную среду разработки --- Bluefish.
По умолчанию Bluefish использует в качестве рабочего каталога `/var/www`. Создадим в нём подкаталог:
Для создания сайта можно использовать специально предназначенную среду разработки — Bluefish. Перед созданием каких-либо страниц создадим подкаталог в месте, предназначенном для размещения файлов контента веб-сервера, {{{/var/www}}}, и для простоты разрешим изменять его содержимое всем локальным пользователям:
Строка 25: Строка 27:
# cd /var/www/
# mkdir
site
# cd site/
# mkdir /var/www/site
# chmod o+w /var/www/site
Строка 30: Строка 31:
Создадим с помощью bluefish html-страницу: Создадим с помощью редактора Bluefish HTML-страницу:
 1.#1 Откроем bluefish
## . {{attachment:PspoClasses/080730/bluefish.png}}
 1.#2 Откроем диалог создания новой HTML-страницы
  . {{attachment:PspoClasses/080730/bluefish_page_configuration.png}}
 1.#3 Зададим заголовок страницы и удалим лишние заголовки
  . {{attachment:PspoClasses/080730/bluefish_page_configuration_ambigous_headers_removed.png}}
## . {{attachment:PspoClasses/080730/bluefish_page_configuration_title.png}}
## 1. Удалим лишние заголовки
 1.#4 Сгенерируем страницу и добавим содержимое страницы
## .{{attachment:PspoClasses/080730/bluefish_page_generated.png}}
 1.#5 Добавим содержимое страницы.
  .{{attachment:PspoClasses/080730/bluefish_page_final.png}}
 1.#6 Сохраним полученный результат
  .{{attachment:PspoClasses/080730/bluefish_page_save.png}}
Строка 32: Строка 47:
1. {{attachment:PspoClasses/080730/bluefish.png}} Сохраним её под именем index.html в свою домашнюю директорию и скопируем её в `/var/www/site/`.
Строка 34: Строка 49:
2. {{attachment:PspoClasses/080730/bluefish_page_configuration.png}}

3. {{attachment:PspoClasses/080730/bluefish_page_configuration_title.png}}

4. {{attachment:PspoClasses/080730/bluefish_page_configuration_ambigous_headers_removed.png}}

5. {{attachment:PspoClasses/080730/bluefish_page_generated.png}}

6. {{attachment:PspoClasses/080730/bluefish_page_final.png}}

7. {{attachment:PspoClasses/080730/bluefish_page_save.png}}

Сохраним её под именем index.html.
## локально и потом скопируем из под рута. --- откуда и куда? иллюстрацию бы.

Затем отредактируем `/etc/httpd/conf/httpd.conf`. Поменяем в нём поле DocumentRoot:
Затем отредактируем файл конфигурации `/etc/httpd/conf/httpd.conf`. Поменяем в нём поле !DocumentRoot следующим образом:
Строка 55: Строка 55:
DocumentRoot "/var/www/site"}}} DocumentRoot "/var/www/site"
}}}
Строка 57: Строка 58:
Теперь, после перезапуска apache, в браузере, при обращении к данной машине, можно будет увидеть только что созданную страницу.
Перезапустить web-сервер можно следующей командой:
Теперь, после перезапуска apache командой {{{service httpd restart}}}, в браузере при обращении к данной машине можно будет увидеть только что созданную страницу.

=== Подходы к автоматизированному созданию веб-сайтов ===

Продемонстрированный подход к созданию HTML-страниц вручную, хоть и полезен для знакомства с языками разметки, но является устаревшим. Практика создания HTML-страниц вручную на данный момент по большей части ушла в прошлое. Дело в том, что при таком подходе требуется очень много усилий для поддержания сайта в актуальном состоянии. Ранее существовала даже специальная профессия — «контенщик», человек, которому платили за регулярные обновления сайта (она существует и сейчас, но имеет несколько иную специфику). Задача создания осмысленной структуры сайта так же не слишком проста. В дополнение ко всему, вручную очень легко случайно или по незнанию написать HTML-код, который будет отображаться некоторыми браузерами некорректно.
 
В какой-то момент произошло осознание того, что дизайн сайта и его наполнение информацией, и представление его виде HTML — это различные задачи, которые стоит решать по отдельности. Появилось два подхода к решению задачи наполнения сайта информацией:

 * Сайт может представлять собой ответственную структуру. Информация, в таком случае, попадает на сайт после прохождения непростого жизненного цикла: какой-нибудь отдел пишет запрос, запрос обрабатывается службой контента, которая обращается к авторам; авторы пишут текст, текст вычитывается редактором, шеф утверждает текст, и лишь затем текст попадает в нужное место на сайте. Иногда этапов намного меньше, их может быть всего два — один человек готовит информацию, другой размещает её. В любом случае, до появления на сайте информация должна пройти сколько-нибудь этапов обработки.
 * Может существовать сообщество людей (к примеру — учителя, ALT Linux team, любители пива). Члены сообщества могут не быть ни веб-дизайнерами, ни веб-программистами, однако им может быть надо оперативно пополнять информацию на сайте наиболее простым способом. В этом случае, когда речь идет о совместном использовании и редактировании контента, важнее всего простота работы.

Для представления информации в виде веб-страниц используются веб-движки. То есть, помимо веб-сервера, на сервере имеется еще одна программа, которая при запросе от клиента агрегирует хранящуюся на сайте информацию, представленную в специальном виде, и формирует из неё HTML-страницы. Таких движков достаточно много, и среди них тоже можно выделить две большие группы:

 * CMS (Content Management System, системы управления контентом). Это инструменты людей, занимающихся сайтостроением. В них есть уже готовые большое количество готовых модулей, например, системы поддержки блогов, документооборота, внедрения оригинального дизайна.
  * Одним из наиболее развитых инструментов такого плана является движок (точнее, application server) [[http://zope.org/|Zope]], написанный на Python. Под него существуют специальные программы, например, [[http://www.zope.org/Products/CMF/|реализации системы управления содержимым сайта]].
  * [[http://altlinux.ru/|Сайт ALTLinux]] использует другой аналогичный движок — [[http://joomla.org/|Joomla]].
  * Сайт [[http://fosscenter.ru/|fosscenter.ru]] сделан на движке [[http://drupal.org/|Drupal]]. Drupal интересен легкостью установки и удобством управления, однако написан на PHP и в некоторой степени функционально и архитектурно перегружен.
  * Существует и движок, ориентированный на сайты поддержки учебного процесса — [[http://moodle.org/|Moodle]]. Сайты, сделанные на нем, выглядят как система управления учебными курсами.
  . В любом случае, портальный движок обязательно должен сопровождаться ответственным системным администратором, который в этом движке разбирается. Кроме того, существует множество коммерческих портальных движков.
 * Вики (Wiki). Это технология, упрощающая групповую работу с информационным наполнением сайта. На гавайском языке «wiki» означает «быстро». Основная концепция этой технологии — создание веб-страницы должно занимать времени не больше, чем просто набор текста. Кроме того, должна быть максимально упрощена процедура отмены изменений. В отличие от портальных решений, значительная часть которых не бесплатна, существуют десятки свободных wiki-движков.

=== Использование Wiki ===

В качестве движка Wiki рассмотрим движок [[http://moinmo.in/|MoinMoin]]. Он написан на Python и является разумным компромиссом между готовой работающей программой и гибко настраиваемой системой, которую так же и удобно перепрограммировать и расширять. На самих дисках с ПСПО moin отсутствует, однако установить его достаточно просто, если подключить школьный репозиторий и выполнить следующую команду.
Строка 60: Строка 83:
# service httpd restart
Checking configuration sanity for httpd: DONEStopping libhttpd.ep service: DONEStarting libhttpd.ep service: DONE
# apt-get update && apt-get install moin
Строка 63: Строка 85:
##()
##Чем хорош блюфиш --- ненужные заголовки можно поудалять, а как пишутся нужные, можно не запоминать.
Строка 66: Строка 86:
=== Wiki ===

Однако, тот подход, что был только что продемонстрирован, является устаревшим. Практика создания html-страниц вручную на данный момент по большей части ушла в прошлое.

##вы заходите по протокуолу http на сервр, сервер отдаёт вам некий текст, обычно в формате html, это такой язык разметки, то есть язык организации гипертекстовых данных, ваша программа, называемая браузер, т.е. нафигатор, умеет показывать эти html-страницы красивым образом (то есть, где в качестве гипертекста участвует картинка, показывается картинка, где ссылка - ссылка...) и обрабатывать разного рода деятельность (например, вы тыкаете мышкой на ссылку, и она эту ссылку тоже показывает). Вопрос: откуда берутся эти html-ные массивы данных?

Дело в том, что при таком подходе требуется очень много усилий для поддержания сайта в актуальном состоянии.Ранее существовала даже специальная профессия --- контенщик, человек, которому платили за регулярные обновления сайта. Задача создания осмысленной структкры сайта так же не слишком проста. В дополнение ко всему, вручную можно случайно или по незнанию написать html-код, который будет отображаться браузерами некорректно.
 
В какой-то момент произошло осознание того, что дизайн сайта, его наполнение информацией и представление в виде html --- это различные задачи, которые стоит решать по отдельности. Появилось два подхода к решению задачи наполнения сайта информацией:

 * Сайт может представлять собой ответственную структуру. Информация, в таком случае, попадает на сайт после прохождения непрочстого жизненного цикла: какой-нибудь отдел пишет запрос, запрос обрабатывается службой контента, которая обращается к авторам; авторы пишут текст, текст вычитывается редактором, шеф утверждает текст, и лишь затем текст попадает в нужное место на сайте. Иногда этапов намного меньше, их может быть всего два --- один человек готовит информацию, другой размещает её. В любом случае, до появления на сайте информация должна пройти сколько-нибудь этапов обработки.

 * Может существовать сообщество людей (к примеру --- учителя, ALT Linux team, любители пива, любители Евгения Сыромятникова). Члены сообщества могут не быть ни веб-дизайнерами, ни веб-программистами, однако им может быть надо оперативно пополнять информацию на сайте наиболее простым способом.

В первом случае как правило от сайта требуется богатая функциональность --- форум, блоги, и т. п. Во втором случае, когда речь идет о совместном использовании контента, важнее всего простота работы.

Для представления информации в виде веб-страниц используются веб-движки. То есть, помимо веб-сервера, на сервере запускается еще одна программа, которая агрегирует представленную в специальном виде информацию и формирует из неё веб контент. Таких движков достаточно много, и среди них тоже можно выделить две большие группы:

 * Порталы. Это инструменты людей, занимающихся сайтостроением. В них есть уже готовые системы поддержки блогов, документооборота, внедрения оригинального дизайна. Наиболее развитым инструментом такого плана является портальный движок Zope, написанный на Python. Под него существуют специальные программы, например, реализации cms. Сайт altlinux использует другой аналогичный движок --- joomla. fosscenter.ru сделан на движке Drupal. Drupal интересен легкостью установки и удобством управления, однако написан на PHP и перегружен. Существует движок, ориентированный на learning content --- Moodle. Сайты, сделанные на нем, выглядят спецефически, как learning management system. В любом случае, портальный движок обязательно должен сопровождаться ответственным системным администратором.
 
 * wikiwiki. Это технологии, упрощающие работу с сайтами. На гавайском английском название означает "быстро-быстро"(искаженное quick-quick). Основная концепция этой технологии --- создание веб-страницы должно занимать времени не больше, чем просто набор текста. Кроме того, должна быть максимально упрощена процедура отмены изменений. В отличие от портальных решений, большинство из которых не бесплатны, свободных wiki-движков существует несколько сотен. В качестве примера будет рассматриваться движок moin. Он написан на Python и является разумным компромиссом между готовой работающей структурой и вещью, которая гибко настраивается и удобно перепрограммируется. В состав ПСПО moin не входит, однако установаить его достаточно просто.
##Он не входит в состав ПСПО, но очень небольшой и вполне себе изолированный, то есть его можно взять откуда-то и поставить.
##может все таки рассказать как именно?

Чтобы запустить эту службу, выполним:
##какую эту?
Следующим шагом будет создание экземпляра wiki-сайта, для чего существует специальный сценарий `moin-instance-setup`. Его следует запустить с именем вики-узла (последнее должно включать только английские буквы, цифры и дефис):
Строка 103: Строка 98:
При запуске показываются сведения о том, где находятся файлы настроек и контента и какой используется веб-адрес. При запуске показываются сведения о том, где находятся файлы настроек и содержимого и какой используется веб-адрес.  ##После создания экземпляра wiki-сайта необходимо перезапустить веб-сервер командой `service httpd restart`.
##4.2, если поглядеть на приведённые логи
Строка 105: Строка 102:
После этого следует зайти с помощью браузера на адрес `http://localhost/school` и завести там учётную запись, например с именем Admin (для этого так же можно перейти по адресу `http://localhost/school/UserPreferences`).

Для задания суперпользователя Wiki нужно изменить файл `/var/www/wiki/school/cgi-bin/wikiconfig.py`, где необходимо задать переменной `superuser` в качестве значения список имен супер-пользователей. Например, следующая команда дает права супер-пользователя пользователю с именем `Admin`:
Строка 106: Строка 106:
# sed 's/#superuser = \[u"YourName", \]/superuser = [u"SuperUser", ]/' -i /var/www/wiki/school/cgi-bin/wikiconfig.py # sed 's/#superuser = \[u"YourName", \]/superuser = [u"Admin", ]/' -i /var/www/wiki/school/cgi-bin/wikiconfig.py
}}}
(данная команда заменяет закомментированную по умолчанию строку `#superuser = \[u"YourName", \]` на строку `superuser = [u"Admin", ]`)

После того, как в !MoinMoin появилась учетная запись суперпользователя, можно установить необходимые пакеты локализации и сменить интерфейс системы на русский. Это можно сделать на странице `http://localhost/school/SystemPagesSetup`:

{{attachment:../wiki_setup_language.png}}

Для запрещения создания новых пользователей в !MoinMoin, входящем в состав ПСПО, проще всего создать необходимых пользователей, а затем запретить изменения в каталоге, где !MoinMoin хранит информацию о пользователях:
{{{
# chmod u-w /var/www/wiki/school/data/user
}}}
(Подробнее про это можно прочитать [[http://moinmo.in/FeatureRequests/DisableUserCreation|на сайте MoinMoin]])

Если этого не сделать, каждый желающий может зарегистрировать себе пользователя, что может привезти к нежелательным последствиям. Перед добавлением нового пользователя придётся вернуть разрешение на запись:
{{{
# chmod u+w /var/www/wiki/school/data/user
Строка 109: Строка 125:
http://localhost/school/UserPreferences После заведения пользователей следует установить стартовую страницу wiki-сайта. Для одноязычной вики следует раскомментировать (и, при необходимости, отредактировать) следующую строчку в файле `/var/www/wiki/school/cgi-bin/wikiconfig.py`:
{{{
page_front_page = u'MyStartingPage';
}}}
Строка 111: Строка 130:
http://localhost/school/SystemPagesSetup Теперь можно приступать к редактированию содержимого wiki-сайта. При переходе на адрес `http://localhost/school` появляется сообщение об отсутствующей странице. Это ситуация достаточно типична для содержимого wiki-сайтов: ссылка на страницу есть, а страницы ещё нет.

{{attachment:../wiki_missing_start_page.png}}

Для создания страницы выберем вариант «Создать страницу с нуля» и введем некоторый текст, содержащий ссылку на другую страницу. Для идентификации страниц wiki используется !CamelCase.

{{attachment:../wiki_edit_start_page.png}}

Теперь у wiki-сайта есть главная страница, содержащая ссылку на (ещё не созданную) страницу `НашаШкола`. Нажав на эту ссылку, можно создать страниу с информацией о школе — и так далее.

{{attachment:../wiki_new_start_page1.png}}

!MoinMoin позволяет создавать страницы с ссылками, таблицами, рисунками, поддерживает персональные страницы пользователей и страницы категорий, а также поддерживает (как и все wiki) историю изменения страницы. Внешний вид !MoinMoin при необходимости полностью настраивается.
Строка 119: Строка 150:
|| 52 || 1 || 1 || 1 || || 1 || ConstantinYershow, [[Allena]], VsevolodKrishchenko || || || || 90 || 1 || 1 || 1 || || 1 || ConstantinYershow, [[Allena]], VsevolodKrishchenko || || ||

Wiki

Как сделать школьный веб-сайт

Когда вы заходите по протоколу HTTP на сервер, он в ответ на ваш запрос посылает вам некий текст, обычно в формате HTML. HTML — это язык разметки для организации гипертекстовых данных. Для просмотра этого документа пользователем используется программа, называемая веб-браузером («навигатором»), которая умеет показывать HTML-страницы описанным в них образом и обрабатывать разного рода деятельность пользователя: например, вы нажимаете мышкой на ссылку, и она содержимое страницы по этой ссылке показывает. Возникает вопрос: откуда берутся эти массивы данных в виде HTML-страниц? Для ответа на этот вопрос создадим собственный веб-сайт, который будет являться источником HTML-документов.

Веб-сервер Apache

Для создания веб-сайта в начале необходимо установить веб-сервер — программу, общающуюся с клиентами по протоколу HTTP. В связи с тем, что на момент начала создания ПСПО в веб-сервере Apache версии 2.0 были определенные проблемы с безопасностью при включении модуля mod_proxy, а версия 2.2 ещё не была доступна, в ПСПО используется старая, но испытанная версия Apache 1.3, хотя в большинстве дистрибутивов сейчас используется Apache 2.2.

Для развертывания веб-сервера достаточно установить пакет apache и запустить службу httpd. В случае ПСПО веб-сервер будет работоспособен сразу после установки. Установим и запустим сервер Apache следующей командой:

# apt-get install apache && service httpd start

Теперь при попытке зайти на доменное имя или IP-адрес используемой машины по протоколу HTTP (например, при помощи браузера) будет показано следующее:

../../080730/ssh_port_forwarding_remote_server.png

По умолчанию сервер Apache использует в качестве корневого каталога сайта (DocumentRoot) каталог со своей документацией. То, что мы видим приведённую выше страницу, означает, что веб-сервер работает, однако у нас отсутствует собственно веб-сайт, поскольку нет никакого содержания.

Создания HTML-страниц с помощью Bluefish

Для создания сайта можно использовать специально предназначенную среду разработки — Bluefish. Перед созданием каких-либо страниц создадим подкаталог в месте, предназначенном для размещения файлов контента веб-сервера, /var/www, и для простоты разрешим изменять его содержимое всем локальным пользователям:

# mkdir /var/www/site
# chmod o+w /var/www/site

Создадим с помощью редактора Bluefish HTML-страницу:

  1. Откроем bluefish

  1. Откроем диалог создания новой HTML-страницы
    • PspoClasses/080730/bluefish_page_configuration.png

  2. Зададим заголовок страницы и удалим лишние заголовки
    • PspoClasses/080730/bluefish_page_configuration_ambigous_headers_removed.png

  1. Сгенерируем страницу и добавим содержимое страницы

  1. Добавим содержимое страницы.
    • PspoClasses/080730/bluefish_page_final.png

  2. Сохраним полученный результат
    • PspoClasses/080730/bluefish_page_save.png

Сохраним её под именем index.html в свою домашнюю директорию и скопируем её в /var/www/site/.

Затем отредактируем файл конфигурации /etc/httpd/conf/httpd.conf. Поменяем в нём поле DocumentRoot следующим образом:

# DocumentRoot: The directory out of which you will serve your /Root
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/site"

Теперь, после перезапуска apache командой service httpd restart, в браузере при обращении к данной машине можно будет увидеть только что созданную страницу.

Подходы к автоматизированному созданию веб-сайтов

Продемонстрированный подход к созданию HTML-страниц вручную, хоть и полезен для знакомства с языками разметки, но является устаревшим. Практика создания HTML-страниц вручную на данный момент по большей части ушла в прошлое. Дело в том, что при таком подходе требуется очень много усилий для поддержания сайта в актуальном состоянии. Ранее существовала даже специальная профессия — «контенщик», человек, которому платили за регулярные обновления сайта (она существует и сейчас, но имеет несколько иную специфику). Задача создания осмысленной структуры сайта так же не слишком проста. В дополнение ко всему, вручную очень легко случайно или по незнанию написать HTML-код, который будет отображаться некоторыми браузерами некорректно.

В какой-то момент произошло осознание того, что дизайн сайта и его наполнение информацией, и представление его виде HTML — это различные задачи, которые стоит решать по отдельности. Появилось два подхода к решению задачи наполнения сайта информацией:

  • Сайт может представлять собой ответственную структуру. Информация, в таком случае, попадает на сайт после прохождения непростого жизненного цикла: какой-нибудь отдел пишет запрос, запрос обрабатывается службой контента, которая обращается к авторам; авторы пишут текст, текст вычитывается редактором, шеф утверждает текст, и лишь затем текст попадает в нужное место на сайте. Иногда этапов намного меньше, их может быть всего два — один человек готовит информацию, другой размещает её. В любом случае, до появления на сайте информация должна пройти сколько-нибудь этапов обработки.
  • Может существовать сообщество людей (к примеру — учителя, ALT Linux team, любители пива). Члены сообщества могут не быть ни веб-дизайнерами, ни веб-программистами, однако им может быть надо оперативно пополнять информацию на сайте наиболее простым способом. В этом случае, когда речь идет о совместном использовании и редактировании контента, важнее всего простота работы.

Для представления информации в виде веб-страниц используются веб-движки. То есть, помимо веб-сервера, на сервере имеется еще одна программа, которая при запросе от клиента агрегирует хранящуюся на сайте информацию, представленную в специальном виде, и формирует из неё HTML-страницы. Таких движков достаточно много, и среди них тоже можно выделить две большие группы:

  • CMS (Content Management System, системы управления контентом). Это инструменты людей, занимающихся сайтостроением. В них есть уже готовые большое количество готовых модулей, например, системы поддержки блогов, документооборота, внедрения оригинального дизайна.
    • Одним из наиболее развитых инструментов такого плана является движок (точнее, application server) Zope, написанный на Python. Под него существуют специальные программы, например, реализации системы управления содержимым сайта.

    • Сайт ALTLinux использует другой аналогичный движок — Joomla.

    • Сайт fosscenter.ru сделан на движке Drupal. Drupal интересен легкостью установки и удобством управления, однако написан на PHP и в некоторой степени функционально и архитектурно перегружен.

    • Существует и движок, ориентированный на сайты поддержки учебного процесса — Moodle. Сайты, сделанные на нем, выглядят как система управления учебными курсами.

    • В любом случае, портальный движок обязательно должен сопровождаться ответственным системным администратором, который в этом движке разбирается. Кроме того, существует множество коммерческих портальных движков.
  • Вики (Wiki). Это технология, упрощающая групповую работу с информационным наполнением сайта. На гавайском языке «wiki» означает «быстро». Основная концепция этой технологии — создание веб-страницы должно занимать времени не больше, чем просто набор текста. Кроме того, должна быть максимально упрощена процедура отмены изменений. В отличие от портальных решений, значительная часть которых не бесплатна, существуют десятки свободных wiki-движков.

Использование Wiki

В качестве движка Wiki рассмотрим движок MoinMoin. Он написан на Python и является разумным компромиссом между готовой работающей программой и гибко настраиваемой системой, которую так же и удобно перепрограммировать и расширять. На самих дисках с ПСПО moin отсутствует, однако установить его достаточно просто, если подключить школьный репозиторий и выполнить следующую команду.

# apt-get update && apt-get install moin

Следующим шагом будет создание экземпляра wiki-сайта, для чего существует специальный сценарий moin-instance-setup. Его следует запустить с именем вики-узла (последнее должно включать только английские буквы, цифры и дефис):

# moin-instance-setup school
Checking configuration sanity for httpd: DONE
Stopping libhttpd.ep service: DONE
Starting libhttpd.ep service: DONE
Moin-Moin school installation is finished:
        Wiki pages: /var/www/wiki/school
        Wiki url: http://localhost.localdomain/school
        Additional Apache config file: /etc/httpd/conf/addon-modules.d/moin-school.conf
Edit /var/www/wiki/school/cgi-bin/wikiconfig.py to set your site up.

При запуске показываются сведения о том, где находятся файлы настроек и содержимого и какой используется веб-адрес.

После этого следует зайти с помощью браузера на адрес http://localhost/school и завести там учётную запись, например с именем Admin (для этого так же можно перейти по адресу http://localhost/school/UserPreferences).

Для задания суперпользователя Wiki нужно изменить файл /var/www/wiki/school/cgi-bin/wikiconfig.py, где необходимо задать переменной superuser в качестве значения список имен супер-пользователей. Например, следующая команда дает права супер-пользователя пользователю с именем Admin:

# sed 's/#superuser = \[u"YourName", \]/superuser = [u"Admin", ]/' -i /var/www/wiki/school/cgi-bin/wikiconfig.py

(данная команда заменяет закомментированную по умолчанию строку #superuser = \[u"YourName", \] на строку superuser = [u"Admin", ])

После того, как в MoinMoin появилась учетная запись суперпользователя, можно установить необходимые пакеты локализации и сменить интерфейс системы на русский. Это можно сделать на странице http://localhost/school/SystemPagesSetup:

../wiki_setup_language.png

Для запрещения создания новых пользователей в MoinMoin, входящем в состав ПСПО, проще всего создать необходимых пользователей, а затем запретить изменения в каталоге, где MoinMoin хранит информацию о пользователях:

# chmod u-w /var/www/wiki/school/data/user

(Подробнее про это можно прочитать на сайте MoinMoin)

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

# chmod u+w /var/www/wiki/school/data/user

После заведения пользователей следует установить стартовую страницу wiki-сайта. Для одноязычной вики следует раскомментировать (и, при необходимости, отредактировать) следующую строчку в файле /var/www/wiki/school/cgi-bin/wikiconfig.py:

page_front_page = u'MyStartingPage';

Теперь можно приступать к редактированию содержимого wiki-сайта. При переходе на адрес http://localhost/school появляется сообщение об отсутствующей странице. Это ситуация достаточно типична для содержимого wiki-сайтов: ссылка на страницу есть, а страницы ещё нет.

../wiki_missing_start_page.png

Для создания страницы выберем вариант «Создать страницу с нуля» и введем некоторый текст, содержащий ссылку на другую страницу. Для идентификации страниц wiki используется CamelCase.

../wiki_edit_start_page.png

Теперь у wiki-сайта есть главная страница, содержащая ссылку на (ещё не созданную) страницу НашаШкола. Нажав на эту ссылку, можно создать страниу с информацией о школе — и так далее.

../wiki_new_start_page1.png

MoinMoin позволяет создавать страницы с ссылками, таблицами, рисунками, поддерживает персональные страницы пользователей и страницы категорий, а также поддерживает (как и все wiki) историю изменения страницы. Внешний вид MoinMoin при необходимости полностью настраивается.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

90

1

1

1

1

ConstantinYershow, Allena, VsevolodKrishchenko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080722/05Wiki (последним исправлял пользователь eSyr 2009-03-22 23:53:52)