Project

General

Profile

RusRedmineInstall » History » Version 16

Toshi MARUYAMA, 2014-01-11 12:44
fix at gem install mysql2 at

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
ruby script/server webrick -e production
268
</pre>
269 11 Ruslan Khasanov
270
* для Redmine 2.x:
271
272
<pre>
273
ruby script/rails server webrick -e production
274
</pre>
275
276 1 Ruslan Khasanov
После старта WEBrick, откройте в браузере http://localhost:3000/. Теперь вы должны увидеть страницу приветствия приложения.
277
278 11 Ruslan Khasanov
> Примечание: Webrick не подходит для нормальной эксплуатации, пожалуйста, используйте WEBrick только для тестирования установки. Не рекомендуется использовать webrick ни для чего кроме разработки. Используйте одно из многих руководств в этой вики для настройки Passenger(также известного как @mod_rails@), FCGI или Rack сервер (Unicorn, Thin, Puma, hellip;) для обслуживания вашего redmine. 
279 1 Ruslan Khasanov
280 12 Ruslan Khasanov
h3. Шаг 10 - Вход в приложение
281 1 Ruslan Khasanov
282 11 Ruslan Khasanov
Используйте учетную запись администратора по умолчанию, чтобы войти:
283 1 Ruslan Khasanov
284 11 Ruslan Khasanov
    * Логин: admin
285
    * Пароль: admin
286 1 Ruslan Khasanov
287 11 Ruslan Khasanov
Теперь вы можете посетить раздел ??Administration?? (Администрирование) для изменения настроек приложения.
288 1 Ruslan Khasanov
289 11 Ruslan Khasanov
h2. Настройка
290 1 Ruslan Khasanov
291 11 Ruslan Khasanov
Настройки Redmine определяются в файле @config/configuration.yml@.
292
293
Если вам необходимо изменить настройки по-умолчанию, просто скопируйте @config/configuration.yml.example@ в @config/configuration.yml@ и отредактируйте новый файл. Этот файл хорошо прокомментирован, так что смотрите его.
294
295
Эти настройки могут быть определены для каждого окружения Rails (@production@/@development@/@test@).
296
297
+Важно+: Не забудьте перезапустить приложение после любого изменения.
298
299
h3. Настройка Email / SMTP-серверов
300
301 1 Ruslan Khasanov
Настройка email описана на [[RusEmailConfiguration|отдельной странице]].
302
303
h2. Настройки SCM(система управления исходным кодом)
304
305
Эта секция настроек позволяет вам:
306 11 Ruslan Khasanov
* изменить имена команд по-умолчанию, если бинарники SCM в @PATH@ используют нестандартные имена (Windows .bat/.cmd не работают)
307 4 Ruslan Khasanov
* определить полный путь к бинарникам
308 11 Ruslan Khasanov
309 1 Ruslan Khasanov
Пример(для Subversion):
310 11 Ruslan Khasanov
311 7 Andrey Polyakov
Переопределение имени команды:
312 11 Ruslan Khasanov
313 6 Andrey Polyakov
<pre>
314 1 Ruslan Khasanov
scm_subversion_command: "svn_replacement.exe"
315 11 Ruslan Khasanov
</pre>
316
317
Абсолютный путь:
318
319 1 Ruslan Khasanov
<pre>
320 7 Andrey Polyakov
scm_subversion_command: "C:\Program Files\Subversion\bin\svn.exe"
321 1 Ruslan Khasanov
</pre>
322 7 Andrey Polyakov
323 11 Ruslan Khasanov
h3. Настройка хранилища вложений
324 7 Andrey Polyakov
325
Вы можете задать путь, где Redmine будет хранить вложения, который отличается от стандартного 'files', используя параметр @attachments_storage_path@.
326 11 Ruslan Khasanov
327 7 Andrey Polyakov
Примеры:
328 11 Ruslan Khasanov
329 7 Andrey Polyakov
<pre>
330
attachments_storage_path: /var/redmine/files
331 11 Ruslan Khasanov
</pre>
332
333
<pre>
334 7 Andrey Polyakov
attachments_storage_path: D:/redmine/files
335
</pre>
336
337 11 Ruslan Khasanov
h2. Настройка логирования
338 7 Andrey Polyakov
339
По-умолчанию в Redmine уровень журналирования :info (информация). В зависимости от использования сайта, лог может сильно вырасти. Чтобы это избежать, необходимо его ротировать, либо с помощью системной утилиты @logrotate@, либо через файл @сonfig/additional_environment.rb@.
340
341 11 Ruslan Khasanov
Для использования последнего, необходимо скопировать @config/additional_environment.rb.example@ в @config/additional_environment.rb@ и в нем добавить следующие строки. Отметим, что по умолчанию в файле установлен высокий уровень журналирования, следовательно, должен быть явно установлен в информацию.
342 7 Andrey Polyakov
<pre><code class="ruby">
343
#Logger.new(PATH,NUM_FILES_TO_ROTATE,FILE_SIZE)
344
config.logger = Logger.new(config.log_path, 2, 1000000)
345 10 Andrey Polyakov
config.logger.level = Logger::INFO
346 7 Andrey Polyakov
</code></pre>
347
348 11 Ruslan Khasanov
h2. Резервное копирование
349 7 Andrey Polyakov
350
Резервная копия Redmine должна включать:
351
* данные (хранящиеся в базе данных Redmine)
352
* вложения (хранится в директории files вашей установки Redmine, если не настроено иное местоположение этих файлов)
353
354
Вот простой скрипт, который может быть использован для создания ежедневных резервных копий (предположим вы используете базу данных MySQL):
355 8 Andrey Polyakov
<pre>
356 7 Andrey Polyakov
# База данных 
357
/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz 
358
359
# Вложения 
360 1 Ruslan Khasanov
rsync -a /path/to/redmine/files /path/to/backup/files
361
</pre>
362
363 11 Ruslan Khasanov
h2. Замечания по установке на Windows
364 1 Ruslan Khasanov
365 11 Ruslan Khasanov
Существует готовый инсталлятор Ruby MRI, который можно получить http://rubyinstaller.org.
366 7 Andrey Polyakov
367 11 Ruslan Khasanov
После его установки, выберите _Start Command Prompt with Ruby_ в меню Пуск.
368 7 Andrey Polyakov
369 11 Ruslan Khasanov
+Установите переменную окружения @RAILS_ENV@:+
370
371
При выполнении команд, описанных в данном руководстве, вы должны установить переменной окружения @RAILS_ENV@ с помощью отдельной команды.
372
373
Например команды со следующим синтаксисом:
374
375
<pre>RAILS_ENV=production <any commmand></pre>
376
377
<pre><any commmand> RAILS_ENV=production</pre>
378
379
должны быть превращены в 2-е последовательные команды:
380
381
<pre>set RAILS_ENV=production	
382
<any commmand></pre>
383
384
+Проблемы при установке gem-пакета MySQL:+
385
386
Вам может понадобиться установить gem mysql с помощью команды:
387
388 7 Andrey Polyakov
<pre>
389
gem install mysql
390 11 Ruslan Khasanov
</pre>
391 7 Andrey Polyakov
392 11 Ruslan Khasanov
В некоторых случаях необходимо скопировать _libmysql.dll_ в вашу директорию ruby/bin. Не все libmysql.dll подходят, эта похоже работает http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
393 7 Andrey Polyakov
394 11 Ruslan Khasanov
*Важное замечание для Win7 и последующих*
395
396
В Win7 и последующих, запись @localhost@ закомментирована в host-файле[1], а IPV6 является записью по умолчанию[2]. Так как gem-пакет mysql2 не поддерживает адресацию IPV6[3], то соединение с базой данных не может быть установлено и вы получаете ошибку "@Can't connect to MySQL server on 'localhost' (10061)@".
397
Вы можете проверить это пропинговав @localhost@, если будет пинговаться "::1:", значит используется адресация IPV6.
398
399
+Решение:+
400
401
В файле database.yml заменить @localhost@ на @127.0.0.1@.
402
403
fn1. http://serverfault.com/questions/4689/windows-7-localhost-name-resolution-is-handled-within-dns-itself-why
404
405
fn2. http://www.victor-ratajczyk.com/post/2012/02/25/mysql-fails-to-resolve-localhost-disable-ipv6-on-windows.aspx
406
407
fn3. https://github.com/brianmario/mysql2/issues/279
408
409
h2. Альтернатива ручной установке
410
411
Некоторые пользователи предпочитают пропустить ручную установку и использовать один из [[Download#Third-party-Redmine-bundles|сторонних пакетов Redmine]] со страницы загрузки.