По-умолчанию система мониторинга CACTI доступна по адресу http://domain.xx/cacti/, т.е. с точки зрения web-сервера /cacti/ - является алиасом. Этот факт немного не удобен тем, что логи при обращении к /cacti/ будут сыпаться в общую кучу с логами домена. Конечно, можно как-то избавиться от этого тонкой настройкой логирования web-сервера, но можно поступить по-другому. Посадить CACTI на поддомен, т.е. URL будет выглядеть так: cacti.domain.xx. Ну, проще говоря, создать отдельный виртуальный хост на web-сервере.
В этой небольшой зарисовке пример Ubuntu 14 + Apache 2.4.7. + CACTI. По умочанию, CACTI создаёт конфигурацию к основному домену в виде алиаса. Посмотреть можно в /etc/apache2/conf-available/cacti.conf. Эту конфигурацию мы отключаем:
a2disconf cacti
service apache2 reload
Следующим шагом будет создание виртуального хоста в директории site-avialable:
ServerName cacti.domain.xx
ServerAlias www.cacti.domain.xx
ServerAdmin Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
DocumentRoot /usr/share/cacti/site
ErrorLog ${APACHE_LOG_DIR}/error-cacti.log
CustomLog ${APACHE_LOG_DIR}/access-cacti.log combined
</VirtualHost>
Включаем наш виртуальный хост:
a2ensite cacti.domain.xx.conf
service apache2 restart
Перед тем как ***нуть в продакшн, стоит позаботиться о соответствующих записях на DNS серверах. Если ресурс публичный, то у регистратора доменного имени пожно попросить внести изменения, на его DNS. Если нет, то на внутренних DNS или в файле hosts делаем записи типа:
cacti.domain.xx IP сервера
www.cacti.domain.xx IP сервера
Не смотря на то, что CACTI у нас доступен по новому адресу, всё статическое содержимое страницы не отображается. Связано это с тем, что все пути в PHP коде прописаны на /cacti/. Исправляется это через файл .htaccess. В Apache2 должен быть включен модуль rewrite. Кажется так:
a2enmod rewrite.load
И не забываем перезапустить Apache.
Файл .htaccess помещается в директорию /usr/share/cacti/site/.
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain.xx [NC]
RewriteRule ^(.*)$ http://domain.xx$1 [L,R=301]
RedirectMatch 301 ^/cacti/(.*)$ http://cacti.domain.xx/$1
Этим волшебным редиректом становится доступным всё остальное содержимое страницы.
Не плохо было бы сделать владельцем файлов и директорий www-data в директории /usr/share/cacti/site/. По-умочанию владелец root, что не очень секьюрно.
И помни, паранойя сисадмина - залог сохранности данных и долговечности серверов =)