Wiki source code of Russian

Last modified by Thomas Mortagne on 2011/02/22 09:06

Show last authors
1 {{box cssClass="floatinginfobox" title="**Содержание**"}}
2 {{toc start="2"/}}
3 {{/box}}
4
5 == Вступление ==
6 Данная инструкция содержит последовательное описание процесса первоначальной установки и оптимальной настройки XWiki Enterprise в варианте под Windows + GlassFish + OracleXE.
7
8 Исходным материалом послужили инструкции по инсталляции с сайта xwiki.org. Однако они являются более абстрактными и часто не учитывают специфики настроек под русские условия. Именно это и послужило стимулом к написанию данной инструкции.
9
10 Инструкция делалась "под себя" - для обеспечения простой возможности повторить быстрое развертывание системы (в т.ч. другими администраторами). Инструкция составлена не по принципу "если - то" (как например, составлены инструкции по инсталляции на xwiki.org), а более жестко - "делать так" - поэтому многие вещи указываются без подробных объяснений, почему именно так.
11
12 Имеется [[старая версия данной инструкции>>UNA.XWikiInstalationJetty&Glassfish]], которая начинала писаться еще когда XWiki была версией 2.0 или 2.1 и под Jetty, потом туда добавился GlassFish. Но все равно там осталось много не используемого сейчас. Новый вариант инструкции писался под версию XWiki - 2.7, 3.0.
13
14 Из нового варианта инструкции убрано много лишнего, в 1-ую очередь - все что касается Jetty. Изначально я пытался развертывать XWiki в варианте Windows + Jetty + OracleXE, но потом понял, что Jetty не годится для рабочей эксплуатации. Из принципиальных минусов - зависания сервиса и медленная скорость работы с аттачами.
15
16 Потом стал искать что-то вместо Jetty - и остановился на GlassFish. Понравилось - web-интерфейс настройки, то что не надо так сильно тюннить его как Jetty, ну и конечно скорость - файлы аттачились почти со скоростью, как если бы они копировались в локалке (jetty раз в 10 хуже)!
17
18 Новый вариант инструкции пока не полный. Еще будут добавляться разделы касаемо настройки LDAP, настройки соединения со сторонней базой Oracle и пр. Также планируется перевод на английский и румынский языки.
19
20 == ПО, необходимое для загрузки ==
21
22 * **[[XWiki Enterprise>>http://www.xwiki.org/xwiki/bin/view/Main/Download#HXWikiEnterprise]]**:
23 ** берем war-файл - собственно само приложение,
24 ** и также xar-файл - содержит начальные настройки и базовые страницы wiki.
25
26 * **[[Java Development Kit (JDK)>>http://www.oracle.com/technetwork/java/javase/downloads/index.html]]** - необходимо для работы сервера приложений.
27
28 * **[[Glassfish Application Server>>http://glassfish.java.net/]]** - сервер приложений.
29
30 * **[[Oracle JDBC Drivers>>http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html]]** - оптимальный выбор **ojdbc5.jar** от Oracle 11G.
31
32 * Для работы приложения "импорт офисных документов" требуется:
33 ** **[[OpenOffice>>http://download.openoffice.org/index.html]]** - офисный пакет, используемый для конвертации.
34 ** **[[windows server 2003 resource kit>>http://go.microsoft.com/fwlink/?LinkId=4544]]** - позволяет создать сервис.
35
36 * В случае, если СУБД Oracle будет устанавливаться локально, то также будет необходимо **[[Oracle Database Express Edition>>http://www.oracle.com/technology/software/products/database/xe/index.html]]**.
37 {{info}}
38 Следует закачивать т.н. //Universal//-версию OracleXE для обеспечения поддержки UTF-8 (мультиязычности) на уровне БД.
39 {{/info}}
40
41 == Установка базового набора приложений ==
42 **OracleXE** (если будем использовать локальную БД).
43 * просто инсталлируем через Setup.
44 {{info}}
45 В OracleXE, при инсталляции, отсутствуют возможности настройки языковых параметров БД. А для XWiki, для обеспечения мультиязычности, нужно чтобы они были настроены в UTF8 (например, ##NLS_CHARACTERSET## должен быть ##AL32UTF8##). Для этого необходимо чтобы OracleXE устанавливалась на версию Windows, где изначально все языковые настройки были сделаны в English. При этом недостаточно, чтобы эти настройки были настроены перед установкой OracleXE - они должны быть изначально такими именно при инсталляции Windows. Попытки настройки "по ходу дела" не дали результата.
46 {{/info}}
47
48
49 **Java Development Kit (JDK)**
50 * Запускаем installer
51 * JavaDB можно отключить
52 * дальше все автоматически
53
54
55 **GlassFish application server**
56 * запускаем installer
57 * должен найти установленную версию JDK
58 * дополнительный компонент Update Tool выбираем
59 * меняем порт по умолчанию, т.к. он пересекается с портом web-консоли Oracle (8080). Ставим, например - //8008//.
60 * дальше все автоматически
61
62
63 == Установка XWiki Enterprise ==
64 **Установка XWiki в GlassFish**
65 * запускаем GlassFish командой ##C:\glassfishv3\bin\asadmin start-domain## (останавливать командой ##stop-domain##).
66 * В браузере набираем http://localhost:4848 и заходим в админ-консоль GlassFIsh (имя и пароль задаются при инсталляции, например, как в XWiki - //Admin/admin//).
67 * Выбираем в дереве слева ##Applications## а в правой части - ##Deploy##.
68 * Открываем с диска war-файл XWiki.
69 * Устанавливаем: ##Type = Web Application, Context Root = xwiki, Application name = xwiki##.
70 * Остальные параметры можно не менять и жмем OK.
71
72
73 **Настройка соединения с Oracle**
74 * создаем схему для XWiki:
75 ** подключаемся к Oracle dba-юзером
76 ** создаем схему ##create user xwiki identified by xwiki;##
77 ** назначаем привелегии ##grant all privileges to xwiki;##
78 {{info}}
79 Можно не назначать полные привилегии, а оставить //по умолчанию//. Полные привилегии могут потребоваться для режима multi-wiki (когда устанавливается XEM) (пока в точности не известно).
80 {{/info}}
81
82 * Копируем файл JDBC-драйвера (##ojdbc5.jar##) в ##\xwiki\WEB-INF\lib## (подпапка в папке приложений GlassFish для домена1).
83
84 * Редактируем файл настроек соединения XWiki с БД ##\xwiki\WEB-INF\hibernate.cfg##:
85 ** Закомментировать строки не относящиеся к Oracle (general database).
86 ** Разкомментировать ту часть, где касается Oracle.
87 ** Указываем параметры коннекта к базе (SID и host).
88 {{info}}
89 Если локально установлен OracleXE можно ничего не менять - а только разкомментировать и закомментировать соответствующие места.
90 {{/info}}
91
92 * Возможно еще следует включить UTF-8 для Oracle (точно не известно насколько это нужно или нет)
93 ** Открываем файл настроек соединения XWiki с БД ##\xwiki\WEB-INF\hibernate.cfg##
94 ** перед строкой ##<mapping resource="xwiki.oracle.hbm.xml"/>## добавляем 2 строки:
95 {{code language="none"}}
96 <property name="connection.useUnicode">true</property>
97 <property name="connection.characterEncoding">UTF-8</property>
98 {{/code}}
99
100 * Перезапускаем GlassFish командами ##stop-domain## и ##start-domain##.
101
102
103 **Дополнительная настройка GlassFish и запуск его как windows-сервиса**
104
105 **Дополнительная настройка GlassFish**
106 * Следует добавить дополнительную опцию для JVM ##-Xrs##
107 {{info}}
108 Данная настройка необходима, т.к. в противном случае, GlassFish windows-сервис будет завершаться всегда при logout пользователя на сервере.
109 {{/info}}
110 ** Заходим в админ-консоль GlassFish
111 ** В дереве слева выбираем ##Configuration##, ##JVM Settings##
112 ** На открывшейся страничке выбираем закладку вверху ##JVM Options##
113 ** Откроется страница с параметрами JVM. Нажимаем кнопку вверху списка параметров ##Add JVM Options##
114 ** В добавленном поле пишем -Xrs и нажимаем на ##Save##
115
116 * Еще одна необходимая вещь - настройка UTF-8 в GlassFish
117 ** Также из admin-консоли, в дереве слева выбираем ##Enterprise Server##
118 ** На открывшейся странице выбираем закладку вверху ##Advanced##, a потом подзакладку ##Domain attributes##
119 ** В поле ##Locale## пишем ##en_US.UTF-8##
120
121 **Установка GlassFish как windows-сервиса**
122 * Останавливаем GlassFish командой ##stop-domain##
123
124 * Затем установить GlassFish как windows-сервис командой ##asadmin create-service##.
125 {{info}}
126 Для выполнения этой команды на компьютере должен быть установлен Net Framework v.2.
127 {{/info}}
128
129 * И запустить GlassFish через стандартную оснастку windows - управление сервисами.
130 {{info}}
131 Помимо windows-оснастки, управление сервисом можно осуществлять из командной строки, следующими командами:
132 {{code language="none"}}
133 Start Command: C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe start
134 Stop Command: C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe stop
135 Uninstall Command: C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe uninstall
136 Install Command: C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe install
137 {{/code}}
138 {{/info}}
139
140 * Пробуем открыть xwiki: ##{{{http://localhost:8008/xwiki}}}##. Если все нормально, то откроется начальная страница xwiki.
141 {{info}}
142 - GlassFish в реальности запускается не сразу после старта windows-сервиса - следует подождать еще 2-5 минут.
143 - Если вместо начальной страницы XWiki открылась страница с сообщениями об ошибках - то следует устранить ошибку и обязательно перезапустить GlassFish.
144 - Из типовых проблем можно выделить: а) забыли jdbc-драйвер Oracle; b) неправильно отредактировали файл настроек соединения с БД; c) не так как нужно для XWiki настроены языковые параметры (NLS) Oracle (см. комменты по этому поводу выше).
145 {{/info}}
146
147
148 **Добавление начального набора страниц XWiki и начальные настройки**
149 **Импорт xar-файла**
150 * На открывшейся после установки XWiki Enterprise странице, вверху, выбираем меню ##Wiki##, а затем ##Administration##.
151
152 * Откроется страница Import, с возможностью выбора файла с диска. Выбираем с диска xar-файл от xwiki и нажимаем ##Upload##.
153
154 * Ваш xar-пакет с начальными страницами XWiki появиться в списке ##Available packages##. Кликаем на него.
155
156 * После клика, через некоторое время, в правой части будет открыт список страниц, содержащихся внутри xar-пакета, а внизу него кнопка ##Import##. Жмем на нее.
157
158 * После завершения импорта начального xar-файла следует залогиниться для продолжения работы.
159 {{info}}
160 первоначально логиниться следует под пользователем ##Admin##, а пароль ##admin##.
161 {{/info}}
162
163 **Начальные настройки**
164 * Для группы, куда входит юзер Admin (это группа ##XWikiAdminGroup##) следует дать права на programming (в разделе ##Administration##, ##Rights##)
165
166 * Также следует настроить XWiki на работу в MultiLanguage режиме.
167 ** Выберите раздел ##Administration##, ##General##
168 ** На открывшейся странице установите ##true## для опции ##Multilingual##
169 ** В поле languages установите перечень желаемых языков через запятую, например ##en,ru,ro##
170
171 == Установка и настройка сервера OpenOffice.org ==
172 {{warning}}
173 XWiki поддерживает работу с версиями OpenOffice.org 3.0x, 3.1x, 3.2x. Версия 3.3 на текущий момент не поддерживается.
174 {{/warning}}
175
176 Установка OpenOffice.org и настройка на работу с XWiki возможна 2 способами:
177 * internal - XWiki непосредственно работает с установленной версией OpenOffice.org
178 * external - OpenOffice.org запускается как windows-сервис, а XWiki работает уже с ним
179
180 Далее каждый из этих способов будет рассмотрен отдельно. Нами будет рассматриваться internal-вариант, как более простой.
181
182 **Установка OpenOffice.org и настройка для XWiki в варианте internal**
183 * Запускаем инсталлятор, отвечаем на вопросы, путь по умолчанию лучше не менять.
184 * После завершения запускаем Openoffice хотя бы один раз, чтобы выполнился мастер регистрации.
185
186 * Заходим в опции OpenOffice.org, раздел ##Open/Save##, дальше ##HTML Compatibility##
187 * Устанавливаем параметр ##Character set## в ##UTF-8## и сохраняем
188
189 * Открываем файл ##\xwiki\WEB-INF\xwiki.properties##, разкоментируем и меняем в нем следующие переменные:
190 ** переменную ##openoffice.autoStart=true##
191 ** а также ##openoffice.profilePath=C:/Documents and Settings/Administrator/Application Data/OpenOffice.org/3## - это путь куда пишутся настройки для текущего пользователя - именно они и будут использоваться в дальнейшем.
192
193 * Теперь надо перезапустить GlassFish и в XWiki, ##Administration## открыть раздел ##OpenOffice Server##. Если все нормально - в поле ##server state## будет стоять ##Connected##.
194
195 == Дополнительный тюннинг XWiki ==
196
197 * Если требуется чтобы **имена прикрепленных файлов показывались полностью** (по умолчанию показывается только 1-ые 25 символов), следует в attachmentsinline.vm в папке templates добавить первую строку ###set($maxnamelength = 256)##
198
199 * Для того, **чтобы в Print preview показывалось только собственно содержимое страницы** и ничего более следует открыть файл ##print.css## в папке с используемым скином и в раздел ##/* Hide unneeded stuff */##, после строки ###globallinks, #footerglobal,## добавить строку:
200
201 {{code language="none"}}
202 #headerglobal, #hierarchy, #document-title, #document-info, #xdocFooter, #docextrapanes,
203 {{/code}}
204
205 * Для того, **чтобы вывести все иконки на тулбар в wysiwyg-редакторе** необходимо:
206 ** открываем ##templates\macros.vm##
207 ** находим строку ##plugins: '$xwiki.getXWikiPreference("wysiwyg.plugins",## - в этой строке указываются те плагины, которые будут подгружаться, но сам вид тулбаров настраивается ниже.
208 ** в найденную строку добавляем через пробелы (место не имеет значения) - ##color font justify## - только этих трех плагинов нету в варианте по умолчанию.
209 ** Теперь в строке ##toolbar: '$xwiki.getXWikiPreference("wysiwyg.toolbar"## добавляем сами иконки. Вот полный вариант:
210
211 {{code language="none"}}
212 bold italic underline strikethrough teletype | subscript superscript | justifyleft justifycenter justifyright justifyfull | unorderedlist orderedlist |
213 outdent indent | undo redo | format | fontname fontsize forecolor backcolor | hr removeformat symbol | paste
214 {{/code}}
215
216 - символ "|" означает строчный разделитель, символ "/" - разбивает тулбар на несколько строк.
217
218 * Для того, **чтобы обеспечить сортировку прикрепленных файлов по дате изменения**, следует в файле attachmentsinline.vm в папке templates после строки ###set($attachments = $doc.attachmentList)## (и соответственно перед ##<div id="attachmentscontent" class="xwikiintracontent">##) добавить:
219
220 {{code language="none"}}
221 #set($attachmentsMap = $util.hashMap)
222 #foreach($a in $attachments)
223 #if(!$attachmentsMap.containsKey($a.date))
224 #set($discard = $attachmentsMap.put($a.date, $util.arrayList))
225 #end
226 #set($discard = $attachmentsMap.get($a.date).add($a))
227 #end
228 #set($dates = $util.arrayList)
229 #foreach($date in $attachmentsMap.keySet())
230 #set($discard = $dates.add($date))
231 #end
232 #set($dates = $util.sort($dates))
233 #set($dates = $util.reverseList($dates))
234 #set($attachments = $util.arrayList)
235 #foreach($date in $dates)
236 #set($discard = $attachments.addAll($attachmentsMap.get($date)))
237 #end
238 {{/code}}
239
240 * **Аттачи-файлы MS Office 2007 и OpenOffice в IE сохраняются как zip-архивы (с расширением zip).** Проблема имеет место только в IE. Решение такое - в файл web.xml, который лежит в папке WEB-INF приложения добавить в соответствующем месте (поискать по ##mime##) содержимое из [[приложенного текстового файла>>attach:MIMETypes4XWiki.txt]]. В XWiki последних версий в файле web.xml уже вставлены MIME-типы под некоторые форматы файлов, но далеко не под все.
241
242 * **Проблемы с импортом xar-файлов, проявляющиеся на версиях XWiki 2.3, 2.4 на Glassfish v.3** (выдается ошибка: //number 0 in 11: Uncaught exception Wrapped Exception: org.apache.commons.codec.binary.Base64)//, связаны с тем, что Glassfish и XWiki имеют разные версии одной и той же библиотеки. Для решения проблемы следует скопировать файл ##commons-codec-1.4.jar## из ##\xwiki\WEB-INF\lib## в папку ##\glassfishv3\glassfish\modules## а оттуда удалить ##commons-codec-repackaged.jar##.
243 {{info}}
244 В версии XWiki 3.0 данной проблемы уже не возникло.
245 {{/info}}
246
247 * **Ограничение в 10MB для upload-а**. В XWiki имеется ограничение на upload. Для его регулирования следует:
248 ** edit the XWiki.XWikiPreferences class and add a NumberProperty field of type long, named upload_maxsize; if the field already exists, you can skip this step
249 ** edit the XWiki.XWikiPreferences object and specify the desired maximum attachment size (in bytes)