Project

General

Profile

RusRedmineInstall » History » Version 18

Дмитрий Шеломенцев, 2015-08-26 18:35
Обновил данные в таблице соответствий Ruby и версий Redmine. Добавил подсветку синтаксиса.

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