Дано:
Ubuntu 18.04.3 LTS
Redmine 4.0.5
Обновляем систему:
apt-get update && apt-get upgrade
Далее устанавливаем mysql и добавляем его в автозагрузку:
apt-get install mysql-server
systemctl enable mysql
Выполняем первоначальную настройку mysql:
mysql_secure_installation
И пробуем зайти:
mysql -uroot -p
Создаём базу данных, пользователя и назначаем права:
CREATE DATABASE redmine;
CREATE DATABASE redmine_development;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'Password';
GRANT ALL PRIVILEGES ON redmine_development.* TO 'redmine'@'localhost' IDENTIFIED BY 'Password';
FLUSH PRIVILEGES;
exit;
Устанавливаем Ruby и NGINX:
apt-get install ruby-full nginx
Добавляем в автозагрузку:
systemctl enable nginx
Ещё несколько пакетов для успешной инсталяции модулей:
apt-get install dirmngr gnupg apt-transport-https ca-certificates openssl libssl-dev libcrypto++-dev
Устанавливаем модуль passenger для NGINX:
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7
add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main'
apt-get update
apt-get install libnginx-mod-http-passenger
Далее устанавливаем зависимости, необходимые для работы Redmine.
apt-get install build-essential libmysqlclient-dev imagemagick libmagickwand-dev
Переходим в директорию где будет расположена Redmine и скачиваем туда архив:
cd /opt/ && wget https://www.redmine.org/releases/redmine-4.0.5.tar.gz
Всё содержимое из скачанного архива должно быть в директории /opt/redmine, туда и переходим и назначаем права:
cd /opt/redmine
chown -R www-data:www-data /opt/redmine/
chmod -R 755 /opt/redmine/
Создаём файлы конфигурации:
cd /opt/redmine/config/
cp configuration.yml.example configuration.yml
cp database.yml.example database.yml
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "Password"
encoding: utf8mb4
test:
adapter: mysql2
database: redmine_test
host: localhost
username: redmin
password: "Password"
encoding: utf8mb4
Остальные блоки закоменировал.
ОБЯЗАТЕЛЬНО переходим в директорию с Redmine и далее ещё пачка зависимостей:
cd /opt/redmine/
gem install bundler --no-rdoc --no-ri
bundle install --without development test postgresql sqlite
Далее генерация ключей и создание структыры БД:
bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate
Настраиваем NGINX:
listen 80;
server_name rm.domain.ru;
root /opt/redmine/public;
access_log /var/log/nginx/access-redmine.log;
error_log /var/log/nginx/error-redmine.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
Активируем конфигурацию, проверяем корректногсть и перезапускаем при отсутствии ошибок:
ln -s /etc/nginx/sites-available/redmine.conf /etc/nginx/sites-enabled/redmine.conf
nginx -t
service nginx reload
Можно заходить на web-морду. С такой конфигурацией Redmine не откроется по IP адресу, только по доменному имени!!!
Столкнулся с проблемой, что не Redmine не понимает русский язык. Любые параметры, содержащие латиницу приводят к 500 ошибке.
Проблема не в правах на директории.
При создании БД я не указал её кодировку и все таблицы создались в latin1, кажется. Что бы исправить это заходим в mysql и:
mysql -uroot -p
alter database `redmine` character set utf8mb4;
ALTER TABLE `redmine`.`ar_internal_metadata` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`attachments` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`auth_sources` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`boards` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`changesets_issues` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`changesets` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`changeset_parents` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`changes` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`comments` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`custom_fields_projects` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`custom_fields_roles` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`custom_fields_trackers` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`custom_fields` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`custom_field_enumerations` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`custom_values` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`documents` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`email_addresses` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`enabled_modules` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`enumerations` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`groups_users` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`imports` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`import_items` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`issues` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`issue_categories` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`issue_relations` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`issue_statuses` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`journals` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`journal_details` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`members` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`member_roles` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`messages` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`news` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`open_id_authentication_associations` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`open_id_authentication_nonces` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`projects_trackers` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`projects` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`queries_roles` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`queries` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`repositories` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`roles_managed_roles` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`roles` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`schema_migrations` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`settings` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`time_entries` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`tokens` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`trackers` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`users` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`user_preferences` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`versions` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`watchers` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`wikis` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`wiki_contents` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`wiki_content_versions` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`wiki_pages` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`wiki_redirects` CONVERT TO CHARACTER SET utf8mb4 ;
ALTER TABLE `redmine`.`workflows` CONVERT TO CHARACTER SET utf8mb4 ;
И так далее для каждой таблицы с корявой кодировкой.