1.
Не самый лучший вариант использовать Oracle Linux, если для Вас это не критично,
то лучше ставить на более дружелюбную redmine систему.
2.
Эта статья ни на что не претендует и написана
для освежения памяти.
3.
Основные этапы установки
3.1.
Установка ruby.
3.2.
Установка postgresql.
3.3.
Сборка ну или установка redmine.
3.4.
Установка fcgi.
3.5.
Настройка apache.
3.6.
Наверное это подходит для любого RedMine.
Все действия ниже выполнялись под root. SELinux лучше поставить в режим permissive на время установки и отладки, чтобы не нарваться на ошибки доступа вызванные именно se. После успешного запуска redmine под apache в режиме permissive можно будет перевести в enforcing и отловить ошибки, если такие будут.
Создаём пользователя redmine,
потом пригодится, собственно он и будет владельцем католога c redmine
useradd redmine
passwd redmine (redmine123!)
Устанавливаем ruby и сразу с rails,
точнее ставим rvm и вместе с ним ruby и rails, это наверное самый простой способ, но не единственный. Подробно
и актуальную версию всегда можно взять тут:
Перед инсталляцией генерим ключик, подробности на ресурсе выше.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --rails
RVM поставит
ruby, rails и менеджер
пакетов для руби gem.
Устанавливаем пакет bundler
gem install bundler
Устанавливаем
ImageMagick
yum install ImageMagick
yum install ImageMagick-devel
В
Oracle
Linux devel
пакет лежит в репозитории optional_latest, как и многие зависимые, нужно его
подключить в yum.
После
установки пакетов ImageMagick,
можно ставить gem rmagick,
если не удалось поставить девел пакеты, то и gem rmagick не станет, во время сборки RedMine нужно
будет исключить его.
gem install rmagick
Устанавливаем Postgresql
yum install postgresql postgresql-server
yum install postgresql-devel.x86_64
Настраиваем
postgresql сервер, при установке пользователь postgres создался
автоматом.
Проверим cat /etc/passwd |grep postgres
Задаём ему
пароль passwd postgres (postgres123!)
Работаем
от пользователя postgres
su – postgres
создаём
кластер или базу
initdb
по
умолчанию в /var/lib/… напишет где.
Смотрим
и правим конфиг /var/lib/pgsql/data/postgresql.conf
listen_addresses=’*’
port = 5432
Правим
/var/lib/pgsql/data/pg_hba.conf если вам это необходимо.
host all all 192.168.1.110/24 md5
host redmine redmine ::1/128
md5
Если включен selinux, то нужно выполнить:
setsebool -P httpd_can_network_connect_db on
Создаём
суперпользователя, вдруг потом пригодится:
su – postgresql
psql
CREATE ROLE sa WITH SUPERUSER LOGIN PASSWORD 'юююю1m';
Создаем
базу и пользователя для redmine
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
Качаем нужную нам версию
redmain
, распаковываем в папку в которой она будет жить
например /
opt
/
redmine
-ХХ/) и доустанавливаем все зависимости необходимые ей.
В папке с редмайн выполняем:
bundle install --without
rmagic
without
используем при отсутсвии
rmagick
Настраиваем
подключение к базе redmine
/config/database.yml
Пример для PostgreSQL (порт по-умолчанию):
production:
adapter: postgresql
database: redmine
host: localhost
username:redmine
password: “my_password”
Генерируем
ключ(в корне редмайн), предварительно ставим гемм pg
gem install pg
rake generate_secret_token
Наполняем
схему(в корне редмайн)
RAILS_ENV=production rake db:migrate
Загружаем дефолтные данные с
русским языком
RAILS_ENV=production REDMINE_LANG=ru rake
redmine:load_default_data
Тестируем, пока можно и под
админом.
ruby script/rails server webrick -e production
Используйте учетную запись
администратора по умолчанию, чтобы войти:
·
Логин: admin
·
Пароль: admin
Не забываем раздать права
Можно раздать примерно так:
chmod -R 664 redmine-2.4.2
chown -R redmine:redmine redmine-2.4.2
find redmine-2.4.2 -type d -exec chmod 755 {} \;
Создаём папки для плагинов и прочей бороды(в корне редмайн):
mkdir tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
chmod 666 log/production.log
Установка fcgi,
необходимый для взаимодействия apache и redmine.
Последняя версия где-то тут: http://www.fastcgi.com/dist/fcgi.tar.gz
Качаем к себе, распаковываем
tar
-zxvf fcgi.tar.gz
устанавливаем
./configure
make
make install
если стало корректно можно ставить соответствующий gem:
gem install fcgi
В корне редмайна нужно создать файлик Gemfile.local с
содержимым
Gem “fcgi”
Пересобираем bundle install
Если у апача нет модуля mod_fcgi, то ставим – для этого
нужен apxs(апачевский
сборщик) поэтому ставим apache-devel
yum install httpd-devel
качаем где-то тут:
ставим
./configure
make
make install
Копируем /redmine/public/dispatch.cgi.example и htaccess в соответствующие «боевые» файлы.
cp dispatch.fcgi.example
dispatch.fcgi
cp htaccess.fcgi.example .htaccess
На эти файлы нужно дать права на выполнение
Chmod 755 .htaccess dispatch.fcgi
В файле dispatch.fcgi нужно указать откуда
будет запускаться руби(первая строка J), в этой папке помимо руби
должен быть bundle и setup.rb,
Использую обертки.
#!/usr/local/rvm/wrappers/ruby-2.2.1/ruby
Полный dispatch.fcgi выглядит так:
#!/usr/local/rvm/wrappers/ruby-2.2.1/ruby
require File.dirname(__FILE__) + '/../config/boot'
require File.dirname(__FILE__) + '/../config/environment'
class Rack::PathInfoRewriter
def initialize(app)
@app = app
end
def call(env)
env.delete('SCRIPT_NAME')
parts = env['REQUEST_URI'].split('?')
env['PATH_INFO'] = parts[0]
env['QUERY_STRING'] = parts[1].to_s
@app.call(env)
end
end
Rack::Handler::FastCGI.run Rack::PathInfoRewriter.new(RedmineApp::Application)
Настраиваем апач, предпологается, что он уже установлен и нам нужно только создать виртуальный хост и настроить его. Обычно конфиги апача лежат где-то тут /etc/httpd/conf/
require File.dirname(__FILE__) + '/../config/boot'
require File.dirname(__FILE__) + '/../config/environment'
class Rack::PathInfoRewriter
def initialize(app)
@app = app
end
def call(env)
env.delete('SCRIPT_NAME')
parts = env['REQUEST_URI'].split('?')
env['PATH_INFO'] = parts[0]
env['QUERY_STRING'] = parts[1].to_s
@app.call(env)
end
end
Rack::Handler::FastCGI.run Rack::PathInfoRewriter.new(RedmineApp::Application)
Настраиваем апач, предпологается, что он уже установлен и нам нужно только создать виртуальный хост и настроить его. Обычно конфиги апача лежат где-то тут /etc/httpd/conf/
Добавили в апаче userdir.conf
AllowOverride FileInfo AuthConfig Limit
Indexes
Options MultiViews Indexes
SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
Так может выглядеть секция ыиртуального хоста:
ServerName redmine2.dddd.ddd
ServerAdmin webmaster@dd.ddd
DocumentRoot /opt/redmine-2.4.2/public/
ErrorLog logs/redmine_error_log
#If you are using mod_fcgid and are
going to upload files larger than
#131072 bytes you should consider
adding the following line
#that allows to upload files up to 20
mb
MaxRequestLen 400971520
Options Indexes ExecCGI FollowSymLinks
Order allow,deny
Allow from all
AllowOverride all
FcgidBusyTimeout 3600
FcgidIOTimeout 300
FcgidMaxRequestInMem 409715200
Лучше переопределить владельца некоторых папок на пользователя под которым запускается апач:
chown -R apache:apache files log tmp public public/plugin_assets
После любых изменений рестаруем апач. Если что-то пошло не так смотрим
и анализируем логи:
/etc/httpd/logs
/opt/redmine…/log
Для пользующих selinux не лишним будет посмотреть в сторону:
chcon -R -t httpd_sys_rw_content_t /opt/redmine-2.4.2/log/
chcon -R -t httpd_sys_rw_content_t /opt/redmine-2.4.2/files
chcon -R -t httpd_sys_rw_content_t /opt/redmine-2.4.2/public/plugin_assets/
chcon -R -t httpd_sys_rw_content_t /opt/redmine-2.4.2/tmp
и др. каталогов, например хранилищ, если вы их используете.
Если для авторизации пользователей redmain используется ldap, то:
setsebool -P httpd_can_connect_ldap 1
Для подключения к базе:
setsebool -P httpd_can_network_connect_db on
Для отправки email уведомлений:
setsebool -P httpd_can_sendmail on
Используемые статьи:
http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Apache_to_run_Redmine