Апр 20 2009

Строим почтовую систему(postfix, dovecot, postfixadmin) — часть первая, установка PostfixAdmin

Создать легкую, быструю, да и еще и легко управляемую почтовую систему, это почти недосягаемый идеал. Это все потому, что легко управляемые и удобные средства, как правило потребляют запредельные ресурсы.
Вариант с MySQL, как хранилище авторизационных данных, является наименьшим из зол, поскольку простые селекты он отрабатывает очень быстро, так что для простой сети этого вполне хватит. И панель управления postfixadmin проста и удобна в использовании.
По итогу, что бы построить почту нам нужны установленный Apache c PHP, MySQL, и соответственно настроенный ДНС, который указывает MX-сы для нашего домена на тот сервер, где вы будете строить почтовую систему.

Настройку начнем с того, что установим PostfixAdmin, установим его из портов:

cd /usr/ports/mail/postfixadmin/
make install clean

В начале небольшой конфигурационный диалог:

┌────────────────────────────────────────────────────────────────────┐
│                 Options for postfixadmin 2.2.1.1                   │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │   [X] MYSQL   MySQL back-end (use mysql PHP extension)         │ │
│ │   [ ] MYSQLI  MySQL 4.1+ back-end (use mysqli PHP extension)   │ │
│ │   [ ] PGSQL   PostgreSQL back-end (use pgsql PHP extension)    │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

После того, как установка закончится, первым делом нужно настроить виртуальный домен апача, что бы получить доступ к панели управления PostfixAdmin. К примеру так:

<VirtualHost *:80>
    ServerAdmin postmaster@hilik.org.ua
    DocumentRoot /usr/local/www/postfixadmin
    ServerName postmaster.hilik.org.ua
    <Directory /usr/local/www/postfixadmin>
                  AllowOverride All
    </Directory>
</VirtualHost>

Далее нужно создать базу и пользователя MySQL:

mysql -uroot -p
create database postfix;
grant all on postfix.* to 'postfix'@'localhost' identified by 'postfixpass';

Теперь нужно изменить файл настроек postfixadmin /usr/local/www/postfixadmin/config.inc.php.
Изменим

$CONF['configured'] = false;

на

$CONF['configured'] = true;

Эта установка означает, что мы создали базы и пользователя MySQL.
Укажем URL на котором будет отвечать наш постфиксадмин:

$CONF['postfix_admin_url'] = 'http://postmaster.hilik.org.ua';

Далее в этом же файле установим языком по умолчанию русский:

$CONF['default_language'] = 'ru';

И установим параметры подключения к базе MySQL:

$CONF['database_type'] = 'mysql';
$CONF['database_host'] = '127.0.0.1';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfixpass';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';

И можно открывать в браузере установку:

http://postmaster.hilik.org.ua/setup.php

Там вы увидите примерно такое:

Postfix Admin Setup Checker
 
Running software:
 
    * PHP version 5.2.9
    * Apache/1.3.41 (Unix) PHP/5.2.9 with Suhosin-Patch
 
Checking for dependencies:
 
    * Warning: Magic Quotes: ON (internal workaround used)
    * Depends on: presence config.inc.php - OK
    * Checking $CONF['configured'] - OK
    * Depends on: MySQL 3.23, 4.0 - OK
    * Depends on: MySQL 4.1 - OK (change the database_type to 'mysqli' in config.inc.php!!)
    * Testing database connection - OK - mysql://postfix:xxxxx@127.0.0.1/postfix
    * Depends on: session - OK
    * Depends on: pcre - OK
    * Depends on: multibyte string - OK
    * Depends on: IMAP functions - OK
 
Everything seems fine... attempting to create/update database structure
 
Updating database:
 
old version: 0; target version: 397
 
updating to version 1 (all databases)...upgrade_1   done
 
updating to version 1 (MySQL)...   done
 
updating to version 2 (MySQL)...   done
 
updating to version 3 (MySQL)...   done
 
updating to version 4 (MySQL)...   done
 
updating to version 5 (MySQL)...   done
 
updating to version 79 (MySQL)...   done
 
updating to version 81 (MySQL)...   done
 
updating to version 90 (all databases)...   done
 
updating to version 169 (MySQL)...   done
 
updating to version 318 (MySQL)...   done
 
updating to version 344 (MySQL)...   done
 
updating to version 373 (MySQL)...   done

В самом низу находится диалог создания главного админа системы управления:
admin1
и на этом настройка PostfixAdmin закончена
Следом за этим, нужно удалить setup.php:

rm /usr/local/www/postfixadmin/setup.php

И можно войти непосредственно в систему управления:
enter
и далее создадим домен и пользователя в нем. Что бы было на чем проверять настройки постфикс и dovecot.
При использовании PostfixAdmin вы можете столкнуться с такой ошибкой:

Invalid query: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp1251_general_ci,IMPLICIT) for operation '='

Я решил эту проблему путем изменения настроек полей таблиц базы postfix, сделал это я для каждого поля text и varchar. В общем для каждого поля выполнял такие команды:

alter table fetchmail change src_user src_user varchar(255) character set latin1 NOT NULL default '';

то есть поменял character set по умолчанию.
Создадим домен, для этого перейдем в меню «Список доменов» подменю «Новый домен», выбрав этот пункт, появится диалог добавления домена:
domain-add
пункт «Почтовый сервер является резервным MX», означает, что почтовый сервер будет работать только на пересылку почты для этого домена. не доставляя почту в локальные почтовые ящики.
Создадим пользователя, для этого в меню «Обзор» выберем подменю «Создать Ящик»:
add-user

Теперь, когда мы добавили пользователя и домен, можно наконец то переходить к установке и настройке Postfix.
Об этом мы поговорим во второй части нашей статьи Строим почтовую систему(postfix, dovecot, postfixadmin) — часть вторая, установка Postfix

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
  • By Mihalich, 17.11.2009 @ 20:28

    Большое спасибо. Все ясно и понятно.

  • By galaunix, 27.03.2010 @ 10:35

    Vse ok podnjalos!
    sps

  • By niTo, 13.05.2010 @ 13:12

    при создании нового ящика:

    DEBUG INFORMATION:
    Invalid query: Table ‘postfix.alias_domain’ doesn’t exist

    Please check the documentation and website for more information.

    в чем дело? кто подскажет.

  • By Stanislaw, 21.08.2010 @ 08:27

    А вот мне совсем не ясно, откуда возьмется база в MySQL для постфиксадмина?

Other Links to this Post


Украинская Баннерная Сеть