====== Установка Биллинга 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/|форуме]].