четверг, 28 июня 2012 г.

Установка Redmine на CentOS 6.2 (Часть 2)

Продолжение статьи об установке Redmine на сервер под управлением CentOS 6.2. Предыдущую часть вы можете прочитать здесь.
В этой части мы установим сервер базы данных MySQL, пакеты для работы с графикой ImageMagick и RMagick, а так же установим поддержку TrueType шрифтов. Стрижка только началась.
Поехали...

    Содержание:
  1. Проверка текущей версии CentOS.
  2. Подготовка к установке. Установка дополнительных пакетов.
  3. Установка Ruby.
  4. Установка RubyGems.
  5. Установка Rails.
  6. Установка Extra Packages for Enterprise Linux 6 (EPEL).
  7. Установка MySQL.
  8. Конфигурация MySQL.
  9. Первый запуск MySQL.
  10. Создание пароля для root и удаление анонимного подключения к MySQL.
  11. Создание базы данных и пользователя для Redmine.
  12. Установка автоматического запуска MySQL.
  13. Установка ImageMagick.
  14. Установка поддержки шрифтов TrueType.
  15. Установка RMagick.
  16. Установка Redmine.
  17. Установка Apache.
  18. Начальная настройка Redmine.
  19. Установка модуля MySQL для подключения через Ruby.
  20. Настройка файла configuration.yml.
  21. Установка Passenger.
  22. Подключение и настройка модуля Passenger к Apache.
  23. Изменение конфигурации, если используется SELinux.
  24. Запуск Apache и установка его автозагрузки.

7. Установка MySQL.

[root@loginsrv src]# yum install mysql mysql-server mysql-devel

[...skipped...]

Total download size: 10 M
Is this ok [y/N]: y

[...skipped...]

Installed:
  mysql-server.x86_64 0:5.1.61-1.el6_2.1

Dependency Installed:
  perl-DBD-MySQL.x86_64 0:4.013-3.el6

Updated:
  mysql.x86_64 0:5.1.61-1.el6_2.1
  mysql-devel.x86_64 0:5.1.61-1.el6_2.1

Dependency Updated:
  mysql-libs.x86_64 0:5.1.61-1.el6_2.1

Complete!

8. Конфигурация MySQL.

[root@goodjob rubygems-1.8.11]# vi /etc/my.cnf
Добавить в файл /etc/my.cnf поддержку UTF-8.
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=utf8

9. Первый запуск MySQL.

[root@loginsrv src]# /etc/init.d/mysqld start
Initializing MySQL database:  Installing MySQL system tables...
120626 13:37:37 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
OK
Filling help tables...
120626 13:37:37 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h loginsrv password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
Первый запуск объявил, что параметр default-character-set имеет статус deprecated, поэтому его требуется заменить на character-set-server.
[root@loginsrv src]# /etc/init.d/mysqld stop
Stopping mysqld:                                           [  OK  ]
[root@goodjob rubygems-1.8.11]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8
[root@loginsrv src]# /etc/init.d/mysqld start
Starting mysqld:                                           [  OK  ]

10. Создание пароля для root и удаление анонимного подключения к MySQL.

[root@loginsrv src]# mysql -uroot mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.61 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> update user set password=password('mysqlpasswd') where user = 'root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> delete from user where user = '';
Query OK, 2 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
[root@loginsrv src]# /etc/init.d/mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

11. Создание базы данных и пользователя для Redmine.


Для Redmine создадим базу и пользователя со следующими параметрами:
  • Пользователь (login): redmine
  • Пароль: RedMinePasswd
  • Имя БД: redmine
  • Хост: localhost
[root@loginsrv src]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.61 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'RedMinePasswd';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT USAGE ON *.* TO 'redmine'@'localhost' IDENTIFIED BY 'RedMinePasswd' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE DATABASE IF NOT EXISTS `redmine`;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON `redmine`.* TO 'redmine'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

12. Установка автоматического запуска MySQL.

[root@loginsrv src]# /sbin/chkconfig mysqld on
[root@loginsrv src]# /sbin/chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
Проверяем существование библиотек для доступа к MySQL.
[root@loginsrv src]# ll /usr/lib64/mysql
total 3124
lrwxrwxrwx. 1 root root      26 Jun 26 12:20 libmysqlclient_r.so -> libmysqlclient_r.so.16.0.0
lrwxrwxrwx. 1 root root      26 Jun 26 12:20 libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
-rwxr-xr-x. 1 root root 1588200 Feb  9 01:39 libmysqlclient_r.so.16.0.0
lrwxrwxrwx. 1 root root      24 Jun 26 12:20 libmysqlclient.so -> libmysqlclient.so.16.0.0
lrwxrwxrwx. 1 root root      24 Jun 26 12:20 libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
-rwxr-xr-x. 1 root root 1577608 Feb  9 01:39 libmysqlclient.so.16.0.0
-rwxr-xr-x. 1 root root   12913 Feb  9 01:39 mysqlbug
-rwxr-xr-x. 1 root root    6386 Feb  9 01:39 mysql_config
drwxr-xr-x. 2 root root    4096 Jun 26 12:20 plugin
Для 32-битной версии библиотеки будут расположены в директории /usr/lib/mysql.

13. Установка ImageMagick.


Скачиваем и устанавливаем ImageMagick. На момент установки была доступна версия ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.7.7-9.tar.gz
[root@loginsrv src]# cd ~ebabenko/data/distrib/redmine
[root@loginsrv redmine]# wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.7.7-9.tar.gz

[...skipped...]

[root@loginsrv redmine]# cp ImageMagick-6.7.7-9.tar.gz /usr/local/src
[root@loginsrv redmine]# cd /usr/local/src
[root@loginsrv src]# tar zxvf ImageMagick-6.7.7-9.tar.gz

[...skipped...]

[root@loginsrv src]# rm ImageMagick-6.7.7-9.tar.gz
rm: remove regular file `ImageMagick-6.7.7-9.tar.gz'? y
[root@loginsrv src]# cd ImageMagick-6.7.7-9
[root@loginsrv ImageMagick-6.7.7-9]# ./configure

[...skipped...]

[root@loginsrv ImageMagick-6.7.7-9]# make

[...skipped...]

[root@loginsrv ImageMagick-6.7.7-9]# make install

[...skipped...]

14. Установка поддержки шрифтов TrueType.

[root@loginsrv ImageMagick-6.7.7-9]# cd ~ebabenko/data/distrib/redmine
[root@loginsrv redmine]# yum install rpm-build ttmkfdir cabextract

[...skipped...]

Total download size: 90 k
Installed size: 195 k
Is this ok [y/N]: y

[...skipped...]

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
 Userid : EPEL (6) <epel@fedoraproject.org>
 Package: epel-release-6-7.noarch (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y

[...skipped...]

Installed:
  cabextract.x86_64 0:1.3-3.el6

Dependency Installed:
  libmspack.x86_64 0:0.2-0.1.20100723alpha.el6

Complete!
[root@loginsrv redmine]# wget http://dl.atrpms.net/el6.2-x86_64/atrpms/stable/atrpms-repo-6-5.el6.x86_64.rpm

[...skipped...]

[root@loginsrv redmine]# rpm -ihv atrpms-repo-6-5.el6.x86_64.rpm

[...skipped...]

[root@loginsrv redmine]# yum install chkfontpath

[...skipped...]

Total download size: 117 k
Installed size: 207 k
Is this ok [y/N]: y

[...skipped...]

Importing GPG key 0x66534C2B:
 Userid : ATrpms.net (rpm signing key) <Axel.Thimm@ATrpms.net>
 Package: atrpms-repo-6-5.el6.x86_64 (installed)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-atrpms
Is this ok [y/N]: y

[...skipped...]

Installed:
  chkfontpath.x86_64 0:1.10.1-2.el6

Dependency Installed:
  libFS.x86_64 0:1.0.1-5.el6
  xorg-x11-xfs.x86_64 1:1.0.5-7.el6

Complete!
[root@loginsrv redmine]# wget http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec

[...skipped...]
Требуется изменить ссылку на целевые файлы в файле msttcorefonts-2.0-1.spec.
[...skipped...]

function set_mirror {
        local r m
        r=`expr $RANDOM % $mirror_count + 1`
        m=`echo $mirrors |cut -d+ -f$r`
        mirror="http://${m}.dl.sourceforge.net/sourceforge/corefonts/"
}

[...skipped...]
Ссылка должна выглядеть следующим образом:
        mirror="http://${m}.dl.sourceforge.net/project/corefonts/the%20fonts/final/"
[root@loginsrv redmine]# rpmbuild -bb msttcorefonts-2.0-1.spec

[...skipped...]

Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/msttcorefonts-2.0-1.x86_64
Wrote: /root/rpmbuild/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.QPOQuY
+ umask 022
+ cd /root/rpmbuild/BUILD
+ '[' /root/rpmbuild/BUILDROOT/msttcorefonts-2.0-1.x86_64 '!=' / ']'
+ rm -rf /root/rpmbuild/BUILDROOT/msttcorefonts-2.0-1.x86_64
+ exit 0
Сборка RPM пакета у меня обрывалась пару раз из-за обрыва связи с сервером исходных файлов. Если у вас возникнет такая же ситуация, просто повторите операцию сборки до тех пор, пока пакет не будет собран. При успешном выполнении, в консоли будет показан путь, куда был записан пакет. В моём случае:
Wrote: /root/rpmbuild/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm
Устанавливаем.
[root@loginsrv redmine]# rpm -ivh /root/rpmbuild/RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm
Preparing...                ########################################### [100%]
   1:msttcorefonts          ########################################### [100%]
[root@loginsrv redmine]# cd /usr/share/fonts/msttcorefonts
[root@loginsrv msttcorefonts]# mkfontscale
[root@loginsrv msttcorefonts]# mkfontdir
[root@loginsrv msttcorefonts]# mkdir -p /usr/share/fonts/default/TrueType
[root@loginsrv msttcorefonts]# cd /usr/share/fonts/default/TrueType
[root@loginsrv TrueType]# find /usr/share/fonts/msttcorefonts/ -exec ln -s {} \;

15. Установка RMagick.

[root@loginsrv TrueType]# cd /usr/local/src/
[root@loginsrv src]# gem list rmagick --all --remote

*** REMOTE GEMS ***

rmagick (2.13.1, 2.12.2, 2.12.1, 2.12.0, 2.11.1, 2.11.0, 2.10.0, 2.9.2, 2.9.1, 2.9.0, 2.8.0, 2.7.2, 2.7.1, 2.7.0, 2.6.0, 2.5.2, 2.5.1, 2.5.0, 2.4.0, 2.3.0, 2.2.2, 2.2.0, 2.1.0, 2.0.0, 1.15.17, 1.15.16, 1.15.15, 1.15.14, 1.15.13, 1.15.12, 1.15.11, 1.15.10, 1.15.9, 1.15.8, 1.15.7, 1.15.6, 1.15.5, 1.15.4, 1.15.3, 1.15.2, 1.15.1, 1.15.0, 1.14.1, 1.14.0, 1.13.0, 1.12.0, 1.11.1, 1.11.0, 1.10.1, 1.10.0, 1.9.3, 1.9.2, 1.9.1, 1.9.0, 1.8.3, 1.8.2, 1.8.1, 1.8.0, 1.7.4, 1.7.3, 1.7.2, 1.7.1)
rmagick4j (0.3.7, 0.3.6, 0.3.5, 0.3.4 java, 0.3.3 java, 0.3.2 java, 0.3.1 java)
rmagick_captcha (0.6.2)
[root@loginsrv src]# whereis pkgconfig
pkgconfig: /usr/lib64/pkgconfig /usr/local/lib/pkgconfig /usr/share/pkgconfig
[root@loginsrv src]# printenv PKG_CONFIG_PATH
[root@loginsrv src]# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
[root@loginsrv src]# printenv PKG_CONFIG_PATH
/usr/local/lib/pkgconfig
[root@loginsrv src]# gem install rmagick --version 2.13.1
Fetching: rmagick-2.13.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed rmagick-2.13.1
1 gem installed
Installing ri documentation for rmagick-2.13.1...
Installing RDoc documentation for rmagick-2.13.1...
[root@loginsrv src]# gem list rmagick

*** LOCAL GEMS ***

rmagick (2.13.1)

Продолжение статьи "Установка Redmine на CentOS 6.2 (Часть 3)".