Это продолжение данной статьи - Создаем сборку Ubuntu+RT+Joomla+phpbb в локальной сети (Часть 1).
В первой части мы установили на нашу виртуальную машинку на ESXI Ubuntu 12.04 Server и настроили к ней доступ через SSH. Для операций с командной строкой мы будем использовать putty, а для удобного управления файлами и каталогами - WinSCP (настраивать нашу удаленную виртуалку с убунтой мы планируем из под Windows, а значит WinSCP будет прекрасным инструментом для этого). Редактировать файлы будем через Notepad++ (который настроен открывать файлы виртуалки для просмотра напрямую из WinSCP, а для редактирования все же будем копировать и играться с правами).
После символа "#" - идёт код вводимый в командной строке ubuntu через putty.
После "//" - идёт мой комментарий.
Мы имеем на флешке заранее скаченную последнюю версию RT, приступим к её установке.
1. Копируем архив rt-4.2.8.tar.gz через WinSCP с флешки в /home/admin/ и переходим туда #cd /home/admin/
2. #sudo tar xzvf rt-4.2.8.tar.gz -C /tmp //разархивировал в tmp.
3. Открыл там файл readme и по нему сделал пункты 2 и 3.
4. Т.к. нет у нас пока утилитки make в нашей ubuntu то отложим это дело и попробуем настроить локальный репозиторий, чтобы исправить это недоразумение.
5. Копируем через WinSCP в /home/admin/lib/ заранее подготовленные файлы пакетов для создания репозитория.
6. Для установки репозитория нужен пакет dpkg-dev, который не идет в нашей сборке ubuntu, а так же еще несколько сопутствующих пакетов, которые мы и установим по порядку из нашей папки lib.
7. Через putty переходим в каталог lib - #cd /home/admin/lib/
8. Ставим первый пакет, необходимый для dpkg-dev #sudo dpkg -i libdpkg-perl_1.16.1.2ubuntu7.5_all.deb //здесь и далее я ставлю именно свои версии пакетов, а вы можете использовать другие с другими зависимостями.
9. Ставим необходимый ранее make #sudo dpkg -i make_3.81-8.1ubuntu1_i386.deb
10. Ставим #sudo dpkg -i binutils_2.22-6ubuntu1.1_i386.deb
11. И наконец ставим сам dpkg-dev #sudo dpkg -i dpkg-dev_1.16.1.2ubuntu7.5_all.deb
12. Используем #dpkg-scanpackages . > Packages //для сканирования пакетов которые у нас есть в текущей папке и создания их списка. Ждем пока появится надпись вроде этой: - dpkg-scanpackages: info: Wrote 1421 entries to output Packages file.
13. Используем хитрую команду для корректирования файла с перечнем репозиториев #echo "deb file:`pwd` ./" >> sources_tmp && cat /etc/apt/sources.list >> sources_tmp && sudo cp sources_tmp /etc/apt/sources.list && rm sources_tmp
14. Обновляем списки доступных для установки пакетов с учетом нового репозитория #sudo apt-get update //тут стоит добавить, что если вы не хотите ждать пока оно будет пытаться достучаться до всех вписанных в sources.list репозиториев, то их стоит перед этим удалить от туда или закомментировать, оставив только ваш локальный. Если вы добавите новые пакеты в ваш локальный репозиторий то нужно будет опять обновлять списки.
15. Теперь вводим в домен по вот этой инструкции - Ввод компьютера с Ubuntu в домен Windows. Это мы делаем для феншуя и чтобы потом настроить LDAP авторизацию пользователей в RT из AD.
16. Если мы перезагружались во время пунктов 4-15 то нужно будет заново делать пункты 2-3, т.к. во время перезагрузки очищается папка tmp. Можно конечно в другое место наш архив запихать, но я так немного оплошал разок и потому упомяну, чтобы вы не споткнулись.
17. Делая #make testdeps мы увидим недостающие для установки RT модули и пакеты помеченные словом MISSING, поэтому надеемся что они уже есть в нашем заранее подготовленном репозитории и ставим их все через #sudo aptitude install имя_пакета_1 имя_пакета_2 ... имя_пакета_N
Например для моего случая я поставил такие пакеты:
#sudo aptitude install libemail-address-perl libuniversal-require-perl libjson-perl libnet-cidr-perl libemail-address-list-perl liblocale-maketext-fuzzy-perl libmailtools-perl libhtml-formattext-withlinks-perl libregexp-common-perl libfile-sharedir-perl libdbix-searchbuilder-perl libtext-wikiformat-perl libxml-rss-perl libtext-template-perl libhtml-rewriteattributes-perl libipc-signal-perl libossp-uuid-perl libboolean-perl libclass-accessor-lite-perl libproc-wait3-perl libscope-guard-perl libsignal-mask-perl libparallel-prefork-perl libserver-starter-perl libmodule-versions-report-perl libtext-password-pronounceable-perl libdevel-globaldestruction-perl libtime-parsedate-perl libipc-run3-perl libtree-simple-perl libhtml-scrubber-perl libhtml-quoted-perl libdata-guid-perl libhtml-mason-perl libsymbol-global-name-perl libdatetime-format-natural-perl libplack-perl libtext-wrapper-perl libregexp-common-net-cidr-perl libplack-perl liblog-dispatch-perl libhtml-formattext-withlinks-andtables-perl libcgi-emulate-psgi-perl libtext-quoted-perl libregexp-ipv6-perl libcss-squish-perl libcgi-psgi-perl libapache-session-perl libdate-extract-perl libhtml-mason-psgihandler-perl libmime-perl liblocale-maketext-lexicon-perl librole-basic-perl libdate-manip-perl libhtml-rewriteattributes-perl libemail-address-list-perl starlet libcrypt-eksblowfish-perl libplack-perl libmime-tools-perl libhtml-rewriteattributes-perl libdbix-searchbuilder-perl libmailtools-perl libemail-address-perl libmime-types-perl libapache-dbi-perl libstring-shellquote-perl libcrypt-openssl-x509-perl libconvert-color-perl libcrypt-x509-perl libfcgi-procmanager-perl libapache2-mod-fcgid libfile-which-perl libperlio-eol-perl libgnupg-interface-perl libdata-ical-perl libnet-ssleay-perl libcrypt-ssleay-perl libnet-smtp-ssl-perl ssl-cert erlang-ssl gcc
// и это совсем не много и, возможно, что то лишнее, т.к. список формировался методом проб и ошибок по принципу много не мало)) Еще в моем случае пришлось доустановить 2 пакета скачав их напрямую с http://search.span.org т.к. не смог найти их в официальных репозиториях убунты, это Mozilla-CA-20141217.tar и FCGI-0.77.tar (так же можно там найти и все другие пакеты связанные с PERL). Для установки надо их скопировать в убунту нашу, разархивировать, открыть файл README и обычно выполнить эти 3 команды:
#perl Makefile.PL
#make
#make install //возможно используя sudo если скрипту не хватит прав.
18. Дальше устанавливаем RT по README файлу, пункты - 4-6. Если получаем надпись "Congratulations. RT is now installed." то всё прошло успешно и дальше идём создавать базу для RT и настраивать /opt/rt4/etc/RT_SiteConfig.pm
19. Установим для удобства администрирования баз mysql phpmyadmin - #sudo aptitude install phpmyadmin
//в первом всплывшем окне выбираем apache2
//во втором окне на вопрос "Configure database for phpmyadmin with dbconfig-common?" жмем <Yes> и вбиваем, ранее установленный при установке ubuntu (мы там выбирали установку mysql), пароль администратора базы данных. Затем нас попросят ввести пароль от самого phpmyadmin. После этого он должен доустановиться и стать доступным по ссылке - "http://имя машины/phpmyadmin" где будет форма входа. Логин по умолчанию - root, пароль - заданный для phpmyadmin.
20. Настраиваем RT_Config.pm для создания базы RT. В моём случае это такие настройки
# Any configuration directives you include here will override
# RT's default configuration file, RT_Config.pm
#
# To include a directive here, just copy the equivalent statement
# from RT_Config.pm and change the value. We've included a single
# sample value below.
#
# This file is actually a perl module, so you can include valid
# perl code, as well.
#
# The converse is also true, if this file isn't valid perl, you're
# going to run into trouble. To check your SiteConfig file, use
# this command:
#
# perl -c /path/to/your/etc/RT_SiteConfig.pm
#
# You must restart your webserver after making changes to this file.
#Database connection
Set($DatabaseType, "mysql");
Set($DatabaseHost, "localhost");
Set($DatabaseUser, "rtracker");
Set($DatabasePassword, "password");
Set($DatabaseName, "rtracker");
Set($DatabaseAdmin, "root");
#Base configuration
Set($rtname, "srv-ubu-01");
Set($Organization, "MyOrg");
Set($WebBaseURL, "http://srv-ubu-01");
Set($WebDomain, "srv-ubu-01");
Set($WebPath, "/rt");
Set($WebURL, "http://srv-ubu-01/rt/");
Set($Timezone, "Europe/Moscow");
Set($CorrespondAddress, "rtracker");
Set($CommentAddress, "");
#Set($RTAddressRegexp, "^rt\@rt.myorg.ru$");
#Set($EmailOutputEncoding, "utf-8");
#Set($CanonicalizeRedirectURLs, "true");
#Set($ChartFont, "/opt/rt4/bin/arial.ttf");
Set(@StaticRoots, ());
# You must install Plugins on your own, this is only an example
# of the correct syntax to use when activating them:
# Plugin( "RT::Extension::SLA" );
# Plugin( "RT::Authen::ExternalAuth" );
1;
#Database connection;
21. Далее #sudo make initialize-database //создается база данных и пользователь для неё, нужно будет ввести пароль админа mysql.
22. Если бы у нас был установлен на убунту графический интерфейс и настроен браузер, то можно было бы воспользоваться WEB-инсталятором введя #sudo /opt/rt4/sbin/rt-server //но в ubuntu 12.04 server этого всего нет и нужно делать ручками.
23. Меняем настройки apache #sudo nano /etc/apache2/sites-available/default //на такие
#<VirtualHost *:80>
### Optional apache logs for RT
# ErrorLog /opt/rt4/var/log/apache2.error TransferLog
# /opt/rt4/var/log/apache2.access LogLevel debug
<Perl>
use Plack::Handler::Apache2;
Plack::Handler::Apache2->preload("/opt/rt4/sbin/rt-server");
</Perl>
AddDefaultCharset UTF-8
DocumentRoot "/var/www"
<Directory />
allow from all
Options +Indexes
</Directory>
Alias /rt/ /opt/rt4/share/html/
Alias /rt /opt/rt4/share/html/
<Directory /opt/rt4/share/html/>
allow from all
Order allow,deny
</Directory>
<Location /rt/>
SetHandler modperl
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app /opt/rt4/sbin/rt-server
</Location>
</VirtualHost>
//это позволяет открывать сам RT по ссылке /rt, освобождая корень для joomla.
После любых изменений в настройках apache нужно его перезапускать командой #sudo /etc/init.d/apache2 restart //после этого у нас должна открываться форма авторизации RT по ссылке "http://srv-ubu-01/rt/". По умолчанию логин - root, пароль - password.
24. Теперь можно в корневую директорию (/var/www/ - там изначально лежит файлик заглушка который надо удалить) установить joomla.
25. Установка Joomla и phpbb стандартна, phpbb устанавливается в поддиректорию /forum/.
Теперь снова нужно основательно отдохнуть и полюбоваться плодами своих шаловливых ручек)) Дальнейшие действия в следующих статьях.