Запускаем redmine на ПУ BrainyCP
Добавлено: Вт июл 23, 2019 12:24 pm
Доброго времени суток. Наконец-то успешно получилось подружить ruby приложение и панель собственно инструкцию как это сделать я здесь и опишу. Для начала хотел бы сказать огромное спасибо службе поддержки и разработчикам панели, а именно alenka, sbury и Andrii. Без Вашей помощи и терпения способа бы так и не нашлось. И так приступим!!!
Подготовка панели
Для начала нам нужно проверить версию MySQL должна быть 8 версия, если нет, то переустанавливаем на нужную через панель. Теоретически можно и 5.7 поставить, но если нет желания делать лишние телодвижения, то лучше сразу переустановить на MySQL 8 так как именно с этой версией я проверял работу, 5.7 не проверял. Так же на аккаунте в панели нам придётся отказаться от jail окружения иначе установка и настройка из-за разных наборов $PATH станет не возможной без танца с бубном. Так что если Вам по зарез нужно jail окружение то для установки redmine и в принципе любого ruby приложения лучше создать отдельный аккаунт в панели. Дальше создаём сайт и если надо вешаем сертификат Letsencrypt, автопродление отключаем так как возможность автопродления при таких изменения в донастройке вирт хостов я не проверял ещё, на крайний случай если нужно то придётся генерировать заново сертификат в ручную через панель, предварительно закоментировав изменния в разделе донастройка вирт хостов, но об этом позже.
Считаем что на этом подготовка панели закончена, в итоге у нас должен быть сервер MySQL 8 и хостинг аккаунт в панели с отключенным jail окружением.
Доустановка необходимых пакетов
Тут не особо много делать, просто подключаемся к серверу по ssh под root и выполняем по очереди:
Установка redmine
Установка и настройка Ruby
Теперь пора заняться Ruby. Изначально было 3 варианта настройки: использовать уже поставленую Ruby, использовать rvm и использовать rbenv.
Встроенную Ruby использовать не получилось, так как нет поддержки openssl как оказалось, rvm вроде хорош, но были проблемы при установке ruby других версий и их использовании, то есть всё просто зависало, вероятнее всего из-за того что одна версия уже установлена Ruby. В итоге использовалась rbenv у которой оказалось что изоляция от других версий почти абсолютная.
Для начала временно дадим пользователю под которым будем ставить redmine правда sudo:
Дальше переключимся под этого пользователя перейдём в его директорию sites, установим rbenv, укажем размещение в PATH и установим дополнительную версию Ruby:
Установка и наcтройка redmine
Дальше нам надо скачать и распаковать нужную нам версию redmine таким образом чтобы в директории сайта были уже директории redmine и его файлы, то есть путь к плагинам должен быть такой: /home/userdir/sites/sitedir/plugins.
Создаем бд в панели.
В распакованых файлах по пути /home/userdir/sites/sitedir/config копируем файлы configuration.yml.example и database.yml.example и даём копиям новые имена configuration.yml и database.yml соответственно.
Подправим конфиги.
Открываем database.yml и указываем доступы к созданной бд. Там будет что-то наподобие такой части конфигов:
Убираем здесь в каждой строчке # и указываем свои данные для подключения бд.
Стоит заметить что когда я оставил host: localhost у меня ничего не сработало, понадобилось указать host: 127.0.0.1 только с таким хостом у меня начала подключаться БД к сайту.
Всю установку redmine начиная от скачивания и заканчивая настройкой конфигов можно провести в ПУ, но только обязательно войдите под пользователям под которым ставить redmine иначе у залитых файлов может оказаться другой владелец, что пагубно скажется на дальнейшей настройке.
Дальше опять выполняем через терминал по ssh.
Даём рекурсивно временно права директории сайта 777 и переходим в директорию сайта куда расспаковали redmine и указываем что именно в этой директории мы используем новую Ruby вместо установленной в панели:
последняя команда проверки ruby -v вернёт установленную версию руби в моем случае 2.5.5.
Дальше установка и настройка гемов и redmine:
Собираем расширение passenger для httpd(Apache)
В конце сборки passenger напишет что-то наподобие:
и что эти строки надо добавить в конфиг apache, пока просто копируем эти строки и сохраняем где-то у себя без добавления и жмём enter. В итоге будут предоупреждения что конфиги не добавлены может ещё что-то. Не обращаем на них внимания.
Дальше ставим необходимые для redmine гемы, генерируем секретный ключ и загружаем дефолтные данные в бд:
Дальше права 777 можно уже отнять у директории сайта, больше они нам не понадобятся:
Немного поднастроим структуру директорий в самом redmine:
Если при смене прав директории сайта Вы указали не 755 а меньшие права, то выполняем ещё команду:
.
Удаляем пользователя из sudo если надо:
Донастройка виртхостов(Настройка Apache)
Теперь пора указать что для redmine нужно использовать ruby и passenger.
Для этого идём в ПУ-Донастройка вирт. хостов. Редактировать apache нашего сайта с redmine.
Там мы вставляем вот такую конфигурацию:
данные в конфигах соответственно подставляем свои.
Сохраняем. Если всё успешно сохранилось и apache запустился значит настроили мы правильно.
Собственно установка и настройка завершены, по домену вашего сайта откроется страница авторизации redmine
Дефолтные логин и пароль admin:admin.
Вместо послесловия:
думаю не проблема догадаться ведь что в инструкции все встречающиеся конструкции User, userm userdir, sitedir заменяются на соответствующие ваши данные имени пользователя и имени директории сайта соответственно
Спасибо за внимание! Рад буду если кому-то помогу этим маном.
Будут вопросы - пишите, постараюсь найти время и помочь.
Подготовка панели
Для начала нам нужно проверить версию MySQL должна быть 8 версия, если нет, то переустанавливаем на нужную через панель. Теоретически можно и 5.7 поставить, но если нет желания делать лишние телодвижения, то лучше сразу переустановить на MySQL 8 так как именно с этой версией я проверял работу, 5.7 не проверял. Так же на аккаунте в панели нам придётся отказаться от jail окружения иначе установка и настройка из-за разных наборов $PATH станет не возможной без танца с бубном. Так что если Вам по зарез нужно jail окружение то для установки redmine и в принципе любого ruby приложения лучше создать отдельный аккаунт в панели. Дальше создаём сайт и если надо вешаем сертификат Letsencrypt, автопродление отключаем так как возможность автопродления при таких изменения в донастройке вирт хостов я не проверял ещё, на крайний случай если нужно то придётся генерировать заново сертификат в ручную через панель, предварительно закоментировав изменния в разделе донастройка вирт хостов, но об этом позже.
Считаем что на этом подготовка панели закончена, в итоге у нас должен быть сервер MySQL 8 и хостинг аккаунт в панели с отключенным jail окружением.
Доустановка необходимых пакетов
Тут не особо много делать, просто подключаемся к серверу по ssh под root и выполняем по очереди:
Код: Выделить всё
yum clean all && yum -y install --disablerepo=* --enablerepo=myrepo-centos mariadb-devel libcurl-devel libtool
yum clean all && yum -y install gcc-c++ httpd24-devel ImageMagick-devel libxml2-devel libxslt-devel gdbm-devel ncurses-devel bison patch readline-devel sqlite-devel libyaml-devel libicu-devel libidn-devel
Установка и настройка Ruby
Теперь пора заняться Ruby. Изначально было 3 варианта настройки: использовать уже поставленую Ruby, использовать rvm и использовать rbenv.
Встроенную Ruby использовать не получилось, так как нет поддержки openssl как оказалось, rvm вроде хорош, но были проблемы при установке ruby других версий и их использовании, то есть всё просто зависало, вероятнее всего из-за того что одна версия уже установлена Ruby. В итоге использовалась rbenv у которой оказалось что изоляция от других версий почти абсолютная.
Для начала временно дадим пользователю под которым будем ставить redmine правда sudo:
Код: Выделить всё
gpasswd -a User wheel
Код: Выделить всё
su User
cd /home/userdir/sites
curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -
echo 'export PATH="/home/User/./sites/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
rbenv install --list /список доступных версий для установки
rbenv install 2.5.5
Дальше нам надо скачать и распаковать нужную нам версию redmine таким образом чтобы в директории сайта были уже директории redmine и его файлы, то есть путь к плагинам должен быть такой: /home/userdir/sites/sitedir/plugins.
Создаем бд в панели.
В распакованых файлах по пути /home/userdir/sites/sitedir/config копируем файлы configuration.yml.example и database.yml.example и даём копиям новые имена configuration.yml и database.yml соответственно.
Подправим конфиги.
Открываем database.yml и указываем доступы к созданной бд. Там будет что-то наподобие такой части конфигов:
Код: Выделить всё
#production:
# adapter: mysql2
# database: redmine
# host: localhost
# username: root
# password: ""
# encoding: utf8
Стоит заметить что когда я оставил host: localhost у меня ничего не сработало, понадобилось указать host: 127.0.0.1 только с таким хостом у меня начала подключаться БД к сайту.
Всю установку redmine начиная от скачивания и заканчивая настройкой конфигов можно провести в ПУ, но только обязательно войдите под пользователям под которым ставить redmine иначе у залитых файлов может оказаться другой владелец, что пагубно скажется на дальнейшей настройке.
Дальше опять выполняем через терминал по ssh.
Даём рекурсивно временно права директории сайта 777 и переходим в директорию сайта куда расспаковали redmine и указываем что именно в этой директории мы используем новую Ruby вместо установленной в панели:
Код: Выделить всё
chmod -R 777 sitedir
cd /home/userdir/sites/sitedir
rbenv local 2.5.5
ruby -v
Дальше установка и настройка гемов и redmine:
Код: Выделить всё
gem install mysql2
gem install bundler
gem install passenger
Код: Выделить всё
passenger-install-apache2-module
Код: Выделить всё
LoadModule passenger_module /home/User/sites/.rbenv/versions/2.5.5/lib/ruby/gems/2.5.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/User/sites/.rbenv/versions/2.5.5/lib/ruby/gems/2.5.0/gems/passenger-6.0.2
PassengerDefaultRuby /home/User/sites/.rbenv/versions/2.5.5/bin/ruby
</IfModule>
Дальше ставим необходимые для redmine гемы, генерируем секретный ключ и загружаем дефолтные данные в бд:
Код: Выделить всё
bundle install --without development test
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
Дальше права 777 можно уже отнять у директории сайта, больше они нам не понадобятся:
Код: Выделить всё
chmod -R 755 /home/userdir/sites/sitedir
Код: Выделить всё
mkdir -p tmp tmp/pdf public/plugin_assets
chown -R User:User files log tmp public/plugin_assets
Код: Выделить всё
chmod -R 755 files log tmp public/plugin_assets
Удаляем пользователя из sudo если надо:
Код: Выделить всё
gpasswd -d User wheel
Теперь пора указать что для redmine нужно использовать ruby и passenger.
Для этого идём в ПУ-Донастройка вирт. хостов. Редактировать apache нашего сайта с redmine.
Там мы вставляем вот такую конфигурацию:
Код: Выделить всё
DocumentRoot /home/User/sites/sitedir/public
LimitRequestBody 1073741824
LoadModule passenger_module /home/User/sites/.rbenv/versions/2.5.5/lib/ruby/gems/2.5.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/User/sites/.rbenv/versions/2.5.5/lib/ruby/gems/2.5.0/gems/passenger-6.0.2
PassengerDefaultRuby /home/User/sites/.rbenv/versions/2.5.5/bin/ruby
PassengerMaxPoolSize 100
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerUseGlobalQueue on
PassengerHighPerformance on
PassengerStatThrottleRate 10
RailsSpawnMethod smart
RailsAppSpawnerIdleTime 86400
RailsFrameworkSpawnerIdleTime 0
PassengerDefaultUser User
</IfModule>
<Directory "/home/User/sites/sitedir/public">
Allow from all
Options -MultiViews
Require all granted
</Directory>
Сохраняем. Если всё успешно сохранилось и apache запустился значит настроили мы правильно.
Собственно установка и настройка завершены, по домену вашего сайта откроется страница авторизации redmine
Дефолтные логин и пароль admin:admin.
Вместо послесловия:
думаю не проблема догадаться ведь что в инструкции все встречающиеся конструкции User, userm userdir, sitedir заменяются на соответствующие ваши данные имени пользователя и имени директории сайта соответственно
Спасибо за внимание! Рад буду если кому-то помогу этим маном.
Будут вопросы - пишите, постараюсь найти время и помочь.