====== Установка Биллинга MikBill на FreeBSD ======
[[http://www.freebsd.org/doc/ru/books/handbook/install.html|Выполним установку системы и настройку сети.]]
[[http://www.freebsd.org/doc/ru/books/handbook/ports.html|Руководство по работе с портами.]]
[[http://www.freebsd.org/doc/ru/books/handbook/index.html|Лутший друг админа - FreeBSD HandBook]]
[[http://www.lissyara.su/articles/freebsd/tuning/make_buildworld/|Обновление "мира".]]
для начала установим 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/"
Options none
AllowOverride Limit
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 .example.com
Запуск
так же незабываем записать в файл
/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
Содержимое файла
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Создаем сертификат
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
и добавляем виртуал хосты
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
AllowOverride All
Options FollowSymlinks Includes
allow from all
SSLEngine on
SSLCertificateFile "/usr/local/etc/apache22/server.crt"
SSLCertificateKeyFile "/usr/local/etc/apache22/server.key"
ServerName admin.ispnet.demo
ServerAdmin webmaseter@yousite.com
Redirect permanent / https://admin.ispnet.demo/
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
AllowOverride All
Options FollowSymlinks Includes
allow from all
SSLEngine on
SSLCertificateFile "/usr/local/etc/apache22/server.crt"
SSLCertificateKeyFile "/usr/local/etc/apache22/server.key"
ServerName stat.ispnet.demo
ServerAdmin webmaseter@yousite.com
Redirect permanent / https://stat.ispnet.demo/
Создаем базу данных и вносим даннын для авторизации биллинга используя 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
Установка завершена.
Вопросы и коментарии в этом [[http://www.mikbill.ru/forums/forum/41-установка-freebsd/|форуме]].