четверг, 9 сентября 2010 г.

Выделенный сервер CentOS 5.5 x86_64 + ispCP Omega 1.1.0 с нуля (домашний бесплатный хостинг своими руками).



Какой софт будем ставить:
CentOS 5.5 x86_64
ispCP Omega 1.0.7
# yum list | grep "httpd\|mysql\|amavisd\|bind\|proftpd\|postgrey\|spamassassin\|postfix\|php" | grep installed
amavisd-new.x86_64 2.6.4-2.el5.rf installed
bind.x86_64 32:9.7.1-2.P2.el5 installed
bind-chroot.x86_64 32:9.7.1-2.P2.el5 installed
bind-libs.i386 32:9.7.1-2.P2.el5 installed
bind-libs.x86_64 32:9.7.1-2.P2.el5 installed
bind-utils.x86_64 32:9.7.1-2.P2.el5 installed
httpd.x86_64 2.2.16-2.el5 installed
httpd-tools.x86_64 2.2.16-2.el5 installed
libdbi-dbd-mysql.x86_64 0.8.1a-1.2.2 installed
mod_auth_mysql.x86_64 1:3.0.0-3.2.el5_3 installed
mysql.x86_64 5.0.91-1.el5 installed
mysql-libs.x86_64 5.0.91-1.el5 installed
mysql-server.x86_64 5.0.91-1.el5 installed
perl-DBD-mysql.x86_64 4.014-1.el5.rf installed
php.x86_64 5.2.11-1.el5 installed
php-bcmath.x86_64 5.2.11-1.el5 installed
php-cli.x86_64 5.2.11-1.el5 installed
php-common.x86_64 5.2.11-1.el5 installed
php-dba.x86_64 5.2.11-1.el5 installed
php-devel.x86_64 5.2.11-1.el5 installed
php-eaccelerator.x86_64 2:0.9.6.1-1.el5 installed
php-gd.x86_64 5.2.11-1.el5 installed
php-imap.x86_64 5.2.11-1.el5 installed
php-ldap.x86_64 5.2.11-1.el5 installed
php-mbstring.x86_64 5.2.11-1.el5 installed
php-mcrypt.x86_64 5.2.11-1.el5 installed
php-mhash.x86_64 5.2.11-1.el5 installed
php-mysql.x86_64 5.2.11-1.el5 installed
php-odbc.x86_64 5.2.11-1.el5 installed
php-pdo.x86_64 5.2.11-1.el5 installed
php-snmp.x86_64 5.2.11-1.el5 installed
php-soap.x86_64 5.2.11-1.el5 installed
php-tidy.x86_64 5.2.11-1.el5 installed
php-xml.x86_64 5.2.11-1.el5 installed
php-xmlrpc.x86_64 5.2.11-1.el5 installed
postfix.x86_64 2:2.6.7-1.el5 installed
postgrey.noarch 1.33-1.el5.rf installed
proftpd.x86_64 1.3.3-2.el5 installed
proftpd-mysql.x86_64 1.3.3-2.el5 installed
spamassassin.x86_64 3.3.1-3.el5.rf installed
system-config-bind.noarch 4.0.3-4.el5.centos installed
ypbind.x86_64 3:1.19-12.el5 installed


  1. Отключаем фаервол и SELinux
# setup
Настройка брандмауэра –
Уровень безопасности (Выключен)
SELinux: (Выключен)
# shutdown -r now

  1. Настраиваем MySQL (у меня из CentAlt репозитория не запустилась 5.0.91-1, переставил на стабильную 5.0.91, настроил масюклю и потом обновился на 5.0.91-1. Версия 5.0.92-1.el5 из репозитария CentALT замечательно встает и настраивается, так что перед этим пунктом можно сначала подключить репозитарий CentALT(описание подключения ниже).
Если  MySQL еще не установлен, ставим так:
# yum install mysql-server mysql -x *.i386
    В итоге решил поставить в самом начале :) )
    # chkconfig --levels 235 mysqld on
    # /etc/init.d/mysqld start
    или
    # service mysqld start
    # /usr/bin/mysql_secure_installation

    1. Добавляем репозитории:
    И так, список установленных репозитариев можно получить командой:
    # yum repolist

    EPEL (Extra Packages for Enterprise Linux):
    Исключим perl-version (нужно для ispCP)
    # vim /etc/yum.repos.d/epel.repo
    В конце раздел [epel] вставляем:
    exclude=perl-version

    CentALT (ЕГО МОЖНО БОЛЬШЕ НЕ ИСПОЛЬЗОВАТЬ, т.к. ispCP теперь поддерживает php 5.3 нормально, а заместо него ИСПОЛЬЗОВАТЬ REMI в нем более свежие пакеты.Т.Е, ставим enabled=0)
    # nano /etc/yum.repos.d/centalt.repo
    Включаем
    enabled=1
    Исключаем только сам PHP пакет т. к. будем ставить php-5.2.11-1, а там уже 5.3.3 (мои скрипты не поддерживают его). т. е. Именно exclude=php, а не exclude=php*, т. к. некоторые пакеты у нас смогут подцепляться из репозиториев, но при этом сам PHP не обновится автоматом :)
    exclude=php

    Les RPM de Remi (для установки обновленных PHP, MySQL и Sqlite):
    По умолчанию он выключен, включим и добавим только нужные пакеты:
    # nano /etc/yum.repos.d/remi.repo
    Ниже [remi] меняем с
    enabled=0
    на
    enabled=1
    И добавляем следующую строку:
    includepkgs=mysql* php* sqlite*

    RPMForge:
    # rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
    Из репозитория берем только postgrey (я этого НЕ ДЕЛАЛ — слишком много зависимостей не встает)
    # nano /etc/yum.repos.d/rpmforge.repo
    Вставляем(НЕ ДЕЛАЛ):
    includepkgs=postgrey
    Исключим perl-version (нужно для ispCP) (В прошлый раз просил perl-version 0.74, в rpmforge есть версия 0.88, с ней все РАБОТАЕТ)


    НЕКОТОРЫЙ СОФТ ВКЛЮЧАЯ AMAVISD ПЫТАЕТСЯ ЦЕПЛЯТЬ МОДУЛИ ИЗ perl 5.8.8 НАДО РАЗОБРАТЬСЯ!!!!


    Исключаем amavisd-new т.к. в этом репе версия 2.6.4 упорно не хочет запускаться.
    Ставим 2.4.5 из репозитория EPEL.
    exclude=amavisd-new

    1. Импортируем GPG ключи для установки софта:
    # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

    1. Синхронизация времени (см. http://centos.moy.su/news/data_i_vremja_v_centos/2010-02-13-6)
    # yum install ntp
    # chkconfig --levels 235 ntpd on
    # ntpdate 0.ru.pool.ntp.org
    # service ntpd start

    1. Добавляем пользователя
    # useradd -m nash-user
    # passwd nash-user-pasw

    1. Настраиваем SSH
    # nano /etc/ssh/sshd_config
    Раскоментируем и изменит вот эти строки:
    PermitEmptyPasswords no
    PermitRootLogin no
    # service sshd restart

    1. Обновляем систему:
    # yum update
    Для дальнейших обновлений нам надо будет исключить php*, чтобы самим следить за версие php для корректности работы сайтов и apr* тоже обновлять не будем, т.к. ставим более новую чем в репах с оф. сайта:

    # yum update -x php*,apr*
    1. Делаем полный бекап сервера CentOS (full backup) (Должны быть подключены репозитории EPEL и RPMForge)
    http://sapfeer.ru/delaem-backup-na-on-line-servisy/
    http://www.howtoforge.com/creating-encrypted-ftp-backups-with-duplicity-and-ftplicity-on-debian-lenny
    http://apnac.org/rezervnoe-kopirovanie-v-linux-duplicity-how-to/



    Почему именно duplicity – Текстовый, поддерживает много протоколов обмена данными. Вобщем просто конфетка ;)
    # yum install duplicity
    Бекапил так (пока расписывать не буду, не времени):
    Небольшой комент – а) параметр –log-file меня не устроил, почемуто в лог не писалось самое важное, а именно общая статистика выполненного бекапа, б) шифрование убрал … в) использовал пока бекап только по FTP ибо самый популярный протокол, хочу еще самбу (CIFS) опробовать.
    # FTP_PASSWORD=secret duplicity -v4 --no-encryption --exclude=/proc/* --exclude=/sys/* --exclude=/dev/pts/* --exclude=/dev/shm/* full / ftp://anonymous@192.168.0.101/backup/WEB/ > /root/backup_ftp.txt
    Следим за логом вот так (из соседней консоли соответственно :) )
    # tail -f /root/backup_ftp.txt
    Посмотреть статус хранилища:
    # FTP_PASSWORD=secret duplicity -v4 --no-encryption collection-status ftp://anonymous@192.168.0.101/backup/WEB/
    Восстановить нужную копию:
    # FTP_PASSWORD=secret duplicity -v4 restore --no-encryption --force -t2011-04-18 ftp://anonymous@192.168.0.101/backup/WEB/2011_04_18 /root/backup/  > /root/restore_backup_ftp.txt
    1. Устанавливаем ispCP Omega 1.0.7
    (http://isp-control.net/ispcp/browser/trunk/docs/CentOS/INSTALL
    http://isp-control.net/ispcp/browser/trunk/docs/CentOS/centos-packages)


    Пример моих пошаговых действий:
    Courier-IMAP:
    Ставлю courier-imap, качаю ручками с этого сайта http://www.thatfleminggent.com/packages/centos/5/x86_64/repoview/system_environment.daemons.group.html
    # yum install expect -x *.i386
    # rpm -Uhv http://www.thatfleminggent.com/packages/centos/5/x86_64/courier-imap-4.9.0-1.el5.mf.x86_64.rpm http://www.thatfleminggent.com/packages/centos/5/x86_64/courier-authlib-0.63.0-1.el5.mf.x86_64.rpm http://www.thatfleminggent.com/packages/centos/5/x86_64/courier-authlib-userdb-0.63.0-1.el5.mf.x86_64.rpm

    Policyd-weight:Сначала ставим необходимые для него перловские модули:
    # yum install perl-Net-IP
    # yum install perl-Unix-Syslog



    # rpm -Uhv http://citylan.dl.sourceforge.net/project/policyd-weight/policyd-weight/0.1.15%20beta-3/policyd-weight-0.1.15dev3-1.noarch.rpm

    Сначала обновим Perl 5.8.8 на 5.12.3 вот по этой статье
    http://administraher.blogspot.com/2010/12/upgrade-perl-588-to-5122-perl.html
    Доставим зависимости:
    # yum install perl-Net-DNS perl-Unix-Syslog postfix
    # rpm -Uhv http://sunet.dl.sourceforge.net/project/policyd-weight/policyd-weight/0.1.15%20beta-3/policyd-weight-0.1.15dev3-1.noarch.rpm


    10.1) Удаляем не нужные пакеты:

    # yum remove sendmail

    10.2) Настраиваем сервисы
    Создаем для Courier пользователя и группу:
    # groupadd -g 3000 courier
    # useradd -u 3000 -c 'Courier Mail Server' -d /dev/null -g courier -d /bin/false courier


    10.3) Распаковывем исходники ispCP в безопасную директорию и ставим (1.0.6 на сегодняшний момент последний стабильный, но его не советую много недоделок):

    Первый вариант (Лучший):
    # yum install subversion (я ставил вот так # yum install subversion -x *.i386 т. к. у меня тянулись i386 пакеты)
    # mkdir /usr/local/src/ispcp-svn/
    # cd /usr/local/src/ispcp-svn/
    # svn checkout http://www.isp-control.net:800/ispcp_svn/branches/omega-1.1.0
    # cd omega-1.1.0/


    Второй вариант(ЭТОТ ВАРИАНТ НЕ ОБНОВЛЯЮ):
    # cd /usr/local/src
    Заходим на http://isp-control.net/ и выбираем последний стабильный (у меня wget отработал только со второго раза):
    # wget http://sourceforge.net/projects/ispcp/files/ispCP%20Omega/ispCP%20Omega%201.0.6/ispcp-omega-1.0.6.tar.bz2/download
    # tar xjvf ispcp-omega-1.0.6.tar.bz2
    # cd ./ispcp-omega-1.0.6


    10.4) Устанавливаем требуемые пакеты из родного списка:


    Ставим последний стабильный php 5.3.6 из REMI репозитория, все сводится к нескольким строчкам:
     # yum install `cat ./docs/CentOS/centos-packages` -x *.i386
    P.S. Если вы захотели обновиться на новый php не забудьте удалить новоиспечеый конфиг php из папки  /etc/httpd/conf.d, иначе наши сайты не будут использовать FCGI и будут такие проблемы, как нехватка прав для приинклудивания клучая при входе в админку, неотработаю short_tag из-за загрузки /etc/php.ini, а не php.ini для каждого сайта. Вобщем папка должна выглядеть так:

    # ls -l /etc/httpd/conf.d
    итого 8
    -rw-r--r-- 1 root root 1853 Апр 21 23:32 fastcgi_ispcp.conf
    -rw-r--r-- 1 root root 1505 Апр 21 23:32 fcgid_ispcp.conf


    Ставим PHP прекомпилятор (на мой взгляд этот самый оптимальный)
    УДАЛИЛ - из-за него выскакивала ошибка на главной странице
    (Ошибка 330 (net::ERR_CONTENT_DECODING_FAILED): Неизвестная ошибка.)
    # yum install php-eaccelerator
    Т.е. все что ниже в этом пункте можно пропустить :)


    Схема такая:
    а) Ставим все кроме php т.к. нам нужна определенная версия
    # yum install `cat ./docs/CentOS/centos-packages` -x *.i386,php*
    б) Ставим php (ставим именно после апача, т.к. группы apache до этого не существует)
    Смотрим какие модули нам нужны для php (я поставил еще немного от себя)
    # cat ./docs/CentOS/centos-packages | grep php*
    Ставим php-5.2.11-1 (5.2.10, 5.2.11-1 — работает все, начиная с 5.2.11-2 уже не пашет ispCP Omega):
    Для установки требуются некоторые библиотеки … поставим их
    # yum install t1lib libc-client libmhash libtidy autoconf automake -x *.i386
    Качать пакеты будем либо с

    http://rpm.pbone.net/

    либо

    http://centos.alt.ru/pub/php-fpm/

    Я выбрал второй вариант:

    # rpm -Uhv http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-common-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-cli-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-devel-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-bcmath-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-dba-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-gd-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-imap-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-ldap-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-mbstring-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-mhash-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-mcrypt-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-pdo-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-odbc-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-mysql-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-snmp-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-soap-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-tidy-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-xml-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-xmlrpc-5.2.11-1.el5.x86_64.rpm


    На всякий командочка для полного удаления php (не забываем скопировать какие пакеты у нас буду удалены, чтобы потом все на место вернуть):
    # yum remove php*
    На всякий случай перепишу-ка себе в папочку php-5.2.11-1.el5.x86_64
    # mkdir /root/MY/php-5.2.11-1.el5.x86_64

    # wget http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-common-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-cli-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-devel-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-bcmath-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-dba-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-gd-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-imap-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-ldap-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-mbstring-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-mhash-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-mcrypt-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-pdo-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-odbc-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-mysql-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-snmp-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-soap-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-tidy-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-xml-5.2.11-1.el5.x86_64.rpm http://centos.alt.ru/pub/php-fpm/5.2.11/RHEL/RPMS/x86_64/php-xmlrpc-5.2.11-1.el5.x86_64.rpm
    Ставим PHP прекомпилятор (на мой взгляд этот самый оптимальный).

    УДАЛИЛ - из-за него выскакивала ошибка на главной странице
    (Ошибка 330 (net::ERR_CONTENT_DECODING_FAILED): Неизвестная ошибка.)

    # yum install php-eaccelerator

    10.5) Устанавливаем требуемые Perl пакеты:
    # perl -MCPAN -e 'install Term::ReadPassword'
    P.S. Самый перый вопрос -- готовы ли вы к автоматическому конфигурированию. Попробуйте ответить на него <y> (т.е. <<Yes>>) -- в этом случае все установки примут значения по умолчанию, чаще всего правильные.

    10.6) Очищаем дополнительные конфиги апача:
    # mv /etc/httpd/conf.d /etc/httpd/conf.d-disabled

    10.7) Настраиваем BIND
    # mv /var/named/data /var/named/data-disabled
    # mkdir /var/named/chroot/var/named/data
    # chmod 770 /var/named/chroot/var/named/data
    # chown -R named:named /var/named/chroot/var/named/data
    # ln -s /var/named/chroot/var/named/data /var/named/data
    # echo 'include "/etc/named-ispcp.conf";' >> /var/named/chroot/etc/named.conf

    10.8) Опционально можно проверить для нашей системы ispcp.conf:
    # nano /usr/local/src/ispcp-svn/trunk/configs/centos/ispcp.conf

    10.9) Собираем ispCP:
    # cd /usr/local/src/ispcp-svn/omega-1.1.0
    или
    # cd /usr/local/src/ispcp-omega-1.0.6
    # make -f Makefile.centos
    10.10) Копируем все файлы в нашу систему (Этот шаг фундаментально изменит нашу систему, лучшебы сделать бекап)
    Сначала удалим каталог «.svn» из всех папок (полезная статья про find - http://www.linuxjournal.su/?p=269):
    # find /tmp/ispcp/ -name .svn -exec rm -vfr {} \;

    У меня в системе для cp был прописан алиас "cp -i" который всегда спрашивал про перезапись.
    Проверим как у нас выставлено во збежание ручной работы в дальнейшем
    (Полезная ссылочка: http://rus-linux.net/lib.php?name=MyLDP/consol/HuMan/alias-ru.html ):

    Если увидете следующий вывод то спешим удалить алиас:
    # which cp
    alias cp='cp -i'
            /bin/cp

    Удалить алиас можно двумя способами:

    а) Временно (ВЫБРАЛ ЭТОТ) (будет действительна на время сесии, при повторном залогинивании опять вернется)
    дезактивации псевдонимов применяется команда unalias:
    # unalias ИМЯ_ПСЕВДОНИМА
    А конкретней
    # unalias cp

    б) Постоянно для конкретного пользователя (закоментить или удалить строчку)
    # nano ~/.bashrc
    ...
    #alias cp='cp -i'
    ...

    Ну и, соответственно, проверяем:
    # which cp
    /bin/cp

    Копируем файлики в систему:
    # cp -RLf /tmp/ispcp/* /


    10.11) Стартуем установку ispCP:
    # cd /var/www/ispcp/engine/setup

    Исключил perl-version из репозиториев EPEL и RPMForge (добавил «exclude=perl-version») У меня потребовал поставить perl-version-0.74
    Удалил старый мой perl-version-0.72... с зависимостями и поставил все поновой
    Искал вот здесь
    http://rpm.pbone.net/
    Вот как ставил:

    Теперь стартуем:
    # perl ispcp-setup


    Вот что я вписывал:


            Welcome to ispCP '1.1.0 OMEGA' Setup Dialog.

            This program will set up ispCP OMEGA system on your server.

            Next you are asked to enter a "fully qualified hostname" (FQHN).
            For more infos read http://en.wikipedia.org/wiki/FQDN.


            Please enter a fully qualified hostname. [office.domain.ru]:

            Please enter system network address. [192.168.0.12]:

            Please enter the domain name where ispCP OMEGA will run on [admin.office.domain.ru]: ctrl.domain.ru

            Please enter SQL server host. [localhost]:

            Please enter system SQL database. [ispcp]:

            Please enter system SQL user. [root]:

            Please enter system SQL password. [none]:
            Please repeat system SQL password:

            Please enter ispCP ftp SQL user. [vftp]:

            Please enter ispCP ftp SQL user password. [auto generate]:
            ispCP ftp SQL user password set to: *****************

            Please enter ispCP phpMyAdmin Control user. [pma]:

            Please enter ispCP phpMyAdmin Control user password. [auto generate]:
            phpMyAdmin Control user password set to: *********************

            Please enter administrator login name. [admin]:

            Please enter administrator password:
            Please repeat administrator password:

            Please enter administrator e-mail address: mail@mail.ru

            IP of Secondary DNS. (optional) []: 192.168.0.230

            Use MySQL Prefix.
            Possible values: [i]nfront, [b]ehind, [n]one. [none]:

            FastCGI Version: [f]cgid or fast[c]gi. [fcgid]:

            Activate AWStats. [no]: yes

            AWStats Mode:
            Possible values [d]ynamic and [s]tatic. [dynamic]:

            Starting Installation...
            Setting GUI Permissions: .... done
            Setting Engine Permissions: .. done

            Congratulations you installed ispCP '1.1.0 OMEGA' successfully!

            Please type http://cp.chaika-shop.ru in your browser and
            log in with your Administrator Account to use ispCP.

            Setup is now updating rkhunter:
    [ Rootkit Hunter version 1.3.8 ]

    Checking rkhunter data files...
      Checking file mirrors.dat                                  [ No update ]
      Checking file programs_bad.dat                             [ Updated ]
      Checking file backdoorports.dat                            [ No update ]
      Checking file suspscan.dat                                 [ Updated ]
      Checking file i18n/cn                                      [ No update ]
      Checking file i18n/de                                      [ Updated ]
      Checking file i18n/en                                      [ No update ]
      Checking file i18n/zh                                      [ Updated ]
      Checking file i18n/zh.utf8                                 [ Updated ]

    10.13) Очищаем темповскую папку:
    # rm -fR /tmp/ispcp/

    10.14) Конфигурируем сервисы:
    Postfix и SASL аутентификация:
    Создаем SASL базу для аутентификации почтовых пользователей и настраиваем SASL аутентификацию.
    Создадим базу:
    # touch /etc/sasldb2
    # mkdir -p /var/spool/postfix/etc
    # cp /etc/sasldb2 /var/spool/postfix/etc

    Разрешим аутентификацию, редактируем /usr/lib64/sasl2/smtpd.conf (для x86 /usr/lib/sasl2/smtpd.conf) и заменим содержимое на следующее:

    pwcheck_method: auxprop
    auxprop_plugin: sasldb
    mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5

    10.15) Настраиваем Apache HTTPd:
    Добавляем в конфиг строку следующей командой:
    # echo 'include vhosts/*.conf' >> /etc/httpd/conf/httpd.conf
    Для запуска Apache мне потребовалось добавить к строчкам имя локально машинки в /etc/hosts. Вот что получилось:
    127.0.0.1 office.domain.ru.local localhost web.domain.local web
    192.168.0.3 office.domain.ru office web.domain.local web
    ::ffff:192.168.0.3 office.domain.ru office
    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts

    10.15) Настраиваем Postgrey:
    Поумолчанию Postgrey заупускается на сокете, мы хотим запускать его на порте 60000.
    Редактируем /etc/init.d/postgrey и изменяем следующую строку:
    OPTIONS="--unix=$SOCKET"
    на
    OPTIONS="--unix=$SOCKET --inet=10023"

    10.16) Прописываем все на автозапуск:
    # chkconfig --level 235 httpd on
    # chkconfig --level 235 mysqld on
    chkconfig --level 235 ispcp_network on (НЕВЫПОЛНИТЬ. В 1.0.7 не работал, а в 1.1.0 ЗАПАХАЛ сервис ispcp_network не поддерживает chkconfig — проверить может при перезагрузке и так автоматом будет запускаться. Видать стартует и управляется с помощью ispcp_daemon )
    # chkconfig --level 235 ispcp_daemon on
    # chkconfig --level 235 amavisd on
    # chkconfig --level 235 named on
    # chkconfig --level 235 proftpd on
    # chkconfig --level 235 postgrey on
    # chkconfig --level 235 spamassassin on
    # chkconfig --level 235 postfix on

    Проверяем все ли у нас на автозапуске:
    # chkconfig --list | grep "httpd\|mysqld\|ispcp_daemon\|amavisd\|named\|proftpd\|postgrey\|spamassassin\|postfix\|ispcp_network"
    amavisd         0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл
    httpd           0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл
    ispcp_daemon    0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл
    ispcp_network   0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл
    mysqld          0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл
    named           0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл
    postfix         0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл
    postgrey        0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл
    proftpd         0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл
    spamassassin    0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл


    Запускаем:
    # service httpd start
    При запуске httpd выдает ошибку (РАЗОБРАТЬСЯ!!!):
    Запускается httpd:                                         [  OK  ]
    [root@office setup]#
    CRITICAL ERROR: Module [Term::ReadPassword] WAS NOT FOUND !

    Modules [Term::ReadPassword] WAS NOT FOUND in your system...
    # service mysqld start
    # service ispcp_network start (Видать стартует и управляется с помощью ispcp_daemon)
    # service ispcp_daemon start
    Запускаем amavisd (на нем немного подробней, были проблемы со стартом):
    Запускаем сначала в дебажном режиме (у меня по другому стартовать не хотел, пид сокет создавал с несуществующем пользователем 102 и группой 106) — Видимо из под рута он создает что-то.


    ============
    # perl -MCPAN -e 'install IO::Stringy, Unix::Syslog, Net::Server, Net::Server::PreFork, Crypt::OpenSSL::RSA'
    # perl -MCPAN -e 'install Digest::SHA1, Mail::SPF, IP::Country, Razor2, Net::Ident, IO::Socket::INET6, IO::Socket::SSL, Mail::DKIM, Encode::Detect, Mail::SpamAssassin'

    ============




    Выдавал такие ошибки в /var/log/maillog
    Sep 8 12:12:08 web amavis[9655]: (!!)TROUBLE in pre_loop_hook: config: no rules were found! Do you need to run 'sa-update'?
    Sep 8 12:12:08 web amavis[9655]: (!)_DIE: Suicide () TROUBLE in pre_loop_hook: config: no rules were found! Do you need to run 'sa-update'?

    И вот таки ошибки при стандартном запуске:
    Can't open PID file /var/amavis/amavisd.pid: Отказано в доступе at /usr/sbin/amavisd line 13900.
    Если такая ошибка будет выскакивать в процессе настройки описанной ниже то попробуйте удалить /var/amavis/amavisd.pid и /var/amavis/amavisd.sock или назначить им пользователя и группу amavis:amavis
    # amavisd -d
    Проверяем слушает или нет и смотрим логи:
    # lsof -i | grep "10024\|10025"
    master 5765 root 85u IPv4 17197 TCP office.domain.ru.local:10025 (LISTEN)
    amavisd 10141 amavis 6u IPv4 72977 TCP office.domain.ru.local:10024 (LISTEN)
    amavisd 10157 amavis 6u IPv4 72977 TCP office.domain.ru.local:10024 (LISTEN)
    amavisd 10158 amavis 6u IPv4 72977 TCP office.domain.ru.local:10024 (LISTEN)


    Смотрим статус
    # service amavisd status
    amavisd (pid 10158 10157 10141) выполняется...
    amavis-milter остановлен


    Если так, то все ОК.


    Теперь пробуем стартануть стандартно:
    # service amavisd stop
    # service amavisd start
    # service amavisd status
    # lsof -i | grep "10024\|10025"
    # tail -f /var/log/maillog

    Продолжим запуск демонов:
    # service named start
    Если неймед при старте говорит что такая зона уже существует или какой-то зоны физически нет, то это могла произойти если вы несколько раз запускали установку ispCP (# perl /var/www/ispcp/engine/setup/ispcp-setup).
    Тупо удаляем ее из:
    # nano /etc/ispcp/bind/working/named.conf
    И заменяем наш рабочий конфиг:
    # cp /etc/ispcp/bind/working/named.conf /var/named/chroot/etc/named-ispcp.conf

    # service proftpd start
    # service postfix start

    # perl -MCPAN -e 'install IO::Multiplex'
    # service postgrey start
    # service spamassassin start

    10.17) Настраиваем права для темповской директории ispcp:

    # chmod -R 775 /var/www/ispcp/gui/phptmp

    10.18) Устанавливаем русский язык для панельки:
    а) Скачиваем файлик с переводом вот этот :
    http://isp-control.net/ispcp/export/3232/trunk/language-files/languages/russian
    P.S. Снизу страницы ссылка «Original Format»



    б) Заходим в панельку — Settings — Internationalisation — Выбираем файлик для загрузки

    10.19) Заходим в админке в «Статус сервера» и проверяем все ли у нас сервисы запущенны.

    10.20) Проверяем все ли у нас нормально запуститься при перезапуске
    # shutdown -r now
    и опять проверяем «Статус сервера».

    P.S. Этой статьей я думаю начну серию статей про ispCP. В планах как минимум описать дальнейшее обновление самой системы CentOS с этим чудом ну и донастраивать сервисы отдельно …


    Из непонятного мне остался служба ispcp_network … но с этим разберусь позже :)

    17 комментариев:

    1. Что то я все равно не понял, кто поможет
      ICQ 2501820

      ОтветитьУдалить
    2. Если есть вопросы, задавайте пожалуйста здесь. Наверняка эти вопросы смогут заинтересовать и других!

      ОтветитьУдалить
    3. Застряг на пункте:-->
      10.12) Стартуем установку ispCP:

      Вот такую ошыбку выдает:-->
      [root@s2 setup]# perl ispcp-setup
      Can't locate feature.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at ispcp-setup line 38.
      BEGIN failed--compilation aborted at ispcp-setup line 38.

      ОтветитьУдалить
    4. В новой версии испа они используют в перле модуль feature, который встроен в perl начиная с 5.9.5. Я качал исходники с офсайта и собирал ручками последний стадильный (5.12.2) перл. У меня есть самописная инструкция, но выложить смогу скорей всего только 10 декабря, я пока в отпуске ... если тебе срочно надо, отпишись попробую выложить завтра.

      ОтветитьУдалить
    5. Просто замарочек там с обновлением из исходников тоже хватает :)

      ОтветитьУдалить
    6. Буду очень благодарен если выставиш "У меня есть самописная инструкция".
      Уже замучелся переставлять оси, и репозитории.

      ОтветитьУдалить
    7. ОК. сегодня постараюсь выложить. А то даже в свой отпуск дел столько, что хоть вешайся :) А с перлом я тоже дня три с утра до вечера маился, в итоге на третий день решил вернуться на старый и подождать оф обновления, ... а дай думаю еще разок попробую ... и опля прокатило :)
      Вобщем отпишусь сдесь как выложу ... заодно и обновление испцп инструкцию выложу. :)

      ОтветитьУдалить
    8. Выложил обновление перла ...
      http://administraher.blogspot.com/2010/12/upgrade-perl-588-to-5122-perl.html

      ОтветитьУдалить
    9. Здравствуйте!
      Пытаюсь настроить Exim4+postgresql+courier-imap!
      Прочитал вашу статью, очень понравилась, вопрос к Вам можете помочь с моей настройкой ??? Для начала проблема: после использования команды yum install postgresql postgresql-server postgresql-devel postgresql-pl postgresql-libs, идет процесс установки, система показывает, что пакеты установлены – «Package postgresql-8.1.22-1.el5_5.1.x86_64 already installed» но в системе не возможно найти файл конфигурации и остальные файлы (насколько я знаю postgresql.conf or pgsql.conf or psql.conf для начала)!?? Предполагаю: нужно добавить новый репозиторий для получения новой версии ПО 8.3. Но как это сделать и какой безопасный репозиторий для CentOS «5.5» использовать на данный момент я не знаю !??

      ОтветитьУдалить
    10. Очень рад, что моя статья пригодилась.
      Но к сожалению Exim и postgresql я еще пока ни разу не настраивал.
      Мои репы и их настроку можно посмотреть в 3 пункте.

      ОтветитьУдалить
    11. Ставим php-5.2.11-1 (5.2.10, 5.2.11-1 — работает все, начиная с 5.2.11-2 уже не пашет ispCP Omega)
      =====
      Эта ситуация сохранилась до сих пор? Какого-то обхода нет?

      ОтветитьУдалить
    12. В принципе последние версии ispCP поддерживают уже php 5.3 http://www.isp-control.ru/viewtopic.php?id=449
      Но не вижу особого смысла ставить на сервак 5.3 т.к. еще пока не все движки поддерживают ... так что я пока на 5.2 посижу, пока не преспичет.

      ОтветитьУдалить
    13. Я имел в виду, что последняя версия PHP 5.2 это 5.2.17 и yum при обновлении модулей именно её хочет вытащить и установить :(

      ОтветитьУдалить
    14. И еще вопрос, в заголовке статьи идет речь про панель 1.0.7, а в пунктах алгоритма указано выкачивание 1.0.6.
      Так под какую же версию эта статья?

      ОтветитьУдалить
    15. Под последний стабильный :)
      В скобочках это указано:
      "10.3) Распаковывем исходники ispCP в безопасную директорию и ставим (1.0.6 на сегодняшний момент последний стабильный, но его не советую много недоделок)"

      Я мог бы эти строчки вообще не писать но посчитал что командочки для примера пригодятся.

      ОтветитьУдалить
    16. По поводу PHP 5.2.17 Не экспериментировал ... попробуйте и если не трудно отпишитесь как там дела обстоят!

      ОтветитьУдалить