Это продолжение данной статьи - Создаем сборку 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/.

Теперь снова нужно основательно отдохнуть и полюбоваться плодами своих шаловливых ручек)) Дальнейшие действия в следующих статьях.