====== Установка Centos(RHEL) (полная) ======
Почему Centos ? - ответ: выбор прост - потому что он очень стабилен.
По сути это RHEL без логотипов Redhat.
Ниже выдержка из wikipedia:
CentOS (англ. Community ENTerprise Operating System) — дистрибутив Linux, основанный на коммерческом
Red Hat Enterprise Linux компании Red Hat, и совместимый с ним.
Red Hat Enterprise Linux состоит из свободного ПО с открытым кодом, но доступно в виде дисков с бинарными пакетами
только для платных подписчиков. Как требуется в лицензии GPL и других, Red Hat предоставляет все исходные коды.
Разработчики CentOS используют данный исходный код для создания окончательного продукта, очень близкого к
Red Hat Enterprise Linux и доступного для скачивания. Существуют и другие клоны Red Hat Enterprise Linux,
созданные на основе этого кода.
CentOS использует программу yum для скачивания и установки обновлений с репозитория CentOS Mirror Network,
тогда как Red Hat Enterprise Linux получают обновления с серверов Red Hat Network. CentOS до версии 5.0
для обновлений использовал также программу up2date.
Устанавливаем Centos пакет server, рекомендуется ставить текущую стабильную версию.
На Данный момент рекомендуем ставить Centos 6.3 x86_64 ([[http://ftp.hosteurope.de/mirror/centos.org/6.3/isos/x86_64/CentOS-6.3-x86_64-minimal.iso | Рекомендуем ставить образ minimal.iso]])
[[http://sysadmins.me/topic/633/ | Установка Centos в RAID-1]] - следовать обязательно (ну или, как говорится, ваши проблемы)
[[http://www.iprobot.net/linux-tutorial/how-to-setup-software-raid-for-centos/ | Установка Centos в RAID-1]] (English - картинки работают)
[[http://ss.lg.ua/node/859 | Инструкция по включению SOFT RAiD-1]]
[[http://xgu.ru/wiki/raid#mdadm | Управление RAID-1 с помощью mdadm]]
Не забывайте что документация с прошлых версий Centos подходит и к вашей системе.
Документация по системе:
[[http://www.centos.org/docs/5/ | Centos 5]]
[[http://openwiki.ru/wiki/CentOS | Centos WiKi]]
[[http://centos.name/?page/documentation | Документация]]
Отключаем IPv6 в Centos ([[http://wiki.centos.org/FAQ/CentOS5#head-47912ebdae3b5ac10ff76053ef057c366b421dc4 | оригинал]])
для начала /etc/sysconfig/network
задаем
NETWORKING_IPV6=no
и потом
в /etc/modprobe.conf
добавляем
alias ipv6 off
alias net-pf-10 off
выполняем команду /sbin/chkconfig ip6tables off
и делаем reboot сервера.
Все IPv6 выключен.
После установке добавьте себе пользователя и пропишите его в /etc/sudoers и закройте вход root по ssh навсегда.
конфиг /etc/ssh/sshd_config
Port 22
Protocol 2
PermitRootLogin no
MaxAuthTries
Если добавить пользователя в /etc/sudoers
adduser -m login
passwd login
Если добавить пользователя в /etc/sudoers
строкой вида
login ALL=(ALL) NOPASSWD: ALL
где login - имя Вашего пользователя .
теперь по команде
sudo su -
вы становитесь рутом
после первой загрузки не забудьте выполнить setup и отключите службы которые редко используются (рекомендация носит общий характер)
anacron
atd
auditd
avahi-daemon
bluetooth
cpuspeed
cups
firstboot
ip6tables
isdn
readahead_early
restorecond
Для начала выполним предварительную установку необходимых пакетов для работы системы и небольшую донастройку.
Настройка /etc/sudoers
необходимо изменить
Default requiretty
Defaults env_reset
на
#Default requiretty
#Defaults env_reset
Так же добавите строку ну и по подобию Вашего пользователя в системе.
apache ALL=(ALL) NOPASSWD: ALL
=====Отключение SELinux=====
С включеной опцией не будет работать ZendOptimizer, что нас не устраивает.
Редактируйте файл /etc/selinux/config
измените
SELINUX=enforcing
на
SELINUX=disabled
выполняем команду
setenforce 0
чтобы не перегружать систему для отключения SELinux.
=====Установка PHP 5.2=====
Внимание в Centos 5.x имеется bug в php , описание [[http://allurcode.com/2010/03/30/pdo-rowcount-not-working-in-php-5-1-6/ | здесь]].
мы сейчас его исправим([[http://wiki.centos.org/HowTos/PHP_5.1_To_5.2 | оригинал]])
Теперь подключаем дистрибутив из репозатория "CentOS-5 Testing"
в папке /etc/yum.repos.d
создаем файл с именем CentOS-Testing.repo
# CentOS-Testing:
# !!!! CAUTION !!!!
# This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras.
# They may or may not replace core CentOS packages, and are not guaranteed to function properly.
# These packages build and install, but are waiting for feedback from testers as to
# functionality and stability. Packages in this repository will come and go during the
# development period, so it should not be left enabled or used on production systems without due
# consideration.
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
includepkgs=php*
теперь можно установить необходимые пакеты
yum install ntp logrotate php php-common php-cli openssh screen tcpdump gcc php-ncurses php-mysql
yum install php-mhash php-mcrypt php-mbstring php-imap php-devel php-bcmath php-xml php-xmlrpc
yum install php-gd php-snmp freeradius2 freeradius2-mysql freeradius2-perl freeradius2-utils
yum install perl-IO-Socket-INET6 mysql mysql-connector-odbc mysql-devel mysql-server
yum install vixie-cron crontabs httpd httpd-manual mod_ssl bind bind-chroot caching-nameserver
yum install php-devel apr-util-mysql ppp rp-pppoe mrtg dhcp samba system-config-date
rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
yum install pptpd
Теперь у Вас установлены Freeradius , Mysql, Apache2, PHP, Bind, DHCPd, MRTG, Samba, Crond , pppd, poptop, rp-pppoe и сопутствующие пакеты.
[[billing:configuration:zendoptiomizer|Устанавливаем и настраиваем ZendOptimizer]]
[[billing:configuration:mysql|Cтатья по настройке MySQL базы данных.]]
Так же установим PhpMyadmin для удобства работы с базой данных
Выполняем по инструкциям на сайте установку PhpMyadmin
Вначале по этой [[http://www.centos.name/?page/additionalresources/RPMForge | ссылке]].
А потом по этой [[http://www.centos.name/?page/tipsandtricks/phpmyadmin | ссылке]].
Пакеты rpmforge-release-0.5.1-1.el5.rf.i386.rpm и rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm Вы найдете в дистрибутиве в папке soft
Далее добавим полезный для работы пакет
yum install iftop
после успешной настройки phpmyadmin
делаем
/etc/init.d/mysql start
/etc/init.d/httpd start
и не забываем запустить setup и добавить эти службы в автозагрузку системы.
[[billing:configuration:ntp|Настройка часов и времени - это очень важно сделать]]
===== Настройка DNS =====
Настроим простую DNS зону в BIND и виртуал хостинг в Apache.
Пример полной инфомарции по BIND и DNS.
[[http://www.opennet.ru/docs/RUS/linuxsos/ch14_2.html | Источник - 1]] [[http://www.opennet.ru/docs/RUS/linuxsos/ch14_2.html | Источник - 2]]
Зона будет называться "ispnet.demo"
для начала прописываем первым наш сервер
в файле /etc/resolv.conf
в итоге конфиг будет выглядить примерно так
# cat /etc/resolv.conf
nameserver 127.0.0.1
search localdomain
переходим в папку /var/named/chroot/etc
файл named.caching-nameserver.conf
Вносим новые значения в options
listen-on port 53 { any; };
listen-on-v6 port 53 { none; };
allow-query { any; };
allow-query-cache { any; };
Далее в конфиге после
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
добавляем
view demo_zone {
match-clients { any; };
match-destinations { any; };
recursion yes;
zone "ispnet.demo" IN {
type master;
file "ispnet.demo.zone";
allow-update { none; };
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
и осталное удаляем что внизу.
сохраняем, теперь нужно прописать файл зоны.
файл зоны находится по пути /var/named/chroot/var/named
создаем файл ispnet.demo.zone
содержимое файла
$TTL 86400
$ORIGIN ispnet.demo.
ispnet.demo. IN SOA @ ns.ispnet.demo. (
44 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
$ORIGIN ispnet.demo.
IN NS ns.ispnet.demo.
IN A IP
ns IN A IP
admin IN A IP
stat IN A IP
myadm IN A IP
www IN A IP
где IP - ip адресс вашего сервера.
Это пример зоны, в реальной зоне необходимо использовать 2 NS сервера.
делаем
/etc/init.d/named restart
и не забываем запустить
setup
и добавить эту службу в автозапуск системы.
**Открываем установленный PHPMyadmin и начинаем работы с базой данных.**
для начала откроем "привелегии"
Удалим всех стандартных пользователей кроме 3х root
для пользователей root зададим одинаковый пароль и сохраним его себе на долгую память в блокноте.
Теперь вносим этот пароль в конфиг PHPmyadmin чтобы продолжить работу.
файл находится по пути /usr/share/phpmyadmin/config.inc.php
если вы ставили по инструкции выше...или же по другому пути как Вы сами установили данное приложение.
в нем меняем $cfg['Servers'][$i]['extension'] = 'mysql'; на $cfg['Servers'][$i]['extension'] = 'mysqli';
и в конце файла перед строками
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
вносим 3 строки
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'rootpass';
$cfg['Servers'][$i]['auth_type'] = 'config';
где rootpass - ваш пароль который вы только что сменили.
Все теперь откроем окно импорта.
Выберем кодировку файла UTF8 и выберем файл из дистрибутива
centos/sql/mikbill.sql
проводим импорт...и вы создали базу данных для билилнга.
осталось создать пользователя базы данных и работа со SQL у нас закончена.
Снова открываем "привелегии"
Создаем нового пользователя.
называем его mikbill
ограничиваем вход только localhost
задаем пароль и снова записываем ег ов блокнот
Далее выбираем PROCESS , SUPER . GRANT в администрировании и создаем пользователя.
После выбираем базу данных mikbill в панели "Привилегии уровня базы данных"
И отмечаем все права этому пользователю на базу данных.
Ниже тоже самое но прямыми SQL командами, как памятка для оппытных пользователей.
Выполнять после импорта mikbill.sql ( импорт производить в кодировке UTF8)
**ВНИМАНИЕ добавляя пользователя для работы биллинга, хост указывайте: localhost или %.**
CREATE USER 'mikbill'@'localhost' IDENTIFIED BY 'password';
GRANT USAGE ON * . * TO 'mikbill'@'localhost' IDENTIFIED BY 'password' WITH
MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
GRANT ALL PRIVILEGES ON `mikbill` . * TO 'mikbill'@'localhost' WITH GRANT OPTION ;
REVOKE ALL PRIVILEGES ON * . * FROM 'mikbill'@'localhost';
GRANT PROCESS , SUPER ON * . * TO 'mikbill'@'localhost' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0
MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Поздравляю. настройка базы данных завершена.
=====Настройка Freeradius.=====
для начала выполним подготовку
rm -rf /etc/raddb
rm -rf /etc/init.d/radiusd
теперь перейдем в папку дистрибутива открываем папку centos
и выполняем
cp -R ./usr/local/sbin/* /usr/local/sbin/
cp -R ./raddb /etc/
cp -R ./init.d/* /etc/init.d/
cp /etc/raddb/serialize.pm /usr/lib/perl5/vendor_perl/5.8.8/
ln -s ../init.d/mikbill /etc/rc.d/rc3.d/S87mikbill
mkdir /etc/mrtg
echo > /etc/mrtg/mrtg_mikbill_users.conf
echo > /etc/mrtg/mrtg_mikbill_tarif.conf
chmod -R a+rw /etc/mrtg
Теперь осталось отредактировать конфигурационный файл /etc/raddb/sql.conf
**ВНИМАНИЕ в этом файле следует изменять только 1 параметр**
password = "MIKBILLPASS"
вместо MIKBILLPASS впишите свой пароль на базу данных mikbill
Последнее добавте в автозапуск radiusd и mikbill с помощью команды setup
для теста запустите radiusd -X
если вы увидели
radiusd: #### Opening IP addresses and Ports ####
listen {
type = "auth"
ipaddr = *
port = 0
}
listen {
type = "acct"
ipaddr = *
port = 0
}
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Ready to process requests.
у Вас все в порядке, в противном случае проверте правильность выполнения предидущих шагов или обращайтесь на форум.
=====Настраиваем Apache.=====
для начала открываем файл /etc/httpd/conf/httpd.conf
переходим в конец файла и добавляем с новой строки
ServerName 0.0.0.0
TraceEnable off
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
NameVirtualHost *:80
NameVirtualHost *:443
Include /etc/httpd/vhosts.d/*.conf
теперь создаем директорию /etc/httpd/vhosts.d
и в нее ложим 2 конфиг файла
# cat ./admin_vhost.conf
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 /var/www/mikbill/admin
AllowOverride All
Options FollowSymlinks Includes
allow from all
SSLEngine on
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
ServerName admin.ispnet.demo
ServerAdmin webmaseter_yousite.com
Redirect permanent / https://admin.ispnet.demo/
# cat stat_vhost.conf
ServerAdmin admin_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 /var/www/mikbill/stat
AllowOverride ALL
Options FollowSymlinks Includes MultiViews
Order allow,deny
Allow from all
ServerAdmin admin_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 /var/www/mikbill/stat
AllowOverride ALL
Options FollowSymlinks Includes MultiViews
Order allow,deny
Allow from all
SSLEngine on
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
Лутше изменить временный сертификат, или пропустите этот шаг.
В случае создание сертификата не забудте указать путь к нему в директивах SSLCertificateKeyFile и SSLCertificateFile конфигураций виртуалхостов.
создайте папку /etc/httpd/ssl
и в этой директории выполните команду
openssl req -new -newkey rsa:1024 -nodes -keyout new.cert.key -x509 -days 500
-subj /C=UA/ST=Dn/L=Don/O=ISPNET/OU=Billing/CN=*.ispnet.demo/emailAddress=
email@ispnet.demo -out new.cert.cert
которая создаст самоподписаный сертификат, на первое время вам его хватит.
Заполните данные для доступа к базе данных биллинга. внесите в эти файлы логин и пароль на SQL
/var/www/mikbill/admin/app/etc/config.xml
/var/www/mikbill/stat/app/etc/config.xml
Настройка Apache закончена.
Не забываем сделать
/etc/init.d/httpd restart
Соотвественно зайдя по ссылкам
https://admin.ispnet.demo \\
https://stat.ispnet.demo \\
http://stat.ispnet.demo
"админка" и "личный кабинет" теперь доступны из вашей сети.
логин и пароль на первичный вход в "админку"
admin
admin
теперь запустив команду
/etc/init.d/mikbill start
вы запустите ядро биллинга, после старта ядра
выполните команду
# ps auxfw|grep php
вы увидите вывод схожий с этим
root 11339 3.5 0.0 133900 3468 pts/6 S+ Oct05 624:07 | \_ php ./mikbill.php
ядро биллинга запушено.
[[billing:configuration:cron|Настроим crond для Mikbill]]
[[billing:configuration:cross_server_uathorization|Настройка авторизации серверов для работы MikBill]]
[[billing:configuration:explain|Ознакомьтесь с пояснениями по работе биллинга MIkBill.]]
Ознакомтесь с [[billing:install:post_install | информацией после установки]]
Вопросы на [[http://www.mikbill.ru/forums/forum/39-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-centos/|форум]]