вторник, 24 ноября 2009 г.

Установка и настройка nocc под FreeBSD.

На работе потребовалось организовать web интерфейс к imap корпоративной почты взамен: SquirrelMail - мне нравилась эта программа. - Моему начальнику нет. Да и там были проблемы с кодировками. При том проблем не мало. Спросив по форумам решения и получив такую ссылку: http://www.mail-archive.com/squirrelmail-users@lists.sourceforge.net/msg25361.html я понял, что ничего похоже с этим не поделать.


Посоветовали мне попробовать roundcube, но так-как ей для работы необходима СУБД MySQL, а на сервере на этом нету MySQL, решил не пробовать. На других серверах есть конечно СУБД, но пока не решился я всё это городить.

Решил попробовать для начала: nocc.

Необходимо:

1: Прочтение официальной документации.
2: Понимание этой документации. И настройка config.php в уже распакованном NOCC. - Настраивать не трудно, но есть некоторые моменты. В частности в самом первом параметре не забудте указать домен. Ну и вообще внимательно необходимо читать его. Он хорошо документирован.

3: Настройка PHP.
Для этого:

# cd /usr/ports/lang/php5
# ee Makefile


Добавляем нужные опции:


CONFIGURE_ARGS= \
--with-layout=GNU \
--with-config-file-scan-dir=${PREFIX}/etc/php \
--with-iconv \
--with-imap \
--with-imap-ssl \
--disable-all \
--enable-libxml \
--with-libxml-dir=${LOCALBASE} \
--enable-reflection \
--enable-mbstring \
--program-prefix=""



У меня получился такой набор. Это всё методом проб и ошибок.

К примеру: --enable-reflection \ если не подключить этот модуль будут возникать ошибки вида: Call to undefined function mb_convert_encoding(), что довольно логично, так-как по умолчанию в FreeBSD нету поддержки перекодировки в PHP. SquirrelMail используюет свои наработки, тогда как NOCC использует уже готовое решение в PHP, что на мой взгляд более правильно. В том числе модули imap и модули iconv. Но вот --enable-reflection \ не освещена в документации никак.

Далее делаем:

make deinstall
Затем
make install clean
Команда reinstall не сработала должным образом. Так, что пришлось сделать в два шага.

/usr/local/etc/rc.d/apache22 restart

Примечание: необходимо выполнить полный рестарт. Так-как мягкий graceful не применит новые библиотеки PHP.

Затем:

ee /usr/local/etc/apache22/httpd.conf

Проверяем опцию подобную этой:

Include etc/apache22/Includes/*.conf

Это чтобы сделать алиас, правильными методами apache а не символическими ссылками.

Затем создаём конфигурационный файл:

ee /usr/local/etc/apache22/Includes/mail.conf

К примеру с таким содержанием:

Alias /mail "/usr/local/www/nocc"

Options none
AllowOverride None
Order allow,deny
Allow from all


Снова можно перезапустить apache:

/usr/local/etc/rc.d/apache22 graceful

Ну и очень желательно создать файл на подобии такого:

ee /usr/local/www/nocc/phptest.php

С таким содержанием:

?php phpinfo(); ? - Не забудте заковычить выражение. Тут оно не кавычится - поэтому выложил без ковычек..

Затем в браузере набрав: www.host.com/mail/phptest.php
можно будет увидеть все настройки PHP и опции сборки, все вышеперечисленные мною опции должны присутствовать в соответствующих списках.

Теперь если правильно настроен сам NOCC, мы должны попасть на страницу с приглашением входа в NOCC. Для чего набираем:

www.host.com/mail

На этом всё.

Теперь поговорим о плюсах и минусах:

+ Кодировка в именах папок на IMAP почте в формате ISO 8859-1 распознаётся успешно.
(именно в такой кодировке по умолчанию создаёт папки Thunderburd на сервере)

+ Большинство писем будут корректно распознаваться. Кроме совсем уж через попных, где явно указана одна кодировка, а на самом деле совсем другая. Но для этого есть ниспадающий список кодировок.

+ Проект постоянно развивается. Так, что очень возможно, что в скором времени минусов станет меньше.

- Медленная работа. Страница с письмами перелистывается порядка 5-6 секунд. - Авторы говорят, что пока довольно не просто решить данную проблему. GCI скрипты отрабатывают не очень быстро.

- Отсутствие кнопки показать все письма в одной странице. - Скорее всего Авторы понимая не быструю работу программы специально не разрешают эту функцию.

- Кривая загрузка файлов в письмо. То закачивается, то нет... Пока не разобрался.

- Не всегда корректно распознаётся кодировка вложенных в файл письмо - но тут есть подозрение, что это отнюдь не вина почтового клиента.

Пока в продакшн не пускаю, так-как надо решить проблемы с загрузкой файлов.

Всё остальное устраивает.

Темы, адресная книга, много переводов, настраиваемый, LDAP, IMAP + SSL, POP3 - Всё работает.

Версия NOCC 1.8. Остальное не принципиально, и можно посмотреть в документации к программе.

Ссылки которые мне помогли приводить не буду. Так-как статья по сути является моей. Да и ссылок очень много будет. Я везде смотрел по чуть-чуть.

P.S. не забудте прочесть в документации все части касающихся безопасности!

Комментариев нет: