If i help You, send me BTC please 1CJGz4UGyL7hTjPeN8j7fu9LRmmWiWSRHi

Установка Redmine. Полная пошаговая инструкция. Для чайников.

Постов 11 из 174

Redmine — на мой взгляд, лучшее из свободно доступных решений для управления проектами, задачами, ведения статистики и отчетности и много еще чего. Все зависит от требований, фантазии и умений системного администратора \ разработчика.

Итак, перековыряв 100500 разных мануалов по установке и на Хабре и на официальном сайте и в куче блогов, я таки нашел инструкцию, которая от начала и до конца меня устроила и теперь дает возможность за 15 минут установить\обновить\переустановить Redmine 2.x, 3.x

В моем случае я осуществил переезд со старого Redmine 1.4 на новый 3.2, поэтому первые 8 пунктов в случае установки с 0 можно пропустить.

1. Создаю каталог, в который положу резервную копию старого Redmine

1
mkdir /home/usefree/redmine-backup-files

2. Становлюсь суперпользователем для возможности скопировать файлы.

1
sudo -s

3. Копирую файлы пользователей старого Redmine в созданный выше каталог.

1
cp -f /var/lib/redmine/default/files/* /home/usefree/redmine-backup-files/

4. Создаю дамп базы данных. Здесь важно знать учетные данные пользователя, под которым Redmine обращается в базу. Подсмотреть можно в файле /каталог_с_Redmine/config/database.yml

/usr/bin/mysqldump --user redmine --password=password --skip-extended-insert redmine_default \
> /home/usefree/redmine-backup-files/redmine-backup.sql

5. Выхожу из учетной записи суперпользователя

1
exit

6. Перехожу в свой домашний каталог и создаю архив с данными резервной копии.

1
2
cd /home/usefree/
tar -cvzf redmine-backup-files.tar.gz /home/usefree/redmine-backup-files

7. Так как я разворачиваю новый Redmine на новом компьютере, то копирую файлы на этот новый компьютер с ip-адресом 192.168.0.222 в свой домашний каталог:

1
scp redmine-backup-files.tar.gz 192.168.0.222:/home/usefree/

8. Зайдя на этот компьютер, извлекаю файлы

1
tar -xvf redmine-backup-files.tar.gz

9. Приступаю к собственно установке. Начинаю с обновления пакетов в системе.

1
2
sudo apt-get update 
sudo apt-get upgrade

10. Устанавливаю некоторые дополнительные пакеты.

1
2
3
4
5
6
7
sudo apt-get install curl
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --ruby=2.0.0
source /home/$USER/.rvm/scripts/rvm
sudo apt-get install git git-core subversion
sudo apt-get install imagemagick libmagickwand-dev
sudo apt-get install libssl-dev

11. Создаю каталог для Redmine, назначаю владельца каталога.

1
2
3
cd /opt/
sudo mkdir redmine
sudo chown $USER:$USER redmine

12. Копирую из репозитория Redmine 3.2

1
2
3
cd redmine/
svn co http://svn.redmine.org/redmine/branches/3.2-stable current
cd current/

13. Создаю дополнительные каталоги, назначаю им права.

1
2
3
4
5
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R www-data:$USER files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets
mkdir -p /opt/redmine/repos/svn /opt/redmine/repos/git
sudo chown -R www-data:www-data /opt/redmine/repos

14. Устанавливаю инструменты для работы с базой данных и пр.

1
2
3
sudo apt-get install mysql-server libmysqlclient-dev
sudo apt-get install -y libgmp3-dev
sudo apt-get install ruby-dev

15. Создаю базу данных

1
2
3
4
5
6
7
mysql -uroot -p
 
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
EXIT;

16. Создаю конфигурационные файлы

1
2
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

17. Заполняю конфигурационный файл учетными данными для подключения к базе данных.

1
2
3
4
5
6
7
8
9
vi config/database.yml
 
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "password" 
  encoding: utf8

18. Установка менеджера gem-пакетов, установка пакетов зависимостей

1
2
gem install bundler
bundle install --without development test

19. Импортирую данные из старой базы данных

1
bundle exec rake generate_secret_token
/usr/bin/mysql --user=redmine --password='password' redmine < \
/home/usefree/home/usefree/redmine-backup-files/redmine-backup.sql

20. Копирую старые файлы пользователей в новый каталог, назначаю им права

1
2
cp -f /home/usefree/home/usefree/redmine-backup-files/* /opt/redmine/current/files/
sudo chown -R www-data:www-data /opt/redmine/current/files/

21. Инициализирую базу данных

1
RAILS_ENV=production bundle exec rake db:migrate

22. Устанавливаю Web-сервер и дополнительные пакеты

1
2
sudo apt-get install apache2 apache2-dev libcurl4-gnutls-dev apache2 libapache2-svn \
libapache-dbi-perl libapache2-mod-perl2 libdbd-mysql-perl libauthen-simple-ldap-perl openssl

23. Включаю модули web-сервера

1
sudo a2enmod ssl perl dav dav_svn dav_fs rewrite

24. Устанавливаю gem-пакет для связи Redmine и web-сервера

1
2
gem install passenger
passenger-install-apache2-module

Тут может появиться ошибка типа такой

1
/Users/builder/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.13.0/lib/bundler/rubygems_ext.rb:23:in `source': uninitialized constant Gem::Source (NameError)

Решение такое (может отличаться версия ruby):

1
 rm -rf ~/.rvm/gems/ruby-2.0.0-p647/gems/bundler-1.13.1

https://github.com/fastlane/fastlane/issues/6066
До конца выполнения последней команды будет сгенерирован код, который необходимо поместить в файл passenger.conf (следующий пункт инструкции). Поместить, и только потом нажать Enter!

25. Настраиваю конфигурационный файл модуля web-сервера для связи с redmine. Внимание! текст для файла
passenger.conf генерируется в ходе выполнения предыдущей команды, для корректной установки до завершения выполнения предыдущей команды необходимо тот код, который она выдаст, поместить в файл /etc/apache2/conf-available/passenger.conf. Об этом будет написано английским по серому!

1
2
3
4
5
6
sudo vi /etc/apache2/conf-available/passenger.conf
 
   LoadModule passenger_module /home/usefree/.rvm/gems/ruby-2.0.0-p643/gems/passenger-5.0.25/buildout/apache2/mod_passenger.so
 
     PassengerRoot /home/usefree/.rvm/gems/ruby-2.0.0-p643/gems/passenger-5.0.25
     PassengerDefaultRuby /home/usefree/.rvm/gems/ruby-2.0.0-p643/wrappers/ruby

26. Включаю модуль

1
sudo a2enconf passenger

27. Загружаю библиотеку Redmine.pm для аутентификации в репозиториях

1
2
sudo mkdir /usr/lib/perl5/Apache
sudo ln -s /opt/redmine/current/extra/svn/Redmine.pm /usr/lib/perl5/Apache/

28. Настраиваю безопасное подключение по https с использованием самостоятельно сгенерированного сертификата.

1
2
3
4
5
sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/apache2/ssl/redmine.key -out /etc/apache2/ssl/redmine.crt
sudo chmod -R 740 /etc/apache2/ssl
sudo chown -R www-data:www-data /etc/apache2/ssl

29. Создаю конфигурационные файлы виртуальных хостов web-сервера.

1
2
sudo vi /etc/apache2/sites-available/redmine-redirect.conf
sudo vi /etc/apache2/sites-available/redmine.conf

смотреть оригинальный пост

Install Redmine 2.5.x on Ubuntu 14.04 with Apache2, RVM and Passenger

30. Выключаю сайт по-умолчанию

1
sudo a2dissite 000-default

31. Возвращаем удаленный выше bundler

1
gem install bundler

32. Включаю сайт для redmine, перезапускаю web-сервер

1
2
sudo a2ensite redmine redmine-redirect
sudo service apache2 restart

33. Настраиваю доставку уведомлений на почту при изменении в задачах.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vi /opt/redmine/current/config/configuration.yml
 
default:
  email_delivery:
    delivery_method: :smtp
 
  attachments_storage_path: /opt/redmine/current/files
 
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "mailserver.yourdomain.com" 
      port: 25
      domain: "yourdomain.com"

34. Если вдруг забыт пароль админа(admin), то переустановить его на ‘password’ можно так:

1
2
3
4
5
mysql -u redmine -p
#enter: 
UPDATE users SET hashed_password='353e8061f2befecb6818ba0c034c632fb0bcae1b' WHERE login='admin';
UPDATE users SET salt='' WHERE login='admin';
exit;

Огромное спасибо Martin Denizet за труд по подготовке такой суперподробной и понятной инструкции.

Чуть погодя опишу установку некоторых дополнительных плагинов.

, , , , , ,

Menu