1. Как всегда обновляем CentOS:
# yum update2. Если репозиторий EPEL в yum не установлен, добаляем:
# vi /etc/yum.repos.d/epel.repo[epel]
name=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 5 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=0
[epel-source]
name=Extra Packages for Enterprise Linux 5 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=0
3. Ставим nginxname=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 5 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=0
[epel-source]
name=Extra Packages for Enterprise Linux 5 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=0
# yum install nginx4. Ставим PostgreSQL или MySQL
Для MySQL
# yum install mysql mysql-server mysql-develДля PostgreSQL
# yum install postgresql postgresql-server postgresql-devel5. Создаем базу redmine (не забываем поменять пароль changeme)
Для MySQL
# /sbin/service mysqld start# mysql -u root -pmysql> create database redmine character set utf8;
mysql> create user 'redmine'@'localhost' identified by 'changeme';
mysql> grant all privileges on redmine.* to 'redmine'@'localhost';
Для PostgreSQLmysql> create user 'redmine'@'localhost' identified by 'changeme';
mysql> grant all privileges on redmine.* to 'redmine'@'localhost';
# /sbin/service postgresql start# sudo -s -H -u postgres# psql
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'changeme' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine TEMPLATE=template0;
\q
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'changeme' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine TEMPLATE=template0;
\q
6. Ставим Ruby 1.9.2
# yum -y install gcc gcc-c++ zlib-devel openssl-devel readline-devel# wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p180.tar.gz# tar xzvf ruby-1.9.2-p180.tar.gz# cd ruby-1.9.2-p180# ./configure --enable-shared# make# make install# ruby -vruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
7. Ставим rubygems 1.6.2 (В 1.7.1 ошибка http://stackoverflow.com/questions/5520333/rails-3-install-error-invalid-value-for-cert-chain, если что с 1.7.1 можно откатиться gem update --system 1.6.2)
# wget http://rubyforge.org/frs/download.php/74445/rubygems-1.6.2.tgz# tar xvf rubygems-1.6.2.tgz# cd rubygems-1.6.2# ruby setup.rb# gem -v1.6.2
8. Ставим rake и rails
# gem install rake# gem install rails9. Гемы для работы с MySQL или PostgreSQL
Для MySQL
# gem install mysqlДля PostgreSQL
# gem install fastthread# gem install pg10. Ставим нужные версии гемов
# gem install -v=0.4.2 i18n# gem install -v=0.8.3 rake# gem install -v=1.0.1 rack11. Распаковываем Redmine 1.1.2
# cd /usr/local/share# wget http://rubyforge.org/frs/download.php/74419/redmine-1.1.2.tar.gz# tar xzvf redmine-1.1.2.tar.gz12. Настраиваем database.yml в Redmine, пользователя redmine создадим позже
# cd /usr/local/share/redmine-1.1.2# mv config/database.yml.example config/database.yml# vi config/database.ymlДля mySQL:
production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: changeme
encoding: utf8
Для PostgreSQL:adapter: mysql
database: redmine
host: localhost
username: redmine
password: changeme
encoding: utf8
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: changeme
encoding: utf8
schema_search_path: public
13. Создаем хранилище сессий rakeadapter: postgresql
database: redmine
host: localhost
username: redmine
password: changeme
encoding: utf8
schema_search_path: public
# rake generate_session_store14. Редактируем environment.rb
# vi config/environment.rbУбираем комментарий с 5 строчки
ENV['RAILS_ENV'] ||= 'production'После 55 строчки добавляем
if Gem::VERSION >= "1.6.2"
module Rails
class GemDependency
def requirement
r = super
(r == Gem::Requirement.default) ? nil : r
end
end
end
end
module Rails
class GemDependency
def requirement
r = super
(r == Gem::Requirement.default) ? nil : r
end
end
end
end
15. Создаем структуру базы, загружаем данные
# RAILS_ENV=production rake db:migrate# RAILS_ENV=production rake redmine:load_default_data16. Переименовали dispatch.rb
# mv public/dispatch.rb.example public/dispatch.rb17. Добавляем пользователя redmine, от которого будет запускаться Thin
# /usr/sbin/useradd redmine18. Настроили права доступа для пользователя redmine к Redmine
# chown -R redmine:redmine /usr/local/share/redmine-1.1.2# find /usr/local/share/redmine-1.1.2 -type d -exec chmod 755 {} \;# find /usr/local/share/redmine-1.1.2 -type f -exec chmod 644 {} \;19. Ставим и настраиваем сервер Thin
# gem install thin# thin install20. Создаем файл конфигурации Thin /etc/thin/redmine.yml
# vi /etc/thin/redmine.ymlpid: /tmp/thin.pid
group: redmine
timeout: 30
log: /var/log/nginx/thin.log
max_conns: 1024
require: []
environment: production
max_persistent_conns: 512
no-epoll: true
servers: 1
daemonize: true
socket: /tmp/redmine.sock
chdir: /usr/local/share/redmine-1.1.2
user: redmine
group: redmine
group: redmine
timeout: 30
log: /var/log/nginx/thin.log
max_conns: 1024
require: []
environment: production
max_persistent_conns: 512
no-epoll: true
servers: 1
daemonize: true
socket: /tmp/redmine.sock
chdir: /usr/local/share/redmine-1.1.2
user: redmine
group: redmine
21. Настраиваем nginx
# vi /etc/nginx/nginx.confв секцию http добавили:
upstream thin {
server unix:/tmp/redmine.0.sock;
}
в секцию server добавилиserver unix:/tmp/redmine.0.sock;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if (-f $request_filename) {
break;
}
if (!-f $request_filename) {
proxy_pass http://thin;
break;
}
}
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if (-f $request_filename) {
break;
}
if (!-f $request_filename) {
proxy_pass http://thin;
break;
}
}
22. Проверили как все работает вместе
# /sbin/service thin start# /sbin/service nginx startзашли на http://localhost, admin:admin, Порадовались работающему Redmine
23. Добавили в автозагрузку thin и nginx
# /sbin/chkconfig --level 345 thin on# /sbin/chkconfig --level 345 nginx on24. Устанавливаем git
# yum install git25. Добавляем пользователя git для gitolite, включаем пользователя redmine в группу git
# /usr/sbin/useradd git# /usr/sbin/usermod -a -G git redmine26. Устанавливаем gitolite
# cd /tmp# git clone git://github.com/sitaramc/gitolite# cd gitolite# mkdir -p /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks# src/gl-system-install /usr/local/bin /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks27. Создаем папку для репозитория gitolite даем права на нее пользователю и группе git.
# mkdir /var/gitrepo# chown git:git /var/gitrepo# chmod 755 /var/gitrepo28. НА ЛОКАЛЬНОЙ РАБОЧЕЙ СТАНЦИИ генерируем ssh-ключ (ssh-keygen -t rsa) , с которым будет проиницалиализирован gitolite и с который будет использован для удаленного доступа к конфигурации gitolite. Переписываем ключ на сервер в директорию /tmp. Пусть файл публичного ключа называется id_rsa.pub.
29. Инициализируем gitolite
# su git# git config --global user.email "git@server"# git config --global user.name "git"# gl-setup /tmp/id_rsa.pubМеняем переменную $REPO_UMASK, которая устанавливает маску прав (umask, http://www.giocc.com/public-repositories-in-gitolite-with-umasks.html) для файлов и директорий репозитория
$REPO_UMASK = 0022Меняем переменную $REPO_BASE для указания пути к месту хранения репозитория.
$REPO_BASE="/var/gitrepo"30. Тестируем работу gitolite. НА ЛОКАЛЬНОЙ РАБОЧЕЙ СТАНЦИИ клонируем созданный gitolite по умолчанию проект testing.git, создаем, добавляем, коммитим и пушим на сервер файл.
# git clone git@server:testing.git# cd testing# echo "This is test file" >testfile.txt# git add .# git commit -m “This is first commit”# git push origin master31. Создаем тестовый проект в Redmine и указываем ему в качестве Git-репозитория testing.git
В Redmine меню Projects-New project. Name=testing, Identifier=testing, Save. Меню Settings-Repository. SCM=Git, Path to .git directory=/var/gitrepo/testing.git
Сохранили, и если все сделано правильно в меню Repository наслаждаемся результатом )))
Материалы
О Redmine
http://www.redmine.org/
О gitolite
https://github.com/sitaramc/gitolite
О том как поставить Redmine и gitolite
http://eugenkiss.com/blog/2010/installing-redmine-gitolite-ubuntu-10.04/
О том как настраивать репозиторий Git в Redmine
http://www.redmine.org/projects/redmine/wiki/RedmineRepositories#Git-repository
О том как инсталлировать Redmine на mysql, apache, passenger
http://www.systmbx.com/redmine/how-to-install-redmine-on-centos-5-5
Про настройку прав на вновь создаваемые файлы в репозитории gitolite
http://www.giocc.com/public-repositories-in-gitolite-with-umasks.html
HOWTO: Ubuntu 10.04 + redmine + nginx + gitosis
http://garfeild.ru/blog/projects/howto-ubuntu-10-04-redmine-nginx-gitosis
Про даунгрейд рубигемов
http://stackoverflow.com/questions/5520333/rails-3-install-error-invalid-value-for-cert-chain
Комментариев нет:
Отправить комментарий