billing:setup:debian_6_7

Установка 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`

Если вдруг у Вас возникли проблемы при удалении можно воспользоваться следующими рекомендациями:

  1. Выполнить rm /var/lib/dpkg/info/*имя пакета*
  2. Выполнить apt-get purge *имя пакета*
  3. Выполнить ручной поиск с помощью 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:

Если не установлен, смотрим сюда - Установка phpMyAdmin

  • 13) Перезапускаем:
sudo a2enmod ssl
sudo /etc/init.d/apache2 restart
  • 14) Далее настравиаем mysql и пользователей базы данных, создаем и импортируем базу данных для биллинга. Важно, чтобы Ваш пользователь имел к ней полный доступ.

Рекомендуется ознакомится со следующими статьями в Вики для дополнения настроек: настройка Mysql, Нюансы при работе с MySQL и биллингом MikBill.

  • 15) Зададим пароли на доступ к базе данных, в секции <password> </password>, следующих файлов:
/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
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:*

В случае проблем слудует посмотреть лог-файлы, и выявит проблемы и их возможные решения. Все вопросы отправляйте на форум:

Раздел форума по Debian/Ubuntu

Также следует ознакомиться со следующей статьей: Действия после установки.

  • billing/setup/debian_6_7.txt
  • Последнее изменение: 9 лет назад
  • dh