Для меня установка QMail это всегда огонь, вода и медные трубы. В репозиториях для CentOS 5 судя по всему пакета нет (и вряд ли будет), поэтому наименее тернистым выглядит полуавтоматическая установка QmailToaster, описание которой приведено ниже (перевод официальной документации):
Сразу оговорюсь, что CentOS 5 x86_64 у меня уже была установлена, поэтому шаги по установке ОС опускаем.
Подготовка к установке QmailToaster
Прежде всего проверяем selinux
[root@name ~]# getenforce Если отображается Disabled, то все окей. Если нет, то отключаем в ручную: [root@name ~]# vim /etc/selinux/config Заменяем: SELINUX=enforcing На: SELINUX=disabled
Аналогичную операцию можно выполнить, запустив утилиту setup и
После желательно перезагрузиться, чтобы изменения в настройках selinux вступили в силу.
Если вы хотите чтобы selinux оставался активен, нужно выполнить такую команду:
setsebool -P httpd_can_network_connect=1
Директория для инсталяции
Войдите в систему под root’ом, создайте директорию qtms-install
mkdir -p /usr/src/qtms-install
Пре-установочные скрипты
Перемещаемся в директорию /usr/src/qtms-install, которую создали ранее
cd /usr/src/qtms-install
cnt50-deps.sh и cnt5064-deps.sh
Для i386: нужно скачать скрипт cnt50-deps.sh
wget http://www.qmailtoaster.com/centos/cnt50/cnt50-deps.sh
Для x86_64: нужно скачать скрипт cnt5064-deps.sh
wget http://www.qmailtoaster.com/centos/cnt5064/cnt5064-deps.sh
Далее их нужно запустить:
Для i386: выполняем cnt50-deps.sh
sh cnt50-deps.sh
Для x86_64: выполняем cnt5064-deps.sh
sh cnt5064-deps.sh
cnt50-perl.sh и cnt5064-perl.sh
Для i386: нужно скачать скрипт cnt50-perl.sh
wget http://www.qmailtoaster.com/centos/cnt50/cnt50-perl.sh
Для x86_64: нужно скачать скрипт cnt5064-perl.sh
wget http://www.qmailtoaster.com/centos/cnt5064/cnt5064-perl.sh
Для i386: выполняем cnt50-perl.sh
sh cnt50-perl.sh
Для x86_64: выполняем cnt5064-perl.sh
sh cnt5064-perl.sh
Скрипт запросит ручную конфигурацию CPAN, отвечайте нихт ферштейн no ))
Далее скрипт запросит несколько раз yes/no, не обращайте внимания, просто нажимайте ENTER, будет выбран ответ по-умолчанию.
cnt50-svcs.sh и firewall.sh
Скачиваем cnt50-svcs.sh (не забывайте, если у вас CentOS 5 x86_64, заменяйте cnt50 на cnt5064, т.е. будет cnt5064-svcs.sh):
wget http://www.qmailtoaster.com/centos/cnt50/cnt50-svcs.sh или wget http://www.qmailtoaster.com/centos/cnt5064/cnt5064-svcs.sh
Редактируем cnt50-svcs.sh (cnt5064-svcs.sh) вашим любимым редактором:
vim cnt50-svcs.sh или vim cnt5064-svcs.sh
Находим строку MYSQLPW=YOUR_MYSQL_ROOT_PASSWORD и меняем YOUR_MYSQL_ROOT_PASSWORD на пароль mysql пользователя root. Сохраняем файл.
Скачиваем firewall.sh
wget http://www.qmailtoaster.com/centos/cnt5064/firewall.sh или wget http://www.qmailtoaster.com/centos/cnt5064/firewall.sh
Редактируем firewall.sh
vim firewall.sh
Находим строку MYIP=YOUR_IP_ADDRESS и изменяем YOUR_IP_ADDRESS на IP вашего сервера.
Запускаем cnt50-svcs.sh
sh cnt50-svcs.sh или sh cnt5064-svcs.sh
Этот скрипт включает все необходимые сервисы. Затем скрипт коннектится к mysql как root, создает и настраивает привилегии для vpopmail, создает симлинк на krb5, редактирует php.ini, устанавливает runlevel 3 и настраивает файрволл, вызывая firewall.sh. Некоторые сервисы могут выдавать ошибки во время работы скрипта, не беспокойтесь ))
Вы также можете утратить коннект если ваша сеть 192.168.0.0/16. Для того чтобы поправить это досадное недоразумение, поправьте должным образом /etc/sysconfig/iptables и перезапустите iptables.
Также может понадобиться поправить строку коннекта к mysql:
если у вас возникает ошибка ‘Access denied for user ‘root’@’localhost’ (using password: NO)’, измените строку cnt50-svcs.sh (cnt5064-svcs.sh)
mysqladmin -u root password $MYSQLPW на mysqladmin -u root -p$MYSQLPW
Обновление пакетов
Теперь нужно обновить все пакеты в системе:
yum -y update
После успешного завершения обновления, перезагружаемся
reboot
Установка QmailToaster
Загрузка необходимых пакетов QmailToaster
Логинимся под root’ом и переходим в директорию /usr/src/qtms-install/
cd /usr/src/qtms-install
Загружаем скрипт current-download-script.sh, который и загрузит нам все необходимые пакеты для последующей установки и запускаем его:
wget http://www.qmailtoaster.com/info/current-download-script.sh sh current-download-script.sh
Вы можете спросить: а если возникнут проблемы? Например ошибки сборки RPM:
Bad exit status from /var/temp/rpm-tmp.84356 (%build) error: File not found by glob: /usr/src/redhat/RPMS/x86_64/vpopmail-toaster*.rpm.
И потом, при установке qmail-toaster :
error: Failed dependencies : exim conflicts with qmail-toaster-1.03-1.3.16.x86_64 error: Failed dependencies : qmail-toaster >= 1.03-1.3.16 is needed by qmail-pop3d-toaster-1.03-1.3.16.x86_64
Нужно перед инсталляцией деинсталлировать exim и его зависимости:
rpm -e --nodeps arpwatch rpm -e --nodeps sendmail rpm -e --nodeps exim
Это должно помочь.
Установка пакетов QmailToaster
Скачиваем cnt50-install-script.sh (cnt5064-install-script.sh) – инсталлятор QmailToaster
wget http://www.qmailtoaster.com/centos/cnt50/cnt50-install-script.sh или wget http://www.qmailtoaster.org/centos/cnt5064/cnt5064-install-script.sh
Запускаем инсталятор:
sh cnt50-install-script.sh или sh cnt5064-install-script.sh
Скрипт запросит подтверждение на установку каждого пакета. Просто нажимаем Enter, чтобы выбирать Yes по умолчанию.
Если после устанвоки ничего не заработает: открываем инсталляционный скрипт, видим там дюжину секций или около того. Вы можете копипастнуть секцию и запустить ее независимо. Например, видим что не работает imap. Запускаем ручками:
DISTRO=cnt50 ARCH=i386 BDIR=redhat IMAP=courier-imap-toaster-*.src.rpm rpmbuild --rebuild --with $DISTRO $IMAP rpm -Uvh /usr/src/$BDIR/RPMS/$ARCH/courier-imap-toaster*.rpm
Видим что ошибка возникает потому что пакет cyrus-imap вызывает конфликт. Удаляем его
yum -y remove cyrus-imapd-2.3.7-2.el5.i386
Затем опять запускаем проблемный сегмент и тем самым решаем проблему.
Если в ходе инсталляции, при запуске sh cnt50-install-script.sh вы получаете ошибки vpopmail-toaster-5.4.13-1.3.1 (типа таких ‘cant run even the simplest ANSI C program…. create usergroup, create user…’):
Проверка сервисов
После установки мы должны убедиться в том что все нужные сервисы будут запущены при перезгрузке.
- Выполняем команду setup
- Выбираем System Services и выбираем Run Tool
- Проверям, выбраны ли требуемые сервисы:
- acpid
- anacron
- atd
- autofs
- cpuspeed
- crond
- freshclam
- haldaemon
- httpd
- iptables
- kudzu
- messagebus
- mysqld
- network
- ntpd
- qmail
- smartd
- sshd
- syslog
- xinet
Install djbdns
Установка djbdns (если вы не хотите bind)
#Удаяем bind rpm -e --nodeps bind bind-chroot #Собираем djbdns для i386 rpmbuild --rebuild --with cnt50 djbdns*.src.rpm #Собираем djbdns для x86_64 rpmbuild --rebuild --with cnt5064 djbdns*.src.rpm # Устанавливаем djbdns для i386 rpm -Uvh ../redhat/RPMS/i386/djbdns-localcache*.rpm # Устанавливаем djbdns для x86_64 rpm -Uvh ../redhat/RPMS/x86_64/djbdns-localcache*.rpm # Добавляем search your-domain.com в /etc/resolv.conf (не забывайте заменять your-domain.com на ваше значение) echo "search your-domain.com" > /etc/resolv.conf # Добавляем nameserver 127.0.0.1 в /etc/resolv.conf echo "nameserver 127.0.0.1" >> /etc/resolv.conf # перезагружаемся reboot
Конфигурация QmailToaster
Проверяем статус mail сервера
qmailctl stat
Вывод команды должен выглядеть примерно так:
root@gateway ~]# qmailctl stat authlib: up (pid 2425) 65 seconds clamd: up (pid 2425) 65 seconds imap4: up (pid 2421) 65 seconds imap4-ssl: up (pid 2423) 65 seconds pop3: up (pid 2414) 65 seconds pop3-ssl: up (pid 2409) 65 seconds send: up (pid 2416) 65 seconds smtp: up (pid 2418) 65 seconds spamd: up (pid 2407) 65 seconds authlib/log: up (pid 2417) 65 seconds clamd/log: up (pid 2417) 65 seconds imap4/log: up (pid 2422) 65 seconds imap4-ssl/log: up (pid 2424) 65 seconds pop3/log: up (pid 2415) 65 seconds pop3-ssl/log: up (pid 2413) 65 seconds send/log: up (pid 2420) 65 seconds smtp/log: up (pid 2419) 65 seconds spamd/log: up (pid 2408) 65 seconds
Добавляем домен
# Добавляем домен /home/vpopmail/bin/vadddomain your-domain.com # Добавляем пользователя /home/vpopmail/bin/vadduser you@your-domain.com # Редактируем /etc/php.ini и устанавливаем register_globals = On service httpd restart
Открываем браузер и переходим по URL http://www.your-domain.com/admin-toaster/
Username: admin
Password: toaster
Тут вы можете изменить пароль.
# Редактируем /etc/php.ini и устанавливаем register_globals = Off, рестартим апач service httpd restart
Проверяем полученный mail сервер:
Если не отображается Isoqlog нужно выполнить следующее:
sh /usr/share/toaster/isoqlog/bin/cron.sh
Уф. Написать это было не менее утомительно чем сделать ) Не говоря уж о том чтобы написать с нуля. Спасибо разработчику QmailToaster, а я на этом пойду спать. Благо то немногое, что мне нужно от Qmail, закрутилось завертелось.
мужик, тебе памятник!
Да ладно те ) Оригинал то не я писал. Я вообще зарекаюсь ставить qmail… Буду пробовать Exim или Postfix.
Дааа, Qmail – это жесть!
Угу. Я как-то в последнее время с ним не дружу даже…