-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathINSTALL
122 lines (82 loc) · 6.25 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Установка форума Cicero
Этот документ описывает, как установить форум Cicero. Этот форум написан
на Django (<http://www.djangoproject.com>), и здесь предполагается, что
с самим Django вы уже в общих чертах знакомы.
## Необходимый софт
Для работы форума необходимы библиотеки:
- html5lib (<http://code.google.com/p/html5lib/>) - используется для
парсинга HTML.
- py-openid (<https://github.com/openid/python-openid>) --
это библиотека реализующая собственно протокол OpenID
- ElementTree (<http://effbot.org/zone/element-index.htm>),
включена в стандартную библиотеку Python 2.5. Очень распространенная
библиотека для парсинга XML.
- Приложение Scipio (<https://github.com/isagalaev/scipio>). Это
дополнительное Django-приложение, реализующее систему [OpenID][1]-профилей
и аутентификацию.
## Установка
Форум сделан как подключаемое приложение, а не как самостоятельный
Django-проект. Если у вас еще нет проекта, в который будет подключаться
форум, создайте его обычными средствами Django:
django-admin.py startproject test_project
Минимум, что нужно настроить в новом проекте -- это параметры базы данных, что
подробно описано в [документации Django][db].
Шаги собственно установки вполне стандартны:
1. Скопировать каталоги cicero и scipio (или поставить symlink) куда-нибудь в
питоновский путь (например в site-packages).
2. Прописать путь к форуму и OpenID-консумеру в INSTALLED_APPS:
INSTALLED_APPS = (
# стандартные
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'cicero',
'scipio',
)
3. Прописать базовый URL форума в проектный urls.py:
urlpatterns = patterns('',
# ...
(r'^cicero/', include('cicero.urls')),
)
4. Подключить настройки обоих приложений Cicero в проектный файл настроек:
from cicero.settings import *
from scipio.settings import *
5. Создать диреткорию на диске для файлов сессиий OpenID-авторизации и вписать
её в настройку `SCIPIO_STORE_ROOT`. Только не создавайте ее внутри
MEDIA_ROOT, потому что это приватные данные, их не должно быть видно с веба.
6. Добавить бэкенд аутентификации:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend', # стандартный
'scipio.authentication.OpenIdBackend',
)
После этого можно запустить тестовый сервер (`./manage.py runserver`) и
найти форум по адресу <http://localhost:8000/cicero/>.
## Поиск
Для поиска используется сервер Sphinx (<http://www.sphinxsearch.com/>). Его,
соответственно, нужно установить и настроить по его документации.
Чтобы Sphinx мог индексировать данные форума, надо в его конфигурации
указать XML-источник данных, который поставляется в Cicero в виде Django-команды
sphinx_xml. Она запускается с одним из двух параметров : 'all' или
'unread', по которым выдается, соответственно, или полное содержимое базы
для переиндексации, или только добавленные статьи с момента последней
полной переиндексации:
./manage.py sphinx_xml all
Эти команды надо прописать в конфигурацию Sphinx по его документации и поставить
переиндексацию в какой-нибудь планировщик, принятый в вашей системе.
Рекомендуемые времена пересчета: в районе 5 - 15 минут для unread индекса и
сутки -- для полного.
## Проверка спама через Akismet
Cicero умеет проверять спам через Akismet (<http://akismet.com>). Чтобы он
работал, нужно зарегистрироваться на сервере и получить свой API-ключ. Его
затем нужно прописать в настройку CICERO_AKISMET_KEY.
## Включение в шаблон сайта
Если форум понравился, его наверняка захочется подключить в основной
шаблон сайта. Для этого нужно в шаблонной директории проекта создать директорию
"cicero" и в ней переопределить нужные шаблоны. Скорее всего нужно будет
переопределеить "cicero/base.html", от которого наследуются все остальные
шаблоны форума. Его, в свою очередь, следует отнаследовать от базового шаблона
сайта, чтобы в нем показывались все нужные шапки-футеры.
[db]: http://docs.djangoproject.com/en/dev/intro/tutorial01/#database-setup
[1]: http://openid.net/