- Исходные данные
# uname -sr FreeBSD 12.3-RELEASE-p5 # pkg info | grep postfixadmin postfixadmin-php74-3.4.d.20211018 PHP web-based management tool for Postfix virtual domains and users # pkg info | grep nginx nginx-1.22.0_6,3 Robust and small WWW server # php -v PHP 7.4.30 (cli) (built: Jun 27 2022 19:01:17) ( ZTS )
Помните, что нужны php-fpm и php-модули imap, mbstring.
- Установка
# cd /usr/ports/mail/postfixadmin # make install clean
Конфигурация при установке:[ ] ADDONS Include add-ons and related Perl dependencies [ ] DOCS Build and/or install documentation [x] IMAP Support automated sub-folder creation for new mailboxes ───────────────────────────────── DATABASE ─────────────────────────────── [x] MYSQL MySQL database support [ ] PGSQL PostgreSQL database support [ ] SQLITE SQLite database support
В результате получим директорию /usr/local/www/postfixadmin с php-файлами внутри.
!!! Если до этого php-модуль pdo_mysql не был установлен, то нужно перезагрузить php-fpm.
- Конфигурация для nginx
server { listen 80 default; server_name admin.site.com; rewrite ^(.*)$ https://admin.site.com$1 permanent; } server { listen 443 default ssl; server_name admin.site.com; access_log /var/log/nginx/admin.site.com-access.log combined; error_log /var/log/nginx/admin.site.com-error.log; root /var/www/admin.site.com/html; location /postfixadmin { index index.php; try_files $uri $uri/ /postfixadmin/index.php; }
Делаем симлинк:# cd /var/www/admin.site.com/html # ln -s /usr/local/www/postfixadmin/public postfixadmin
- Пытливые умы уже догадались, что в этот сайт, кроме postfixadmin, можно напихать ещё и phpmyadmin, и mrtg, и всё, что угодно.
- В конфигурации есть редирект с http на https, но нужных директив в https-конфиге нет, статья о том, как получить бесплатный сертификат от Let's Encrypt и приделать его к nginx, есть на этом сайте
- Для большей защищенности сайта хорошо б приделать ещё и auth_basic, как минимум поисковики не смогут шариться и индексировать странички
- БД, конфигурация и суперадмин
Если, зайдя на https://admin.site.com/postfixadmin/, вы увидите страничку "Welcome to Postfix Admin", то значит, что можно идти дальше - настраивать БД и заводить суперадмина, пользователя, который сможет создавать новые почтовые домены и почтовые ящики.
Все это описано в файле INSTALL.TXT, но на всякий случай, я продублирую нужные шаги здесь.
Итак, БД:>mysql CREATE TABLE `postfixadmin` >mysql GRANT ALL ON `postfix`.* TO 'postfix'@'localhost' identified by 'mypassword'; >mysql FLUSH PRIVILEGES;
Файл с конфигурацией postfixadmin, /usr/local/www/postfixadmin/config.local.php<?php $CONF['configured'] = true; $CONF['database_type'] = 'mysqli'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfixadmin'; $CONF['database_password'] = 'mypassword'; $CONF['database_name'] = 'postfixadmin'; $CONF['encrypt'] = 'dovecot:SHA512'; $CONF['fetchmail'] = 'NO'; $CONF['show_footer_text'] = 'NO'; ?>
- $CONF['encrypt'] = 'dovecot:SHA512'; - если на сервере нет dovecot, то закомментируйте
- далее, https://admin.site.com/postfixadmin/setup.php, генерируем setup_password и действуем по инструкции (добавляем хеш в config.inc.php)
- снова https://admin.site.com/postfixadmin/setup.php, появится возможность зайти при помощи setup_password, воспользуемся этой возможностью
- после входа внизу странички будет "Database Update", "Add Superadmin Account", выполняем, добавляем и уже под суперадмином заходим в админку (https://admin.site.com/postfixadmin/)
postfixadmin установлен.
Статья опубликована: 2022-07-24 23:12:43
Последние правки: 2022-07-26 00:36:44
FreeBSD. Установим postfixadmin и настроим его работу через nginx. Важное замечание: postfixadmin не обязательно устанавливать на том же сервере, что и postfix. Общей должна быть только база данных.