billing:setup:freebsd

Установка Биллинга MikBill на FreeBSD

Выполним установку системы и настройку сети. Руководство по работе с портами.

Лутший друг админа - FreeBSD HandBook

Обновление "мира".

для начала установим MC и другие пакеты

pkg_add -r bash sudo screen mc gpm db42 openssl mpd5

Чтобы изменить шелл по умолчанию команда:

pw usermod username -s /usr/local/bin/bash

чтобы сделать удобный скролин как в линуксе (shift+pgdown / shift+pgup)

пропишите в файл .inputrc в директории своего пользователя, и root

"\e[5~": history-search-backward
"\e[6~": history-search-forward

"\e[3~" delete-char
"\e[1~" beginning-of-line
"\e[4~" end-of-line

Настраиваем MYSQL

Установка

cd /usr/ports/databases/mysql51-server/
make install clean

Меняем автозапуск

mcedit /etc/rc.conf

Добавляем в конец файла

mysql_enable="YES"

Стартуем и меняем пароль root

/usr/local/etc/rc.d/mysql-server start
/usr/local/bin/mysqladmin -u root password 'new-password'

new-password - это новый пароль, не забудтте его записать в блокнот

Установка Apache 2.2

cd /usr/ports/www/apache22
make

Обязательно выберете

THREADS
REWRITE
SSL
SUEXEC

Не забудте выключить

IPV6

остальное оставте без изменений или на ваше усмотрение.

make install

Apache 2.2 установлен

Установим PHP 5.2

cd /usr/ports/lang/php52
make

Обязательно выберете

CLI
CGI
APACHE
MULTIBYTE
MAILHEAD

Не забудте выключить

IPV6

остальное оставте без изменений или на ваше усмотрение.

make install

PHP 5.2 установлен

установим PHP extensions

cd /usr/ports/lang/php52-extensions
make

Рекомендуется выключить

MING
SYBASE_CT
SQLITE

Обязательно выберете

BCMATH
CALENDAR
CTYPE
BZ2
FILTER
FTP
GD
GETTEXT
HASH
ICONV
IMAP
JSON
MBSTRING
MCRYPT
MHASH
MYSQL
MYSQLI
NCURSES
OPENSSL
PCNTL
PCRE
PDF
PDO
POSIX
READLINE
RECODE
SESSION
SOCKET
SIMPLEXML
SNMP
SPL
SYSVMSG
SYSVSEM
SYSVSHM
XML
XMLREADER
XMLRPC
XMLWRITER
XSL
ZIP
ZLIB

остальное оставте без изменений или на ваше усмотрение.

При компиляции установите

REGEX
make install

PHP Extensions установлены

Выполняем

cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

базовый конфиг создан.

Важное замечание в php 5.2 в FreeBSD бывает проблема

делаем

php -v

Нормальный вывод будет таким

php -v
PHP 5.2.13 (cli) (built: Oct 25 2010 11:15:13)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies

или же

# php -v
Segmentation fault: 11 (core dumped)

Если вывод у вас с ошибкой, то это не так сложно исправить. Открываем файл

/usr/local/etc/php/extensions.ini

и находим там строку

extension=recode.so

Эту строку нужно из середины файла переместить вначало файла. Все проверяем вывод еще раз.

mcedit /usr/local/etc/php/extensions.ini

Настриаваем APACHE в

/etc/rc.conf
apache22_enable="YES"

в файле

/usr/local/etc/apache22/httpd.conf

после строки

#ServerName www.example.com:80

ставим

ServerName 0.0.0.0

запускаем

apachectl start

ставим PHPMyAadmin

cd /usr/ports/databases/phpmyadmin/
make install clean

По пути

/usr/local/www/phpMyAdmin

находися сам phpMyAdmin

Правим

config.inc.php

под свои нужды

Открываем файл

/usr/local/etc/apache22/extra/httpd-autoindex.conf

и вносим в него.

Вместо .example.com ниже внесите ваш административный IP

    Alias /pma/ "/usr/local/www/phpMyAdmin/"

    <Directory "/usr/local/www/phpMyAdmin/">
        Options none
        AllowOverride Limit

        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1 .example.com
    </Directory>

Запуск

так же незабываем записать в файл

/etc/hosts

параметр

hostname="FreeBSD"

из файла /etc/rc.conf

чтобы сервер понимал это имя как IP.

apachectl restart

апач и мускуль запущены

конмада

# netstat -nla
Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address       (state)
tcp4       0      0 *.443                  *.*                    LISTEN
tcp4       0      0 *.80                   *.*                    LISTEN
tcp4       0      0 *.3306                 *.*                    LISTEN

апач и мускуль запущены.

После запуска apache и mysql

Установим ZendOptimizer

pkg_add -r ZendOptimizer php52-pdo_mysql

открваем файл

/usr/local/etc/php.ini

в конце файла добавляем строки которые вам покажит установщик выше

наподобие таких

[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"

Выполняем

Нормальный вывод будет таким

# php -v
PHP 5.2.13 (cli) (built: Oct 25 2010 11:15:13)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies

Создадим файл

В файле конфигрурации apache2

/usr/local/etc/apache22/httpd.conf

разкоментируем следующие строки

# Multi-language error messages
Include etc/apache22/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
Include etc/apache22/extra/httpd-autoindex.conf

# Language settings
Include etc/apache22/extra/httpd-languages.conf

# User home directories
#Include etc/apache22/extra/httpd-userdir.conf

# Real-time info on requests and configuration
Include etc/apache22/extra/httpd-info.conf

# Virtual hosts
Include etc/apache22/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
Include etc/apache22/extra/httpd-manual.conf

# Various default settings
Include etc/apache22/extra/httpd-default.conf

# Secure (SSL/TLS) connections
Include etc/apache22/extra/httpd-ssl.conf

создаем файл

/usr/local/etc/apache22/Includes/php.ini

Содержимое файла

    <IfModule mod_php5.c>
            DirectoryIndex index.php index.html
    </IfModule>
    <IfModule mod_php5.c>
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    </IfModule>

Создаем сертификат

cd /usr/local/etc/apache22
openssl req -new -newkey rsa:1024 -nodes -keyout server.key -x509 -days 500 \ 
-subj /C=UA/ST=Dn/L=Don/O=ISPNET/OU=Billing/CN=*.ispnet.demo/emailAddress=
 email@ispnet.demo  \
 -out server.key

Или же заходим на официальный сайт и читаем информацию об OPENSSSL

Открываем папку дистрибутива биллинга и переходим в

system

распаковываем содержимое в директорию

/usr/local/www/mikbill

далее делаем

cd /usr/local/www
chown -R www:www mikbill

Открываем файл

/usr/local/etc/apache22/extra/httpd-vhosts.conf

разкоментируем

NameVirtualHost *:80
NameVirtualHost *:443

и добавляем виртуал хосты

<VirtualHost *:443>
     ServerAdmin  webmaseter@yousite.com 
     ServerName admin.ispnet.demo
     ErrorLog /var/log/httpd_admin.ispnet.demo_error_log
     CustomLog /var/log/httpd_admin.ispnet.demo_access_log combined
     DocumentRoot  /usr/local/www/mikbill/admin

     <Directory "/usr/local/www/mikbill/admin">
        AllowOverride All
        Options FollowSymlinks Includes
        allow from all
     </Directory>
     SSLEngine on
     SSLCertificateFile "/usr/local/etc/apache22/server.crt"
     SSLCertificateKeyFile "/usr/local/etc/apache22/server.key"
</VirtualHost>

<VirtualHost *:80>
    ServerName admin.ispnet.demo
    ServerAdmin  webmaseter@yousite.com 
    Redirect permanent / https://admin.ispnet.demo/
</Virtualhost>

<VirtualHost *:443>
     ServerAdmin  webmaseter@yousite.com 
     ServerName stat.ispnet.demo
     ErrorLog /var/log/httpd_stat.ispnet.demo_error_log
     CustomLog /var/log/httpd_stat.ispnet.demo_access_log combined
     DocumentRoot  /usr/local/www/mikbill/stat

     <Directory "/usr/local/www/mikbill/stat">
        AllowOverride All
        Options FollowSymlinks Includes
        allow from all
     </Directory>
     SSLEngine on
     SSLCertificateFile "/usr/local/etc/apache22/server.crt"
     SSLCertificateKeyFile "/usr/local/etc/apache22/server.key"
</VirtualHost>

<VirtualHost *:80>
    ServerName stat.ispnet.demo
    ServerAdmin  webmaseter@yousite.com 
    Redirect permanent / https://stat.ispnet.demo/
</Virtualhost>

Создаем базу данных и вносим даннын для авторизации биллинга используя phpMyadmin

Базу данных назовите mikbill кодировка koi8r_general_cl

Импортируйте файл из папки sql в дистрибутиве, в соотвествующей кодировке.

Уставливаем Freeradiusd 2

cd /usr/ports/net/freeradius2
make

Выбираем опции только опции перечисленные ниже и никаких других

MYSQL
PERL
EXPERIMENTAL
KERBEROS

после компиляции выполняем

make install

Настройка Freeradiusd 2

во время запуска radiusd -X вы увидите:

Can't locate serialize.pm in @INC (@INC contains: /usr/local/lib/perl5/5.10.1/BSDPAN 
/usr/local/lib/perl5/site_perl/5.10.1/mach /usr/local/lib/perl5/site_perl/5.10.1 
/usr/local/lib/perl5/5.10.1/mach /usr/local/lib/perl5/5.10.1 .) 
at /usr/local/etc/raddb/mikbill.pl line 6.

Откройте перл который стоит у Вас в системе.

в 8.1-Release был perl 5.10.1

cd /usr/ports/lang/perl5.10/
make config

добавить

THREADS
make 
make reinstall

пересобрать и установить

установка MRTG

cd /usr/ports/net-mgmt/mrtg
make install

не включаем демон mrtg создаем конфиг файлы для работы биллинга

touch /usr/local/etc/mrtg/mrtg_mikbill_tarif.conf
touch /usr/local/etc/mrtg/mrtg_mikbill_users.conf

даем право на запись

chmod -R a+rwx /usr/local/etc/mrtg/

Вносим из файла записи в кронтаб

BSD/crontab_bsd

Установка MPD5

cd /usr/ports/net/mpd5
make config

Добавляем

NG_CAR

остальное по вкусу

make install

запускаем mpd5 в

/etc/rc.conf

добавляем

mpd_enable="YES"

правим под себя

/usr/local/etc/mpd5/mpd.conf

пример в дистрибутиве.

BSD/mpd5/mpd.conf
BSD/mpd5/radiusd.conf

запуск

/usr/local/etc/rc.d/mpd5 start

админка веб

логин и пароль

admin
admin

http://192.168.226.129:5006/

Берем словарь из дистрибутива

BSD/usr/local/share/freeradiusdictionary.mpd

и ложим его по пути

/usr/local/share/freeradius

открываем файл

/usr/local/share/freeradius/dictionary

и добавляем в конец файла

$INCLUDE dictionary.mpd

все словарь mpd подключен

важный нюанс работы NAS c ip localhost оставте без изменений

и используйте в настройках mpd5 и NAS следующего за localhost поставте другой ip сервера.

Ставим DNS

cd /usr/ports/dns/bind9
make
make install

cd /usr/ports/dns/bind-tools
make
make install

Настрваиваем NAMED

файл

/etc/namedb/named.conf

ставим параетры

listen-on    { any; };

и закоментируем эти 3 строки

disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";

в

/etc/rc.conf

named_enable="YES"

/etc/rc.d/named start

Запуск удаляем скрипт

rm -rf /usr/local/etc/rc.d/radiusd

и копируем скрипты из дистрибутива

доабвляем в

/etc/rc.conf
mikbill_enable="YES"
radiusd_enable="YES"

И выполняем

/etc/rc.d/mikbill start
/etc/rc.d/radiusd start

Установка завершена.

Вопросы и коментарии в этом форуме.

  • billing/setup/freebsd.txt
  • Последнее изменение: 6 лет назад
  • Алексей Ларюшкин