Начну, пожалуй, не с ремонта, а с программ. А в частности с установки комплекса по управлению проектами Redmine на Windows Server 2012. Перенос с FreeBSD на Windows.
В силу того, чтобы самому не забыть, что и как делал...
Как бы я не любил Unix-системы в качестве серверов, возникла необходимость
перенести Redmine на Windows Server
2012. Подробных, 100% рабочих, описаний данной процедуры в сети не нашел, так,
в основном обрывками. Надеюсь данная статья будет кому-то полезна. Есть конечно,
готовое решение от Bitnami,
но не работает в окуржении 2012 server.
Итак, мы имеем:
Старый сервер на базе обычного системного блока PIV + FreeBSD, Redmine + Ruby on Rails + Passenger + Apache.
Новый двухпроцессорный сервер на Windows Server 2012. Методом
многочисленных проб и ошибок, определился следующий состав пакетов:
1 1.
Redmine (на момент написания статьи последняя версия 2.5.0);
2.
Ruby
1.9.3;
3. devkit 4.5.2;
4. MySQL Essential 5.1.73;
5. MySQL Connector 6.0.2. Нам понадобится только одна библиотека libmysql.dll для совместимости с mysql2;
3. devkit 4.5.2;
4. MySQL Essential 5.1.73;
5. MySQL Connector 6.0.2. Нам понадобится только одна библиотека libmysql.dll для совместимости с mysql2;
6.
Apache httpd-2.2.25;
7. Так же нам понадобится Windows Resource Kit
7. Так же нам понадобится Windows Resource Kit
Скачаем все необходимое с официальных
источников:
4.
http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-essential-5.1.73-win32.msi;
5. http://downloads.mysql.com/archives/get/file/mysql-connector-c-noinstall-6.0.2-win32.zip;
6. http://apache-mirror.rbc.ru/pub/apache//httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi
7. http://download.microsoft.com/download/8/e/c/8ec3a7d8-05b4-440a-a71e-ca3ee25fe057/rktools.exe
1. Устанавливаем Ruby. Выбираем путь установки (здесь и далее в подготовленную папку).
Отмечаем для установки Add Ruby executables to your PATH
2. Распаковываем скачанный архив DevKit. Для удобства, я распаковал его в D:\Webserver\Ruby\devkit.
Запускаем режим командной строки и переходим в папку с devkit и выполняем следующие команды для установки:
ruby dk.rb init - инициализация;
ruby dk.rb review - проверка, правильный ли путь к Ruby (D:/Webserver/Ruby);
ruby dk.rb install - установка;
3. Устанавливаем MySQL Essential выбрав выборочную установку Custom.
В следующем окне укажем путь для установки D:\Webserver\Mysql
Далее со всем соглашаемся, устанавливаем до появления окна:
Выбираем Детальную конфигурацию.
Может быть я слишком "разжевываю" процесс установки. Мало вероятно, что человек, не умеющий создавать директории и не ставивший MySQL возьмется за это дело. Но, моя жена преподаватель в колледже связи, и я привык таким образом излагать материал. Не судите строго.
Далее ничего не меняем до появления окна:
5. http://downloads.mysql.com/archives/get/file/mysql-connector-c-noinstall-6.0.2-win32.zip;
6. http://apache-mirror.rbc.ru/pub/apache//httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi
7. http://download.microsoft.com/download/8/e/c/8ec3a7d8-05b4-440a-a71e-ca3ee25fe057/rktools.exe
Итак, можно приступать к установке.
Для начала подготовим директории(папки), кому как нравится, в которые
мы собственно будем устанавливать наш WEB-сервер. Мне на сервере было
удобнее создать их на отдельном не системном разделе, пусть это будет
диск D:. Сразу оговорюсь, скриншоты из Windows 8, так как по понятным
причинам, я не стал повторять процесс установки на сервере.
В корне диска D создаем папку Webserver, и в ней подпапки: Redmine, Ruby, Apache, MySQL и можно создать папку Sites для наших будущих сайтов. В итоге должно получиться следующее:
В корне диска D создаем папку Webserver, и в ней подпапки: Redmine, Ruby, Apache, MySQL и можно создать папку Sites для наших будущих сайтов. В итоге должно получиться следующее:
1. Устанавливаем Ruby. Выбираем путь установки (здесь и далее в подготовленную папку).
Отмечаем для установки Add Ruby executables to your PATH
2. Распаковываем скачанный архив DevKit. Для удобства, я распаковал его в D:\Webserver\Ruby\devkit.
Запускаем режим командной строки и переходим в папку с devkit и выполняем следующие команды для установки:
ruby dk.rb init - инициализация;
ruby dk.rb review - проверка, правильный ли путь к Ruby (D:/Webserver/Ruby);
ruby dk.rb install - установка;
3. Устанавливаем MySQL Essential выбрав выборочную установку Custom.
В следующем окне укажем путь для установки D:\Webserver\Mysql
Далее со всем соглашаемся, устанавливаем до появления окна:
Выбираем Детальную конфигурацию.
Может быть я слишком "разжевываю" процесс установки. Мало вероятно, что человек, не умеющий создавать директории и не ставивший MySQL возьмется за это дело. Но, моя жена преподаватель в колледже связи, и я привык таким образом излагать материал. Не судите строго.
Далее ничего не меняем до появления окна:
Отмечаем Add firewall exception for this port.
В следующем окне выбираем кодировку UTF-8.
Далее включаете Include Bin Directory in Windows PATH
В следующем окне зададим пароль для root (Администратор баз данных MySQL).
Далее запустится процесс настройки MySQL.
4. После установки создадим базу данных и пользователя redmine. Для этого из командной строки заходим в MySQL:
mysql -uroot -ppassword - где password ваш пароль;
create database redmine character set utf8; - создаем базу "redmine";
create user 'redmine'@'localhost' identified by 'password'; - пользователя "redmine" с паролем "password";
grant all privileges on redmine.* to 'redmine'@'localhost'; - даем полные права пользователю "redmine" к базам MySQL "redmine". ";" в конце запросов mysql обязательна.
exit - выход из MySQL.
Теперь, если вы переносите redmine с другого сервера (FreeBSD, Linux и т.д.), необходимо сделать дамп базы redmine с этого сервера:
mysqldump -uredmine -ppassword redmine > dump_redmine.sql
и загрузить его на новом сервере в созданную базу redmine:
mysql -uredmine -ppassword redmine < dump_redmine.sql
Да, ещё нужно извлечь из скачанного mysql-connector-6 папка lib библиотеку lybmysql.dll в директорию D:\Wevserver\Ruby\bin.
5. Установка самого redmine. Распаковываем архив Redmine в D:\Webserver\Redmine любым архиватором.
Скопируем файл D:\Webserver\Redmine\config\database.yml.example в D:\Webserver\Redmine\config\database.yml. И отредактируем его для подключения к нашей базе MySQL закомментировав блоки development и test:
В командной строке переходим в директорию Redmine и выполняем:
gem install bundler - загружаем программу для установки зависимостей;
bundle install --without rmagick - собственно установка самих зависимостей проектов Ruby;
Но, при использовании adapter: mysql есть проблемы с кодировкой UTF-8, поэтому установим mysql2 и исправим в файле database.yml адаптер на mysql2:
gem install mysql2 -v=0.3.11
Далее "связываем" MySQL и Redmine. В командной строке, в той же папке:
set RAILS_ENV=production - задаем соответствие;
rake generate_session_store - установка соединения;
rake generate_secret_token - генерация ключа;
rake db:migrate - обновление базы данных.
Так же сразу установим сервер thin:
gem install thin
Ну что, redmine с сервером thin установлен. Пора проверить работу:
thin start -p 3000 -e production
Теперь в браузере по адресу http://localhost:3000 нам доступен Redmine
Следующий шаг редактирование данной службы в реестре. Для этого запускаем редактор реестра и находим нашу службу в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Redmine_thin. Создаем раздел Parameters, в нем следующие ключи:
Указываем путь.
После установки необходимо настроить apache. Для этого приводим файлы
D:\Webserver\Apache\conf\httpd.conf (основной файл настроек) и
D:\Webserver\Apache\conf\extra\httpd-vhosts.conf (настройка виртуальных хостов)
к следующему содержанию.
В файле httpd.conf найдем и раскомментируем строки:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Include conf/extra/httpd-vhosts.conf
В файле httpd-vhosts.conf блоки VirtualHost *:80 заменим на следующий:
<VirtualHost *:80>
ServerName redmine
DocumentRoot "D:/Webserver/Redmine/public"
<Directory "D:/Webserver/Redmine/public">
Require all granted
Options -MultiViews
</Directory>
ProxyPass / balancer://redmine_cluster/
ProxyPassReverse / balancer://redmine_cluster/
ProxyPreserveHost On
<Proxy balancer://redmine_cluster>
BalancerMember http://127.0.0.1:3000
</Proxy>
ErrorLog "D:/Webserver/Redmine/error_redmine.log"
CustomLog "D:/Webserver/Redmine/access_redmine.log" common
</VirtualHost>
Отредактируем файл C:\Windows\system32\drivers\etc\hosts добавив разрешения DNS-имен
127.0.0.1 localhost
127.0.0.1 redmine
Перезапускаем apache (значок в трее).
Теперь на вашем компьютере или на сервере (куда установлен redmine) он доступен по адресу http://redmine.
Чтобы http://redmine был доступен с компьютеров в локальной сети нужно повозится с настройками DNS.
1. Можно на каждом компе в файл hosts добавить IP-сервера redmine
(пример: 192.168.0.1 redmine). Но это долго, и не интересно;
2. Если сервер, где установлен redmine является интернет шлюзом ничего менять кроме файла hosts пожалуй не нужно;
3. Если компьютеры ходят в интернет через шлюз (другой комп в сети). Поправить файл hosts (IP redmine). Если установлен файрвол, разрешить маршрут firewall -> IP-сервера -> служба HTTP -> разрешить.
Ну вот в принципе и все. Да, и ещё. Теперь у вас полноценный WEB-сервер. Накатить PHP и можно публиковать сайтики. Но это уже другая история...
В следующем окне выбираем кодировку UTF-8.
Далее включаете Include Bin Directory in Windows PATH
В следующем окне зададим пароль для root (Администратор баз данных MySQL).
Далее запустится процесс настройки MySQL.
4. После установки создадим базу данных и пользователя redmine. Для этого из командной строки заходим в MySQL:
mysql -uroot -ppassword - где password ваш пароль;
create database redmine character set utf8; - создаем базу "redmine";
create user 'redmine'@'localhost' identified by 'password'; - пользователя "redmine" с паролем "password";
grant all privileges on redmine.* to 'redmine'@'localhost'; - даем полные права пользователю "redmine" к базам MySQL "redmine". ";" в конце запросов mysql обязательна.
exit - выход из MySQL.
Теперь, если вы переносите redmine с другого сервера (FreeBSD, Linux и т.д.), необходимо сделать дамп базы redmine с этого сервера:
mysqldump -uredmine -ppassword redmine > dump_redmine.sql
и загрузить его на новом сервере в созданную базу redmine:
mysql -uredmine -ppassword redmine < dump_redmine.sql
Да, ещё нужно извлечь из скачанного mysql-connector-6 папка lib библиотеку lybmysql.dll в директорию D:\Wevserver\Ruby\bin.
5. Установка самого redmine. Распаковываем архив Redmine в D:\Webserver\Redmine любым архиватором.
Скопируем файл D:\Webserver\Redmine\config\database.yml.example в D:\Webserver\Redmine\config\database.yml. И отредактируем его для подключения к нашей базе MySQL закомментировав блоки development и test:
В командной строке переходим в директорию Redmine и выполняем:
gem install bundler - загружаем программу для установки зависимостей;
bundle install --without rmagick - собственно установка самих зависимостей проектов Ruby;
Но, при использовании adapter: mysql есть проблемы с кодировкой UTF-8, поэтому установим mysql2 и исправим в файле database.yml адаптер на mysql2:
gem install mysql2 -v=0.3.11
Далее "связываем" MySQL и Redmine. В командной строке, в той же папке:
set RAILS_ENV=production - задаем соответствие;
rake generate_session_store - установка соединения;
rake generate_secret_token - генерация ключа;
rake db:migrate - обновление базы данных.
Так же сразу установим сервер thin:
gem install thin
Ну что, redmine с сервером thin установлен. Пора проверить работу:
thin start -p 3000 -e production
Теперь в браузере по адресу http://localhost:3000 нам доступен Redmine
Но, основной целью является запуск Redmine как службы и его
доступность в локальной сети по конкретному адресу. Пусть это будет http://redmine.
6. Чтобы Redmine на сервере thin запускался автоматически при старте
windows необходимо создать службу. Для этого нам понадобится Windows Resource Kit, который мы скачивали вначале. Устанавливаем по умолчанию. Запускаем командную строку под администратором и выполняем:
sc create Redmine_thin binPath= "C:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe"
Следующий шаг редактирование данной службы в реестре. Для этого запускаем редактор реестра и находим нашу службу в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Redmine_thin. Создаем раздел Parameters, в нем следующие ключи:
Перезапускаем службу. В командной строке от имени администратора:
net stop Redmine_thin
net start Redmine_thin
Теперь Redmine у нас работает. Также доступен с других компьютеров в сети по адресу: http://ip-серевера:3000.
Но набирать IP и порт не удобно, тем более, если компьютеры сети
"ходят" в интернет через proxy, надо добавлять этот IP в исключения. Так
же желательно проводить балансировку нагрузки. Для этих целей установим
и настроим web-сервер Apache.
7. Устанавливаем httpd_2.2.25-win32-x86-no_ssl.msi. Вводим данные.
После установки необходимо настроить apache. Для этого приводим файлы
D:\Webserver\Apache\conf\httpd.conf (основной файл настроек) и
D:\Webserver\Apache\conf\extra\httpd-vhosts.conf (настройка виртуальных хостов)
к следующему содержанию.
В файле httpd.conf найдем и раскомментируем строки:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Include conf/extra/httpd-vhosts.conf
В файле httpd-vhosts.conf блоки VirtualHost *:80 заменим на следующий:
<VirtualHost *:80>
ServerName redmine
DocumentRoot "D:/Webserver/Redmine/public"
<Directory "D:/Webserver/Redmine/public">
Require all granted
Options -MultiViews
</Directory>
ProxyPass / balancer://redmine_cluster/
ProxyPassReverse / balancer://redmine_cluster/
ProxyPreserveHost On
<Proxy balancer://redmine_cluster>
BalancerMember http://127.0.0.1:3000
</Proxy>
ErrorLog "D:/Webserver/Redmine/error_redmine.log"
CustomLog "D:/Webserver/Redmine/access_redmine.log" common
</VirtualHost>
Отредактируем файл C:\Windows\system32\drivers\etc\hosts добавив разрешения DNS-имен
127.0.0.1 localhost
127.0.0.1 redmine
Перезапускаем apache (значок в трее).
Теперь на вашем компьютере или на сервере (куда установлен redmine) он доступен по адресу http://redmine.
Чтобы http://redmine был доступен с компьютеров в локальной сети нужно повозится с настройками DNS.
1. Можно на каждом компе в файл hosts добавить IP-сервера redmine
(пример: 192.168.0.1 redmine). Но это долго, и не интересно;
2. Если сервер, где установлен redmine является интернет шлюзом ничего менять кроме файла hosts пожалуй не нужно;
3. Если компьютеры ходят в интернет через шлюз (другой комп в сети). Поправить файл hosts (IP redmine). Если установлен файрвол, разрешить маршрут firewall -> IP-сервера -> служба HTTP -> разрешить.
Ну вот в принципе и все. Да, и ещё. Теперь у вас полноценный WEB-сервер. Накатить PHP и можно публиковать сайтики. Но это уже другая история...
Комментариев нет:
Отправить комментарий