Запускаем redmine на ПУ BrainyCP

Все остальные вопросы
Mikhail29
Сообщения: 28
Зарегистрирован: Пт мар 08, 2019 1:05 pm

Запускаем redmine на ПУ BrainyCP

Сообщение Mikhail29 » Вт июл 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 и выполняем по очереди:

Код: Выделить всё

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
Установка redmine
Установка и настройка Ruby
Теперь пора заняться Ruby. Изначально было 3 варианта настройки: использовать уже поставленую Ruby, использовать rvm и использовать rbenv.
Встроенную Ruby использовать не получилось, так как нет поддержки openssl как оказалось, rvm вроде хорош, но были проблемы при установке ruby других версий и их использовании, то есть всё просто зависало, вероятнее всего из-за того что одна версия уже установлена Ruby. В итоге использовалась rbenv у которой оказалось что изоляция от других версий почти абсолютная.

Для начала временно дадим пользователю под которым будем ставить redmine правда sudo:

Код: Выделить всё

gpasswd -a User wheel
Дальше переключимся под этого пользователя перейдём в его директорию sites, установим rbenv, укажем размещение в PATH и установим дополнительную версию Ruby:

Код: Выделить всё

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
Установка и на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 и указываем доступы к созданной бд. Там будет что-то наподобие такой части конфигов:

Код: Выделить всё

#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
последняя команда проверки ruby -v вернёт установленную версию руби в моем случае 2.5.5.

Дальше установка и настройка гемов и redmine:

Код: Выделить всё

gem install mysql2
gem install bundler
gem install passenger
Собираем расширение passenger для httpd(Apache)

Код: Выделить всё

passenger-install-apache2-module
В конце сборки passenger напишет что-то наподобие:

Код: Выделить всё

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>
и что эти строки надо добавить в конфиг apache, пока просто копируем эти строки и сохраняем где-то у себя без добавления и жмём enter. В итоге будут предоупреждения что конфиги не добавлены может ещё что-то. Не обращаем на них внимания.

Дальше ставим необходимые для 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
Немного поднастроим структуру директорий в самом redmine:

Код: Выделить всё

mkdir -p tmp tmp/pdf public/plugin_assets
chown -R User:User files log tmp public/plugin_assets
Если при смене прав директории сайта Вы указали не 755 а меньшие права, то выполняем ещё команду:

Код: Выделить всё

chmod -R 755 files log tmp public/plugin_assets
.

Удаляем пользователя из sudo если надо:

Код: Выделить всё

gpasswd -d User wheel
Донастройка виртхостов(Настройка Apache)
Теперь пора указать что для 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 заменяются на соответствующие ваши данные имени пользователя и имени директории сайта соответственно :D

Спасибо за внимание! Рад буду если кому-то помогу этим маном.
Будут вопросы - пишите, постараюсь найти время и помочь.

Mikhail29
Сообщения: 28
Зарегистрирован: Пт мар 08, 2019 1:05 pm

Re: Запускаем redmine на ПУ BrainyCP

Сообщение Mikhail29 » Пн сен 23, 2019 9:01 am

:!: ВНИМАНИЕ :!:
Замечено что после 1-3 дней работы после установки redmine, apache отваливается и больше не запускается.
Решается эта проблема переустановкой связки вебсервера с панели. Теоретически подозреваю что может помочь и простое удаление httpd24-devel но это пока только теория, так что лучше переустановить. При переустановке redmine и ruby не отваливаются, но начинает нормально работать apache

Аватара пользователя
sbury
Сообщения: 1344
Зарегистрирован: Вт фев 06, 2018 7:51 am

Re: Запускаем redmine на ПУ BrainyCP

Сообщение sbury » Пн сен 23, 2019 11:17 am

когда упадет покажите вывод

systemctl status httpd -l

Mikhail29
Сообщения: 28
Зарегистрирован: Пт мар 08, 2019 1:05 pm

Re: Запускаем redmine на ПУ BrainyCP

Сообщение Mikhail29 » Пн сен 23, 2019 12:34 pm

Развернул ещё одну версию руби и пасажира восстановил бэкап старой версии трекера redmine. Подождем посмотрим отвалится или нет, если отвалится вывод команды скину сюда.

Mikhail29
Сообщения: 28
Зарегистрирован: Пт мар 08, 2019 1:05 pm

Re: Запускаем redmine на ПУ BrainyCP

Сообщение Mikhail29 » Вт май 10, 2022 6:08 pm

Mikhail29 писал(а):
Вт июл 23, 2019 12:24 pm

Код: Выделить всё

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
Добрый вечер. Сейчас появилась надобность поставить redmine, начал делать по своей же давней инструкции ОС CentOS 7. При выполнении установки выше возникла проблема с пакетом, а именно ImageMagick-devel. Как я понял в текущих репозиториях версия ImageMagick-devel
намного ниже актуальной, в итоге проблема с зависимостями для пакета libjpeg-turbo-devel-1.2.90-8.el7.x86_64 а установлено libjpeg-turbo-1.5.90-2.el7.centos.x86_64, можно было бы конечно поиграться с репозиториями или понижением версии, но не особо хочется создавать доп. проблемы с работой панели. Можете подсказать что делать в текущей ситуации?

Вот вывод консоли об ошибке:

Код: Выделить всё

Error: Package: libjpeg-turbo-devel-1.2.90-8.el7.x86_64 (base)
           Requires: libjpeg-turbo(x86-64) = 1.2.90-8.el7
           Installed: libjpeg-turbo-1.5.90-2.el7.centos.x86_64 (@myrepo-centos)
               libjpeg-turbo(x86-64) = 1.5.90-2.el7.centos
           Available: libjpeg-turbo-1.2.90-8.el7.x86_64 (base)
               libjpeg-turbo(x86-64) = 1.2.90-8.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Mikhail29
Сообщения: 28
Зарегистрирован: Пт мар 08, 2019 1:05 pm

Re: Запускаем redmine на ПУ BrainyCP

Сообщение Mikhail29 » Чт май 12, 2022 10:44 am

Никто не ответит?

Аватара пользователя
sbury
Сообщения: 1344
Зарегистрирован: Вт фев 06, 2018 7:51 am

Re: Запускаем redmine на ПУ BrainyCP

Сообщение sbury » Чт май 12, 2022 11:29 am

покажите вывод

Код: Выделить всё

yum list installed | grep ImageMagick
yum list installed | grep libjpeg
Попробуйтк сделать следующее

Код: Выделить всё

yum clean all
yum remove libjpeg-turbo-devel
yum install libjpeg*

Mikhail29
Сообщения: 28
Зарегистрирован: Пт мар 08, 2019 1:05 pm

Re: Запускаем redmine на ПУ BrainyCP

Сообщение Mikhail29 » Пт май 13, 2022 9:25 am

sbury писал(а):
Чт май 12, 2022 11:29 am
покажите вывод

Код: Выделить всё

yum list installed | grep ImageMagick

Код: Выделить всё

ImageMagick.x86_64                 6.9.10.68-6.el7_9          @updates
libImageMagick-compact.x86_64      6.7.8.9-18.el7             @myrepo-centos
sbury писал(а):
Чт май 12, 2022 11:29 am
покажите вывод

Код: Выделить всё

yum list installed | grep libjpeg

Код: Выделить всё

libjpeg-turbo.x86_64               1.5.90-2.el7.centos        @myrepo-centos
sbury писал(а):
Чт май 12, 2022 11:29 am
Попробуйтк сделать следующее

Код: Выделить всё

yum remove libjpeg-turbo-devel
пакет не найден libjpeg-turbo-devel

Код: Выделить всё

No Match for argument: libjpeg-turbo-devel
No Packages marked for removal
sbury писал(а):
Чт май 12, 2022 11:29 am
Попробуйтк сделать следующее

Код: Выделить всё

yum install libjpeg*

Код: Выделить всё

Error: Package: libjpeg-turbo-utils-1.2.90-8.el7.x86_64 (base)
           Requires: libjpeg-turbo(x86-64) = 1.2.90-8.el7
           Installed: libjpeg-turbo-1.5.90-2.el7.centos.x86_64 (@myrepo-centos)
               libjpeg-turbo(x86-64) = 1.5.90-2.el7.centos
           Available: libjpeg-turbo-1.2.90-8.el7.x86_64 (base)
               libjpeg-turbo(x86-64) = 1.2.90-8.el7
Error: Package: libjpeg-turbo-devel-1.2.90-8.el7.x86_64 (base)
           Requires: libjpeg-turbo(x86-64) = 1.2.90-8.el7
           Installed: libjpeg-turbo-1.5.90-2.el7.centos.x86_64 (@myrepo-centos)
               libjpeg-turbo(x86-64) = 1.5.90-2.el7.centos
           Available: libjpeg-turbo-1.2.90-8.el7.x86_64 (base)
               libjpeg-turbo(x86-64) = 1.2.90-8.el7

Аватара пользователя
sbury
Сообщения: 1344
Зарегистрирован: Вт фев 06, 2018 7:51 am

Re: Запускаем redmine на ПУ BrainyCP

Сообщение sbury » Пт май 13, 2022 11:32 am

хорошо, удалите все пакеты касающиеся libjpeg и поставьте их заново

Код: Выделить всё

yum clean all
yum remove libjpeg*
yum install libjpeg*
после этого покажите вывод

Код: Выделить всё

yum list installed | grep libjpeg
и покажите мне полный вывод лога установки, а не просто одну ошибку.

покажите еще вывод команды

Код: Выделить всё

rpm -qa | grep repo

Mikhail29
Сообщения: 28
Зарегистрирован: Пт мар 08, 2019 1:05 pm

Re: Запускаем redmine на ПУ BrainyCP

Сообщение Mikhail29 » Пт май 13, 2022 11:58 am

sbury писал(а):
Пт май 13, 2022 11:32 am
хорошо, удалите все пакеты касающиеся libjpeg и поставьте их заново

Код: Выделить всё

yum clean all
yum remove libjpeg*
yum install libjpeg*
после этого покажите вывод

Код: Выделить всё

yum list installed | grep libjpeg
и покажите мне полный вывод лога установки, а не просто одну ошибку.

покажите еще вывод команды

Код: Выделить всё

rpm -qa | grep repo

Код: Выделить всё

libjpeg-turbo.x86_64               1.2.90-8.el7               @base
libjpeg-turbo-devel.x86_64         1.2.90-8.el7               @base
libjpeg-turbo-static.x86_64        1.2.90-8.el7               @base
libjpeg-turbo-utils.x86_64         1.2.90-8.el7               @base

Код: Выделить всё

repo-kernel-7.0-4.18.el7.noarch
repo-brainy-v3-7.0-13.el7.noarch
Плюс ко всему это полностью убивает панель, так как от libjpeg-turbo зависит вся панель и полностью убивается после этого.

libjpeg-turbo то поставилось, но панели не стало.

Вывод всей установки я не смогу тут написать - ограничение на количество символов в 60000

Ответить