Project

General

Profile

RusRedmineInstall » History » Version 17

Дмитрий Шеломенцев, 2015-08-26 18:15
Поправил девятый шаг. Добавил описание для Redmine 3.x

1 2 Ruslan Khasanov
[[RusGuide|Руководство]]->[[RusInstallation_guide|Руководство по установке]]
2
3 13 Ruslan Khasanov
Оригинал: [[RedmineInstall|Installing Redmine v.196]]
4 4 Ruslan Khasanov
5 5 Andrey Polyakov
h1. Установка Redmine
6 1 Ruslan Khasanov
7
{{>toc}}
8
9 11 Ruslan Khasanov
Данная документацию по установке Redmine 1.4.0 и выше. Вы все еще можете прочитать документ для 1.3.x "здесь":/projects/redmine/wiki/RedmineInstall?version=146.
10
11 5 Andrey Polyakov
h2. Требования
12
13 1 Ruslan Khasanov
h3. Операционная система
14
15 15 Anonymous
Redmine должен работать на Unix, Linux, [[RedmineInstallOSX|Mac]], [[RedmineInstallOSXServer|Mac Server]] и Windows поскольку Ruby доступен для этих платформ. Конкретные инструкции доступны [[HowTos|здесь]].
16 5 Andrey Polyakov
17 13 Ruslan Khasanov
h3. Ruby интерпретатор
18 1 Ruslan Khasanov
19 13 Ruslan Khasanov
Соответствие версий Ruby и версий Redmine:
20
21 15 Anonymous
|_=.Версия Redmine|_=.Поддерживаемая 
22 11 Ruslan Khasanov
                    версия Ruby     |_=.Необходимая
23 15 Anonymous
                                     версия Rails  |
24
|текущий trunk     |ruby 1.8.72, 1.9.2, 1.9.3, 2.0.01, jruby-1.6.7, jruby-1.7.2|Rails 3.2.13|
25
|2.3.0             |ruby 1.8.72, 1.9.2, 1.9.3, 2.0.01, jruby-1.6.7, jruby-1.7.2|Rails 3.2.13|
26
|2.2.1             |ruby 1.8.72, 1.9.2, 1.9.3, jruby-1.6.7|Rails 3.2.13|
27 1 Ruslan Khasanov
28
h3. База данных
29
30
* MySQL 5.0 и выше (рекомендуется)
31 16 Toshi MARUYAMA
** установите C биндинги для Ruby, которые существенно улучшают производительность. Вы можете получить их запустив @gem install mysql2@.
32 1 Ruslan Khasanov
33 11 Ruslan Khasanov
* PostgresSQL 8.2 или выше
34
** убедитесь, что тип данных установлен в ISO (настройка по-умолчанию для Postgres). Вы можете установить ее используя: @ALTER DATABASE "redmine_db" SET datestyle="ISO,MDY";@
35 1 Ruslan Khasanov
** некоторые ошибки в PostgreSQL 8.4.0 и 8.4.1 вызывают ошибки в Redmine(#4259, #4314), они исправлены в PostgreSQL 8.4.2
36
37 11 Ruslan Khasanov
* Microsoft SQL Server *<notextile>*новое*</notextile>*
38
** поддержка запланирована для версии version#60 (но она уже доступна в trunk для ранних версий)
39
	
40
* SQLite 3 (не для многопользовательского использования!)
41 1 Ruslan Khasanov
42 11 Ruslan Khasanov
h3. Не обязательные компоненты
43
44 1 Ruslan Khasanov
* Бинарники системы управления исходным кодом (SCM) (например svn), для просмотра хранилища(должны быть доступны в PATH). Прочитайте[[RusRedmineRepositories|хранилища Redmine]] для получения информации о совместимости и требованиях.
45 11 Ruslan Khasanov
* "ImageMagick":http://www.imagemagick.org/ (чтобы включить возможность экспорта диаграммы Ганта в png изображение)
46
* "Ruby OpenID Library":http://openidenabled.com/ruby-openid/ (чтобы активировать поддержку OpenID). Требуется версия 2 или выше.
47 1 Ruslan Khasanov
48
h2. Версии Redmine
49
50
Большинству пользователей рекомендуется устанавливать последние версии релизов Redmine. В настроящее время новые версии Redmine выпускаются каждые 6 месяцев, эти релизы считаются стабильными и пригодными к использованияю. Не рекомендуется устанавливать Redmine из trunc репозитария, пока если вы глубоко не изучите Ruby On Rails и не сможете идти в ногу с изменениями - время от времени транк ломается.
51
52
h2. Установка
53
54 11 Ruslan Khasanov
h3. Шаг 1 - Redmine application
55
56
Получите исходный код Redmine, загрузив архив релиза или получив код из хранилища. См. [[Download]].
57
58
h3. Шаг 2 - Установка зависимостей
59
60
Redmine использует "Bundler":http://gembundler.com/ для управления зависимостями gems пакетов.
61
62
Вам необходимо вначале установить Bundler:
63
64
  gem install bundler
65
66 14 Евгений Ермолов
Затем вы можете установить все зависимости требующиеся Redmine. Для этого распаковываете полученный на первом шаге архив релиза в какую-нибудь папку. Делаете эту папку рабочей и устанавливаете зависимости с помощью следующей команды:
67 11 Ruslan Khasanov
68
  bundle install --without development test
69
70
h4. не обязательные зависимости
71
72
h5. RMagick (позволяет использовать ImageMagick для работы с изображениями в при экспорте в PDF и PNG)
73
74
Если ImageMagick не установлен в вашей системе, вы должны пропустить установку gem-пакета rmagick используя команду:
75
76
 @bundle install --without development test rmagick@
77
78
Если у вас проблемы с установкой @rmagick@ на Windows, посмотрите [[HowTo_install_rmagick_gem_on_Windows|это HowTo]].
79
80
h5. Неиспользуемые адаптеры баз данных
81
82
Вы также можете пропустить установку адаптеров баз данных, которые вы не используете.
83
84
Например, если вы используете MySQL, вы можете пропустить установку пакетов PostgreSQL, SQLite с помощью команды:
85
86
 @bundle install --without development test postgresql sqlite@
87
88
h4. Дополнительные зависимости (@Gemfile.local@)
89
90
Если вам нужно загрузить gem-пакеты, которые не требуются для ядра Redmine (например, Puma, FCGI), создайте файл @Gemfile.local@ в корневом каталог Redmine. Данный файл будет автоматически загружаться при запуске @bundle install@.
91
92
Например:
93
<pre>
94
# Gemfile.local
95
gem 'puma'
96
</pre>
97
98
h3. Создайте пустую базу данных и сопутствующего пользователя
99
100
Здесь для примера база данных и пользователь базы будет назван @redmine@, но вы его можете заменить на что-нибудь ещё.
101
102
h4. MySQL
103
104
<pre>
105 1 Ruslan Khasanov
create database redmine character set utf8; 
106
create user 'redmine'@'localhost' identified by 'my_password'; 
107
grant all privileges on redmine.* to 'redmine'@'localhost';
108 11 Ruslan Khasanov
</pre>
109
110
Для версий MySQL до 5.0.2 вместо шага @create user@ используйте:
111
<pre>
112 1 Ruslan Khasanov
grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'my_password';
113 11 Ruslan Khasanov
</pre>
114
115
h4. PostgreSQL
116
117
<pre>
118 1 Ruslan Khasanov
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
119
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
120 11 Ruslan Khasanov
</pre>
121
122
h3. Шаг 4 - Настройка подключения к базе данных
123
124
Скопируйте файл config/database.yml.example в config/database.yml и отредактируйте этот файл так, чтобы настроить параметры базы данных для "production" окружения(реальное окружения, используемое для работы).
125
126
Пример для базы данных MySQL, использующей ruby1.8 или jruby:
127
128 1 Ruslan Khasanov
<pre>
129 5 Andrey Polyakov
production: 
130 7 Andrey Polyakov
 adapter: mysql 
131 1 Ruslan Khasanov
 database: redmine 
132
 host: localhost 
133
 username: redmine 
134
 password: my_password
135
</pre>
136 11 Ruslan Khasanov
137
Пример для базы данных MySQL, использующей ruby1.9 (адаптер должен быть установлен в @mysql2@):
138
139
<pre>
140
production: 
141
 adapter: mysql2 
142
 database: redmine 
143
 host: localhost 
144
 username: redmine 
145
 password: my_password
146
</pre>
147
148 1 Ruslan Khasanov
Если ваш сервер не работает со стандартным портом (3306), используйте эту конфигурацию:
149
<pre>
150
production: 
151
  adapter: mysql 
152
  database: redmine 
153 5 Andrey Polyakov
  host: localhost 
154 1 Ruslan Khasanov
  port: 3307
155
  username: redmine 
156
  password: my_password
157
</pre>
158 11 Ruslan Khasanov
159 1 Ruslan Khasanov
Пример для PostgreSQL (порт по-умолчанию):
160 11 Ruslan Khasanov
161 1 Ruslan Khasanov
<pre>
162
production:
163
  adapter: postgresql
164
  database: <your_database_name>
165
  host: <postgres_host>
166
  username: <postgres_user>
167
  password: <postgres_user_password>
168
  encoding: utf8
169
  schema_search_path: <database_schema> (default - public)
170
</pre>
171 11 Ruslan Khasanov
172
173
h3. Шаг 5 - Генерация ключа для безопасного хранения сессий
174
175
Этот шаг генерирует случайный ключ, используемый Rails для шифрования хранилища, содержащего данные сессий, тем самым предотвращая их фальсификацию.
176
177
Генерация нового ключа сделает недействительными все существующие сеансы после перезагрузки.
178
179
* для Redmine 1.4.x:
180
181 1 Ruslan Khasanov
<pre>
182
rake generate_session_store
183 5 Andrey Polyakov
</pre>
184 11 Ruslan Khasanov
185
* для Redmine 2.x:
186
187
<pre>
188
rake generate_secret_token
189
</pre>
190
191
h3. Шаг 6 - Создание структуры базы данных
192
193 5 Andrey Polyakov
# Создайте структуру базы данных, выполнив следующую команду в корневом каталоге приложения:
194 11 Ruslan Khasanov
195 1 Ruslan Khasanov
<pre>
196
RAILS_ENV=production rake db:migrate
197
</pre>
198 11 Ruslan Khasanov
199
в Windows:
200
<pre>
201
set RAILS_ENV=production
202
rake db:migrate
203
</pre>
204
205
Это создаст таблицы и учетную запись администратора с именем @admin@.
206
207
+проблемы в Ubuntu:+
208
209 1 Ruslan Khasanov
Если вы получите вот такую ошибку:
210 11 Ruslan Khasanov
211 1 Ruslan Khasanov
<pre>
212
Rake aborted!
213
no such file to load -- net/https
214
</pre>
215 11 Ruslan Khasanov
216
вам необходимо установить @libopenssl-ruby1.8@, в Ubuntu выполните: @apt-get install libopenssl-ruby1.8@
217
218
h3. Шаг 7 - Загрузка данных по умолчанию
219
220
Установите в базу данных конфигурацию по умолчанию, выполнив следующую команду:
221
222 1 Ruslan Khasanov
<pre>
223 5 Andrey Polyakov
RAILS_ENV=production rake redmine:load_default_data
224 1 Ruslan Khasanov
</pre>
225 11 Ruslan Khasanov
226
Redmine запросит у вас язык набора данных, которые должны быть загружен. Вы можете также перед запуском команды  установить в переменную окружения @REDMINE_LANG@ значение, которое будет автоматически использовано в процессе загрузки.
227
228
Например:
229
230
в Unix-подобных:
231
232
<pre>
233
RAILS_ENV=production REDMINE_LANG=fr rake redmine:load_default_data
234
</pre>
235
236
в Windows:
237
238
<pre>
239
set RAILS_ENV=production
240
set REDMINE_LANG=fr
241
rake redmine:load_default_data
242
</pre>
243
244
h3. Шаг 8 - Настройка разрешений
245
246 1 Ruslan Khasanov
_Пользователи Windows могут пропустить этот шаг._
247 11 Ruslan Khasanov
248
Пользователь, который запускает Redmine должны иметь разрешение на запись в следующие подкаталоги: 
249
# @files@ (хранит вложения)
250
# @log@ (логи приложения @production.log@)
251
# @tmp@ and @tmp/pdf@ (создайте, если их нет. Используется для создания PDF документов).
252
253 4 Ruslan Khasanov
Предполагается, что вы запустили Redmine от пользователя redmine:
254 1 Ruslan Khasanov
<pre>
255 11 Ruslan Khasanov
mkdir tmp tmp/pdf public/plugin_assets
256 1 Ruslan Khasanov
sudo chown -R redmine:redmine files log tmp public/plugin_assets
257 5 Andrey Polyakov
sudo chmod -R 755 files log tmp public/plugin_assets
258 1 Ruslan Khasanov
</pre>
259 11 Ruslan Khasanov
260
h3. Шаг 9 - Тестирование установки
261
262
Протестируйте установку путем запуска веб-сервера WEBrick:
263
264
* для Redmine 1.4.x:
265
266 1 Ruslan Khasanov
<pre>
267 17 Дмитрий Шеломенцев
bundle exec ruby script/server webrick -e production
268 1 Ruslan Khasanov
</pre>
269 11 Ruslan Khasanov
270
* для Redmine 2.x:
271
272
<pre>
273 17 Дмитрий Шеломенцев
bundle exec ruby script/rails server webrick -e production
274 1 Ruslan Khasanov
</pre>
275
276 17 Дмитрий Шеломенцев
* для Redmine 3.x
277
278
<pre>
279
bundle exec rails server webrick -e production
280
</pre>
281
282 1 Ruslan Khasanov
После старта WEBrick, откройте в браузере http://localhost:3000/. Теперь вы должны увидеть страницу приветствия приложения.
283
284 17 Дмитрий Шеломенцев
> Примечание: Webrick не подходит для нормальной эксплуатации, пожалуйста, используйте WEBrick только для тестирования установки. Не рекомендуется использовать webrick ни для чего кроме разработки. Используйте одно из многих руководств в этой вики для настройки Passenger(также известного как @mod_rails@), FCGI или Rack сервер (Unicorn, Thin, Puma, hellip;) для обслуживания вашего redmine.
285 1 Ruslan Khasanov
286 12 Ruslan Khasanov
h3. Шаг 10 - Вход в приложение
287 1 Ruslan Khasanov
288 11 Ruslan Khasanov
Используйте учетную запись администратора по умолчанию, чтобы войти:
289 1 Ruslan Khasanov
290 11 Ruslan Khasanov
    * Логин: admin
291
    * Пароль: admin
292 1 Ruslan Khasanov
293 11 Ruslan Khasanov
Теперь вы можете посетить раздел ??Administration?? (Администрирование) для изменения настроек приложения.
294 1 Ruslan Khasanov
295 11 Ruslan Khasanov
h2. Настройка
296 1 Ruslan Khasanov
297 11 Ruslan Khasanov
Настройки Redmine определяются в файле @config/configuration.yml@.
298
299
Если вам необходимо изменить настройки по-умолчанию, просто скопируйте @config/configuration.yml.example@ в @config/configuration.yml@ и отредактируйте новый файл. Этот файл хорошо прокомментирован, так что смотрите его.
300
301
Эти настройки могут быть определены для каждого окружения Rails (@production@/@development@/@test@).
302
303
+Важно+: Не забудьте перезапустить приложение после любого изменения.
304
305
h3. Настройка Email / SMTP-серверов
306
307 1 Ruslan Khasanov
Настройка email описана на [[RusEmailConfiguration|отдельной странице]].
308
309
h2. Настройки SCM(система управления исходным кодом)
310
311
Эта секция настроек позволяет вам:
312 11 Ruslan Khasanov
* изменить имена команд по-умолчанию, если бинарники SCM в @PATH@ используют нестандартные имена (Windows .bat/.cmd не работают)
313 4 Ruslan Khasanov
* определить полный путь к бинарникам
314 11 Ruslan Khasanov
315 1 Ruslan Khasanov
Пример(для Subversion):
316 11 Ruslan Khasanov
317 7 Andrey Polyakov
Переопределение имени команды:
318 11 Ruslan Khasanov
319 6 Andrey Polyakov
<pre>
320 1 Ruslan Khasanov
scm_subversion_command: "svn_replacement.exe"
321 11 Ruslan Khasanov
</pre>
322
323
Абсолютный путь:
324
325 1 Ruslan Khasanov
<pre>
326 7 Andrey Polyakov
scm_subversion_command: "C:\Program Files\Subversion\bin\svn.exe"
327 1 Ruslan Khasanov
</pre>
328 7 Andrey Polyakov
329 11 Ruslan Khasanov
h3. Настройка хранилища вложений
330 7 Andrey Polyakov
331
Вы можете задать путь, где Redmine будет хранить вложения, который отличается от стандартного 'files', используя параметр @attachments_storage_path@.
332 11 Ruslan Khasanov
333 7 Andrey Polyakov
Примеры:
334 11 Ruslan Khasanov
335 7 Andrey Polyakov
<pre>
336
attachments_storage_path: /var/redmine/files
337 11 Ruslan Khasanov
</pre>
338
339
<pre>
340 7 Andrey Polyakov
attachments_storage_path: D:/redmine/files
341
</pre>
342
343 11 Ruslan Khasanov
h2. Настройка логирования
344 7 Andrey Polyakov
345
По-умолчанию в Redmine уровень журналирования :info (информация). В зависимости от использования сайта, лог может сильно вырасти. Чтобы это избежать, необходимо его ротировать, либо с помощью системной утилиты @logrotate@, либо через файл @сonfig/additional_environment.rb@.
346
347 11 Ruslan Khasanov
Для использования последнего, необходимо скопировать @config/additional_environment.rb.example@ в @config/additional_environment.rb@ и в нем добавить следующие строки. Отметим, что по умолчанию в файле установлен высокий уровень журналирования, следовательно, должен быть явно установлен в информацию.
348 7 Andrey Polyakov
<pre><code class="ruby">
349
#Logger.new(PATH,NUM_FILES_TO_ROTATE,FILE_SIZE)
350
config.logger = Logger.new(config.log_path, 2, 1000000)
351 10 Andrey Polyakov
config.logger.level = Logger::INFO
352 7 Andrey Polyakov
</code></pre>
353
354 11 Ruslan Khasanov
h2. Резервное копирование
355 7 Andrey Polyakov
356
Резервная копия Redmine должна включать:
357
* данные (хранящиеся в базе данных Redmine)
358
* вложения (хранится в директории files вашей установки Redmine, если не настроено иное местоположение этих файлов)
359
360
Вот простой скрипт, который может быть использован для создания ежедневных резервных копий (предположим вы используете базу данных MySQL):
361 8 Andrey Polyakov
<pre>
362 7 Andrey Polyakov
# База данных 
363
/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz 
364
365
# Вложения 
366 1 Ruslan Khasanov
rsync -a /path/to/redmine/files /path/to/backup/files
367
</pre>
368
369 11 Ruslan Khasanov
h2. Замечания по установке на Windows
370 1 Ruslan Khasanov
371 11 Ruslan Khasanov
Существует готовый инсталлятор Ruby MRI, который можно получить http://rubyinstaller.org.
372 7 Andrey Polyakov
373 11 Ruslan Khasanov
После его установки, выберите _Start Command Prompt with Ruby_ в меню Пуск.
374 7 Andrey Polyakov
375 11 Ruslan Khasanov
+Установите переменную окружения @RAILS_ENV@:+
376
377
При выполнении команд, описанных в данном руководстве, вы должны установить переменной окружения @RAILS_ENV@ с помощью отдельной команды.
378
379
Например команды со следующим синтаксисом:
380
381
<pre>RAILS_ENV=production <any commmand></pre>
382
383
<pre><any commmand> RAILS_ENV=production</pre>
384
385
должны быть превращены в 2-е последовательные команды:
386
387
<pre>set RAILS_ENV=production	
388
<any commmand></pre>
389
390
+Проблемы при установке gem-пакета MySQL:+
391
392
Вам может понадобиться установить gem mysql с помощью команды:
393
394 7 Andrey Polyakov
<pre>
395
gem install mysql
396 11 Ruslan Khasanov
</pre>
397 7 Andrey Polyakov
398 11 Ruslan Khasanov
В некоторых случаях необходимо скопировать _libmysql.dll_ в вашу директорию ruby/bin. Не все libmysql.dll подходят, эта похоже работает http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
399 7 Andrey Polyakov
400 11 Ruslan Khasanov
*Важное замечание для Win7 и последующих*
401
402
В Win7 и последующих, запись @localhost@ закомментирована в host-файле[1], а IPV6 является записью по умолчанию[2]. Так как gem-пакет mysql2 не поддерживает адресацию IPV6[3], то соединение с базой данных не может быть установлено и вы получаете ошибку "@Can't connect to MySQL server on 'localhost' (10061)@".
403
Вы можете проверить это пропинговав @localhost@, если будет пинговаться "::1:", значит используется адресация IPV6.
404
405
+Решение:+
406
407
В файле database.yml заменить @localhost@ на @127.0.0.1@.
408
409
fn1. http://serverfault.com/questions/4689/windows-7-localhost-name-resolution-is-handled-within-dns-itself-why
410
411
fn2. http://www.victor-ratajczyk.com/post/2012/02/25/mysql-fails-to-resolve-localhost-disable-ipv6-on-windows.aspx
412
413
fn3. https://github.com/brianmario/mysql2/issues/279
414
415
h2. Альтернатива ручной установке
416
417
Некоторые пользователи предпочитают пропустить ручную установку и использовать один из [[Download#Third-party-Redmine-bundles|сторонних пакетов Redmine]] со страницы загрузки.