Wiki

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

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

Веб-сервер Apache

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

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

# apt-get install apache && service httpd start

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

PspoClasses/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. Зададим заголовок страницы и удалим лишние заголовки

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

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

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

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

Владельца 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 --- это различные задачи, которые стоит решать по отдельности. Появилось два подхода к решению задачи наполнения сайта информацией:

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

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

В качестве движка Wiki рассмотрим движок Moin. Он написан на 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.

При запуске показываются сведения о том, где находятся файлы настроек и контента и какой используется веб-адрес. После создания экземпляра wiki лучше перезапустить веб-сервер командой service httpd restart.

После этого следует зайти с помощью браузера на адрес 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

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

[ПРИКРЕПЛЁННЫЙ ФАЙЛ]

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

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

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

# 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 есть главная страница, содержащая ссылку на (ещё не созданную) страницу НашаШкола:

[ПРИКРЕПЛЁННЫЙ ФАЙЛ]

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


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

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

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

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

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

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

Level

Maintainer

Start date

End date

62

1

1

1

1

ConstantinYershow, Allena, VsevolodKrishchenko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex