Wiki source code of Russian
Last modified by Thomas Mortagne on 2011/02/22 09:06
Show last authors
author | version | line-number | content |
---|---|---|---|
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) |