Установка Биллинга 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
Установка завершена.
Вопросы и коментарии в этом форуме.