====== Установка MikBiLL на Debian 7 (Wheezy)/ Debian 6 (Squeeze) ====== Данное краткое руководство расчитано на установку в системах Debian 7 (Wheezy)/ Debian 6 (Squeeze) Предпологается, что Вы уже имеете установленную ОС и загруженный дистрибутив Mikbill. Весь процесс разобъем на пункты: * 1) Для нача установим первоначальный набор пакетов необходимый на этапе установки биллинга (если не установлены): sudo apt-get install mc screen chkconfig Если нет "sudo", делаем: aptitude install sudo И после повторяете установку первоначальных пакетов. * 2) Теперь выполним: sudo mcedit /etc/sudoers * 3) Добавим себя и апач сразу после записи root: www-data ALL=(ALL) NOPASSWD:ALL * 4) Далее установим базовые пакеты: sudo apt-get install libltdl-dev zlib1g-dev autoconf automake autotools-dev binutils cpp cpp-4.4 gcc gcc-4.4 sudo apt-get install mrtg mysql-server dhcp3-server libio-socket-inet6-perl pptpd pppoe bind9 dnsutils sudo apt-get install freeradius libfreeradius2 freeradius-mysql freeradius-utils freeradius-common sudo apt-get install libfreeradius-dev freeradius-dbg freeradius-iodbc logrotate sudo aptitude install -t squeeze apache2 apache2-suexec apache2.2-common * 5) Для корректной работы всего функционала Mikbill, необходим php версии 5.3! Установим его: Откроем файл /etc/apt/sources.list и добавим в него след. строку: deb http://ftp.de.debian.org/debian/ squeeze main После чего выполняем команду apt-get update Важно! Если в Вашей системе установлена версия php 5.4 - ее необходимо удалить перед установкой 5.3! * 6) Удаляем php 5.4 и все, чт ос ним связано: apt-get remove --purge `dpkg -l | grep php | grep -w 5.4 | awk '{print $2}' | xargs` Если вдруг у Вас возникли проблемы при удалении можно воспользоваться следующими рекомендациями: - Выполнить rm /var/lib/dpkg/info/*имя пакета* - Выполнить apt-get purge *имя пакета* - Выполнить ручной поиск с помощью locate *имя пакета* - для удаления остатков, или при недостающих компонентах. где *имя пакета* - название Вашего пакета без * * 7) Далее смотрим, какая версия php 5.3.* доступна для установки: apt-cache showpkg php5 Вывод данной команды будет примерно следующим: ''Dependencies: 5.4.4-14+deb7u5 - libapache2-mod-php5 (18 5.4.4-14+deb7u5) libapache2-mod-php5filter (18 5.4.4-14+deb7u5) \\ php5-cgi (18 5.4.4-14+deb7u5) php5-fpm (2 5.4.4-14+deb7u5) php5-common (2 5.4.4-14+deb7u5) \\ 5.4.4-14+deb7u4 - libapache2-mod-php5 (18 5.4.4-14+deb7u4) \\ libapache2-mod-php5filter (18 5.4.4-14+deb7u4) php5-cgi (18 5.4.4-14+deb7u4) \\ php5-fpm (2 5.4.4-14+deb7u4) php5-common (2 5.4.4-14+deb7u4) 5.3.3-7+squeeze17 - libapache2-mod-php5 \\ (18 5.3.3-7+squeeze17) libapache2-mod-php5filter (18 5.3.3-7+squeeze17) php5-cgi (2 5.3.3-7+squeeze17) \\ php5-common (2 5.3.3-7+squeeze17) Provides: 5.4.4-14+deb7u5 - 5.4.4-14+deb7u4 - 5.3.3-7+squeeze17 -'' Последняя — то, что нам нужно(squeeze). * 8) Ну и теперь можно ставить PHP 5.3 и отдельные пакеты с помощю aptitude: Если слетел aptitude: apt-get install aptitude aptitude install -t squeeze libapache2-mod-php5 php-net-lmtp php-xml-util php-pear php5-ps php5-exactimage aptitude install -t squeeze phpmyadmin php-xml-rss php5-xsl php-xml-serializer php-net-url suphp-common aptitude install -t squeeze php5-svn php5-remctl php5 php5-sasl php5-snmp php5-gd php5-syck php5-sybase aptitude install -t squeeze php5-auth-pam php5-curl php5-imap php5-geoip php5-xcache php5-imagick php5-mysql aptitude install -t squeeze php5-memcache php5-uuid php5-pspell php5-xmlrpc php5-gpib php5-mcrypt php5-recode aptitude install -t squeeze php5-cgi php5-mapscript php5-cli php5-dev php5-json php5-common php5-gmp aptitude install -t squeeze php5-idn php5-ming php5-sybase php5-dbg Для точного применения зависимостей и возможных замен, можно потратить время, и ставить каждый пакет отдельно (на Ваше усмотрение): aptitude install -t squeeze php5-svn aptitude install -t squeeze php5 и т.д. Таким образом, с помощью диалоговых меню (yes/no), Вы сможете контролировать сам процесс. Важно! После завершения установки, все пакеты нужно будет заморозить, чтобы при установке обновлений ОС php не был обновлён до последней версии. Делается это при помощи aptitude. Напечатайте aptitude hold и названия установленных пакетов: aptitude hold php5 php5-cli php5-common Если вдруг понадобилось разморозить эти пакеты, то hold следует заменить на unhold. Пример: aptitude unhold php5 php5-cli php5-common * 9) На всякий случай удалим, если есть: sudo apt-get remove php5-librdf librdf sudo rm -rf /etc/php5/conf.d/redland.ini * 10) Для настйрока apache2 открываем: /etc/apache2/ports.conf Добавляем после строки: NameVirtualHost *:80 Строку: NameVirtualHost *:443 Выполняем: sudo ln -s ../mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load Далее копируем из дистрибутива: ubuntu/etc/apache2/sites-enabled в /etc/apache2/sites-enabled 3 файла конфигурации для админки(00_stat_zaglushka_vhost.conf, stat_vhost.conf, admin_vhost.conf) Они уже донастраиваются индивидуально, исходя из ваших предпочтений. * 11) Распаковываем в директорию: /var/www/mikbill Содержимое из папки "**system**" дистрибутива биллинга, а именно архивы: admin.tar.gz stat.tar.gz * 12) Настраиваем phpMyAdmin: Если не установлен, смотрим сюда - [[billing:setup:phpmyadmin|]] * 13) Перезапускаем: sudo a2enmod ssl sudo /etc/init.d/apache2 restart * 14) Далее настравиаем mysql и пользователей базы данных, создаем и импортируем базу данных для биллинга. Важно, чтобы Ваш пользователь имел к ней полный доступ. Рекомендуется ознакомится со следующими статьями в Вики для дополнения настроек: [[billing:configuration:mysql|настройка Mysql]], [[billing:howto:mysql_procedure|Нюансы при работе с MySQL и биллингом MikBill]]. * 15) Зададим пароли на доступ к базе данных, в секции , следующих файлов: /var/www/mikbill/stat/app/etc/config.xml /var/www/mikbill/admin/app/etc/config.xml * 16) Установим Zend Guard, для версии php 5.3, по сути являющийся аналогом Zend Optimizer в 5.2. Для загрузки пакета подключитесь к серверу по протоколу ssh, выполните в командной строке: Для 32-битной операционной системы: wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz Для 64-битной операционной системы: wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz Узнать какая архитектура у вашего сервера можно с помощью команды uanme -a Определить какой дистрибутив установлен на сервере можно посмотрев файл /etc/issue Далее распаковываем архив: tar -zxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz Копируем модуль в директорию, содержащую модули php: cp ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/ZendGuardLoader.so /usr/lib/php5/ В директории /etc/php5/conf.d/ озадем файл zend.ini и прописываем в него zend_extension zend_extension=/usr/lib/php5/ZendGuardLoader.so После чего перезапускаем web сервер: /etc/init.d/apache2 restart Чтобы убедиться, что модуль загружается выполним команду php -v При успешной установке вывод будет примерно таким: PHP 5.3.3-7+squeeze17 with Suhosin-Patch (cli) (built: Aug 23 2013 15:06:16) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH После выполнения всех действия выше, необходимо обновить базу данных MikBiLL. Для это необходимо запустить скрипт обновления БД из /var/www/mikbill/admin/sys/update/mb_sql_update.sh * 17) [[billing:configuration:cron|Настраиваем CROND]] . * 18) Настраиваем время на сервере, как написано [[billing:configuration:ntp|]]. * 19) Выполняем следущее: sudo mkdir /etc/mrtg sudo touch /etc/mrtg/mrtg_mikbill_users.conf sudo touch /etc/mrtg/mrtg_mikbill_tarif.conf sudo chmod -R a+rw /etc/mrtg Для работы MRTG подготовка завершена. * 20) Настройка freeradius: для начала удаляем rm -rf /etc/freeradius далее копируем из дистрибутива папку в /etc ubuntu/etc/freeradius задаем пароль в файле /etc/freeradius/sql.conf только в секции password = * 21) Теперь выполняем: cp /etc/freeradius/serialize.pm /usr/lib/perl5 Все freeradius настроен. для теста можно запустить такой строкой: env LD_PRELOAD="/usr/lib/libperl.so.5.10" /usr/sbin/freeradius -X Осталось настроить автозапуск. Для этого: скопируем из дистрибутива, из папки ./ubuntu-debian/init_scripts/ все содержимое в корень вашей системы. Таким образом у вас в папке /etc/init.d/ Должны появится файлы freeradius - Радиус mikbill - ядро MikBiLL а в папке /usr/local/sbin/ файлы mikbill_run.sh radiusd_run.sh Добавим теперь сервисы в автозагрузку chkconfig mikbill on chkconfig freeradius on * 22) Выполняем вход в админку по ссылкам Не забудте указать в файле hosts на вашем копьютере связку ip и DNS имен. Или же настройте DNS зоны под свои нужды. https://admin.ispnet.demo/ https://stat.ispnet.demo/ Логин и пароль admin admin * 23) Перезагрузимся, и проверим все-ли заупустилось: Проверим запущено ли ядро биллинга и слушает ли оно на порту 2007, командами: ps ax |grep mikbill и netstat -nl |grep 2007 Нормальный вывод будет примерно таким: ps ax |grep mikbill 19637 pts/2 S 0:00 /bin/sh /usr/local/sbin/mikbill_run.sh 19639 pts/2 S 0:00 /usr/bin/php ./mikbill.php kernel -d 19663 pts/2 S+ 0:00 grep mikbill netstat -nl |grep 2007 tcp 0 0 0.0.0.0:2007 0.0.0.0:* LISTEN Проверьим запустился ли Radiusd, командами ps ax |grep radiusd и netstat -nl |grep 1812 Нормальный вывод будет таким: ps ax |grep radiusd 19649 pts/2 S 0:00 /bin/sh /etc/init.d/radiusd start 19651 pts/2 S 0:00 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/local/sbin/radiusd_run.sh 19653 pts/2 S 0:00 /bin/bash /usr/local/sbin/radiusd_run.sh 19654 pts/2 Sl 0:00 /usr/sbin/radiusd -f 19701 pts/2 S+ 0:00 grep radiusd netstat -nl |grep 1812 udp 0 0 0.0.0.0:1812 0.0.0.0:* В случае проблем слудует посмотреть лог-файлы, и выявит проблемы и их возможные решения. Все вопросы отправляйте на форум: [[http://www.mikbill.ru/forums/forum/42-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-debianubuntu/|Раздел форума по Debian/Ubuntu]] Также следует ознакомиться со следующей статьей: [[billing:install:post_install|]].