Egroupware: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 30 промежуточных версий 8 участников)
Строка 1: Строка 1:
{{Stub}}
{{Stub}}
=== Об этом документе ===
Данная статья призвана рассказать об особенностях установки, настройки и эксплуатации программы eGroupWare под ALT Linux.
Данная статья призвана рассказать об особенностях установки, настройки и эксплуатации программы eGroupWare под ALT Linux.


Установка проводилась на ALT Linux 4.0 Office Server, с подключённым Branch 5.0.
Установка проводилась на ALT Linux 4.0 Office Server, с подключённым Branch 4.1 или 5.0.
По тексту вместо ''eGroupWare'' может попадаться аббревиатура ''egw'', для краткости.


По тексту вместо eGroupWare может попадаться аббревиатура egw, для краткости.
== Установка (консольная фаза) ==
Для работы eGroupWare нам понадобится Apache+PHP+PostgreSQL/MySQL, и Pear-модуль Auth_SASL.  


=== Установка (консольная фаза) ===
Также нам понадобятся работающие IMAP и SMTP - сервера или хотя бы один почтовый ящик на всех, с доступом по IMAP и SMTP.
Для работы eGroupWare нам понадобится Apache+PHP+PostgreSQL/MySQL, и Pear-модуль Auth_SASL.


==== PostgreSQL vs MySQL ====
=== PostgreSQL vs MySQL ===
Желающие могут выбрать MySQL, но сразу учтите, что полная установка eGroupWare добавляет в базу больше 130 таблиц, что может не лучшим образом сказаться на производительности MySQL.
Желающие могут выбрать MySQL, но сразу учтите, что полная установка eGroupWare добавляет в базу больше 130 таблиц, что может не лучшим образом сказаться на производительности MySQL.
Еще один важный для меня аргумент в пользу PostgreSQL — это коллективная работа с БД через OpenOffice.org. Если возникнет такая потребность, то следует учитывать, что
Ещё один важный для меня аргумент в пользу PostgreSQL — это коллективная работа с БД через OpenOffice.org. Если возникнет такая потребность, то следует учитывать, что
* Для PostgreSQL существует родной (написанный силами сообщества OpenOffice.org) sdbc-драйвер, одинаковый для Windows и Linux и оптимизированный для использования в макросах OOo. Драйвер для MySQL ведет себя по-разному под Windows и Linux.  
* Для PostgreSQL существует родной (написанный силами сообщества OpenOffice.org) sdbc-драйвер, одинаковый для Windows и Linux и оптимизированный для использования в макросах OOo. Драйвер для MySQL ведёт себя по-разному под Windows и Linux.
* OOo, в плане работы с базами данных… слабоват. Поэтому очень желательно все более-менее сложные вещи реализовывать на стороне сервера, а OOo отдавать уже пережеванные данные. И здесь PostgreSQL также впреди. Триггеры, хранимые процедуры, view — работают в нем давно и успешно.
* OOo, в плане работы с базами данных… слабоват. Поэтому очень желательно все более-менее сложные вещи реализовывать на стороне сервера, а OOo отдавать уже пережёванные данные. И здесь PostgreSQL также впреди. Триггеры, хранимые процедуры, view — работают в нём давно и успешно.


В пользу MySQL может оказаться тот аргумент, что на данный момент (v.0.4)только его поддерживает [http://projecterp.org pERP] - молодой, но очень значительно расширяющий функциональность eGroupWare проект.
В пользу MySQL может оказаться тот аргумент, что на данный момент (v.0.4) только его поддерживает [http://projecterp.org pERP] — молодой, но очень значительно расширяющий функциональность eGroupWare проект.


==== Apache2+PHP5 ====
=== Apache2+PHP5 ===
Не описывая установку Apache2+PHP5 просто приведу список установленных у меня пакетов:
Не описывая установку Apache2+PHP5 просто приведу список установленных у меня пакетов:


Строка 48: Строка 49:
Разумеется, не все они требуются для работы eGroupWare, но найти недостающий пакет вы сможете ;)
Разумеется, не все они требуются для работы eGroupWare, но найти недостающий пакет вы сможете ;)


==== Тюнинг PHP ====
=== Тюнинг PHP ===
Доставляем Pear-модуль:
Доставляем Pear-модуль:
  # pear install Auth_SASL
  # pear install Auth_SASL


Ослабляем политики по умолчанию для модуля apache2-mod_php5
Ослабляем политики по умолчанию для модуля apache2-mod_php5 (в идеале хорошо бы отловить все нужные опции и указать их только в {{path|/etc/httpd2/conf/addon.d/A.egroupware.conf}}, чтобы не снижать защищенность всего сервера, но так быстрее)
  # control apache2-mod_php5 relaxed; service httpd2 reload
  # control apache2-mod_php5 relaxed; service httpd2 reload
Ослабляем политики по умолчанию для php5-cli (command line interface). ''Не уверен, что это необходимо''.
Ослабляем политики по умолчанию для php5-cli (command line interface). [[Не уверен, что это необходимо!]]
  # control php5-cli relaxed
  # control php5-cli relaxed


N.B.! При использовании инструментов перевода, этого может оказаться недостаточно (очень много полей в запросе POST). Тогда:
[[N.B.!]] При использовании инструментов перевода, этого может оказаться недостаточно (очень много полей в запросе POST). Тогда:
* в {{path|/etc/control.d/facilities/apache2-mod_php5}} добавляем строки:
* в {{path|/etc/control.d/facilities/apache2-mod_php5}} добавляем строки:
  php_rule relaxed "suhosin.request.max_vars" "1000"
  php_rule relaxed "suhosin.request.max_vars" "1000"
  php_rule relaxed "suhosin.post.max_vars" "1000"
  php_rule relaxed "suhosin.post.max_vars" "1000"
В случае проблем с сохранением длинных переменных (сообщение в логах апача: '''ALERT - configured request variable total name length limit exceeded - dropped variable'''), попробуйте также добавить такие строки:
php_rule relaxed "suhosin.post.max_value_length" "16000000"
php_rule relaxed "suhosin.request.max_totalname_length" "2000"
php_rule relaxed "suhosin.post.max_totalname_length" "2000"
и повторяем:
и повторяем:
  # control apache2-mod_php5 relaxed
  # control apache2-mod_php5 relaxed
Строка 70: Строка 77:
   php5_value suhosin.post.max_vars 1000
   php5_value suhosin.post.max_vars 1000
   ...
   ...
  php5_value suhosin.post.max_value_length 16000000
  php5_value suhosin.request.max_totalname_length 2000
  php5_value suhosin.post.max_totalname_length 2000
  </Directory>
  </Directory>


Строка 75: Строка 85:
  # service httpd2 reload
  # service httpd2 reload


Возможно и этого окажется мало и нужно будет дать апачу права на языковые файлы:
[[Заметки на манжетке:]] Тем, кто соберется пользоваться модулем "Инструменты перевода" нужно будет дать апачу права на языковые файлы и папки, их содержащие (обычно {{path|/usr/share/egroupware/module_name/setup}}). Или сделать apache2 их владельцем:
  # find /usr/share/egroupware/ -type f -name *.lang -exec chown apache2.apache2 {} \;
  # find /usr/share/egroupware/ -type f -name *.lang -exec chown apache2.apache2 {} \;
# find /usr/share/egroupware/ -type d -name setup -exec chown apache2.apache2 {} \;


==== PostgreSQL ====
=== PostgreSQL ===
Устанавливаем и включаем PostgreSQL
Устанавливаем и включаем PostgreSQL
  # apt-get install postgresql8.3 postgresql8.3-server postgresql8.3-contrib
  # apt-get install postgresql8.3 postgresql8.3-server postgresql8.3-contrib
Строка 86: Строка 97:
  # createuser -S -D -R -P egroupware -U postgres
  # createuser -S -D -R -P egroupware -U postgres
  # createdb --encoding=utf-8 --owner egroupware egroupware -U postgres
  # createdb --encoding=utf-8 --owner egroupware egroupware -U postgres
N.B.!!! Не нужно использовать команду «su — postgres», как советуют в инструкции по установке eGroupWare. '''postgres''' — системный пользователь и его шелл указан, как /dev/null. Используйте ключ -U в командах PostgreSQL.
[[N.B.!!!]] Не нужно использовать команду «su — postgres», как советуют в инструкции по установке eGroupWare. '''postgres''' — системный пользователь и его шелл указан, как /dev/null. Используйте ключ -U в командах PostgreSQL.


Умолчальный конфиг доступа к базам postgresql выглядит так:
Умолчальный конфиг доступа к базам postgresql выглядит так:
Строка 100: Строка 111:
  host    egroupware  egroupware  192.168.0.0/24        password
  host    egroupware  egroupware  192.168.0.0/24        password


==== MySQL ====
=== MySQL ===
Нужно описать...


==== Устанавливаем собственно eGroupWare ====
# mysql -u root -p
Enter password:
...
mysql> CREATE DATABASE `egroupware` CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON egroupware.* TO egroupware@localhost IDENTIFIED BY 'egroupware_password';
mysql> FLUSH PRIVILEGES;
 
 
Если egw лежит на другом сервере, вы всё сделали, но соединение не устанавливается, то проверьте что mysql-сервер слушает tcp-порт:
# netcat -l | grep mysql
tcp  0    0    *:mysql *:* LISTEN
unix 2 [ ACC ]  STREAM LISTENING 1049553 /mysql.sock
 
Если строчка про tcp отсутствует, ищите опцию {{term|skip-networking}} в {{path|/var/lib/mysql/my.cnf}}. Должно быть закомментировано.
Ну и права доступа нужно будет изменить/добавить на:
mysql> GRANT ALL ON egroupware.* TO egroupware@egw_host_name_or_ip IDENTIFIED BY 'egroupware_password';
 
=== Устанавливаем собственно eGroupWare ===
Если пакеты не найдены, потребуется найти и подключить репозиторий, содержащий их.
Если пакеты не найдены, потребуется найти и подключить репозиторий, содержащий их.
  # apt-get install eGroupWare-* -y
  # apt-get install eGroupWare-* -y


=== Установка (браузерная фаза) ===
== Установка (браузерная фаза) ==
Эта фаза делится на две: «редактирование заголовочного файла» и «конфигурация установки» (см. ниже).
Эта фаза делится на две: «редактирование заголовочного файла» и «конфигурация установки» (см. ниже).


По умолчанию дальнейшая установка происходит по адресу:
По умолчанию дальнейшая установка происходит по адресу:
{{path|<nowiki>http://my_domain/egroupware/setup/</nowiki>}}
{{path|<nowiki>http://my_domain/egroupware/setup/</nowiki>}}
Для быстрого перехода можно набрать только {{path|<nowiki>http://my_domain/e</nowiki>}}
Для быстрого перехода можно набрать только {{path|<nowiki>http://my_domain/e</nowiki>}}  
(N.B. при заходе в конфигуратор желательно использовать именно доменное имя, а не IP адрес. Иначе при сохранении параметров будет выкидывать в главное меню установки без сохранения)


Умолчания можно изменять в настройках Apache ({{path|/etc/httpd2/conf/addon.d/A.egroupware.conf}}).
Умолчания можно изменять в настройках Apache ({{path|/etc/httpd2/conf/addon.d/A.egroupware.conf}}).


==== Редактирование заголовочного файла ====
=== Редактирование заголовочного файла ===
Настройки доступа к БД, а также реквизиты учётной записи администратора установки будут сохранены в файле {{path|/usr/share/egroupware/header.inc.php}} (который является символической ссылкой на {{path|/var/lib/egroupware/header.inc.php}}). Именно поэтому в русском переводе есть термин «администратор заголовка» (header — англ. заголовок). Переменная {{term|$GLOBALS['egw_info']['server']['header_admin_user']}}.
Настройки доступа к БД, а также реквизиты учётной записи администратора установки будут сохранены в файле {{path|/usr/share/egroupware/header.inc.php}} (который является символической ссылкой на {{path|/var/lib/egroupware/header.inc.php}}). Именно поэтому в русском переводе есть термин «администратор заголовка» (header — англ. заголовок). Переменная {{term|$GLOBALS['egw_info']['server']['header_admin_user']}}.
В норме, правится {{path|header.inc.php}} один раз (при создании) и в дальнейшем имеет смысл установить на {{path|/var/lib/egroupware/header.inc.php}} права только на чтение и/или поставить достаточно сложный пароль плюс ограничение доступа по ip. И забэкапить.
В норме, правится {{path|header.inc.php}} один раз (при создании) и в дальнейшем имеет смысл установить на {{path|/var/lib/egroupware/header.inc.php}} права только на чтение и/или поставить достаточно сложный пароль плюс ограничение доступа по ip. И забэкапить.


Там же в {{path|header.inc.php}} сохраняются реквизиты второй учётки — «администратора установки», которые позволяют перейти к следующему этапу. Переменная {{term|$GLOBALS['egw_domain']['default']['config_user']}}.
Там же в {{path|header.inc.php}} сохраняются реквизиты второй учётки — «администратора установки», которые позволяют перейти к следующему этапу. Переменная {{term|$GLOBALS['egw_domain']['default']['config_user']}}.


==== Конфигурация установки ====
Поскольку eGroupWare позволяет работать из одной инсталляции с несколькими доменами, то переменные эти определяются в массивах.
To be continue…
 
Сведения, приведенные выше - больше для справки. Заголовочный файл создается и изменяется в браузерной фазе установки и руками его редактировать особого смысла нет.
 
[[Заметки на манжетке:]]
Т.к. в eGroupWare имеется возможность иметь одну инсталяцию ПО для нескольких "доменов", то название домена при установки схемы базы можно изменить с "по-умолчанию default" на что-то "свое". Выбор доменов появится в окне логина пользователя, при кол-ве доменов >2 (или соответствующего пункта в настроечном заголовочном файле).
Текущее состояние фазы инсталяции ведет себя по-разному при использовании разных типов СУБД при явно указаном имени домена (т.е. не default).
*при использовании тип СУБД MySQL - выбираем, устанавливаем крыжики, при желании можно изменить домен по-умолчанию на что-то свое. Заголовочный файл создается и записывается.
*при использовании тип СУБД PostgreSQL - фаза инсталяции не дает пройти этот шаг, если имя по умолчанию изменено с default на что-то свое. Если оставить default, и добавить еще домен, и выставит нужные крыжики - заголовочный файл создается и записывается. Вручную можно удалить тот default - мы в нем никаких ценных параметров не задавали. После этого всё также продолжает работать.
 
[[Еще одно замечание для MySQL:]] варианты соединения с БД обозначены как MySQL, MySQLi (php5),MySQL (with transactions). Если на ваш выбор нет ограничений сверху (например, политика хостера), смело указывайте последний вариант. При этом создадутся таблицы формата InnoDB, а не умолчального MyISAM. Это более продвинутый формат, который поддерживает транзакции, внешние ключи и прочее, что не будет лишним для такого сложного приложения.
 
=== Конфигурация установки ===
 
Следующая фаза браузерной установки состоит из шести шагов. Этих шагов 6. Хотя логика и подсказывает, что нумерованный список нужно проходить по порядку, но после успешного прохождения первого шага, остальные могут быть пройдены/откорректированы в произвольном порядке или требовать порядка не совпадающего с нумерацией.
 
В частности, в некоторых вариантах (до конца не выяснено, но у меня проявлялось при установке в связке с PostgreSQL и не проявлялось c MySQL) после первого шага оказываются неустановленными многие модули программы (5-й шаг), в т.ч. и почтовый. А это, в свою очередь не позволяет пройти 2-й шаг (жалобы на неправильно сконфигурированный IMAP). Тогда нужно перейти к шагу 5, а потом вернуться к шагу 2.
 
====Шаг 1 - Простое Управление Приложениями.====
На этом шаге в вашу СУБД устанавливается схема для данного ПО.
 
 
====Шаг 2 - Конфигуратор.====
Основная информация о настройки eGroupWare.
Если планируется использовать LDAP - правильно указывайте ветку с пользователями.
 
[[Заметки на манжетке:]]
Поддержка LDAP в eGroupWare довольно ограничена и настраивается... нетривиально. Если вы только начинаете знакомство с этой системой, лучше использовать в качестве хранилища SQL. Тем более, что потом можно вернуться и поэкспериментировать. Например, [[интегрировать eGroupWare с доменом Centaurus]].
 
====Шаг 3 - Учетная запись администратора.====
Кто тут главный?
если было указано что используется ldap - то на этом шаге будет создан пользователь.
При некотором умении можно обойтись уже существующими пользователями из каталога.
 
[[Заметки на манжетке:]]
Помните, что имена пользователей и групп нужно указывать без пробелов только латиницей и цифрами (можете попробовать добавить точку, подчеркивание и дефис, но не более)! Иначе вы рискуете получить множество неочевидных глюков. Особенно в модуле filemanager, потому что каждой учетной записи и каждой группе ставится в соответствие одноименная папка в виртуальной файловой системе и эти названия используются в uri.
 
====Шаг 4 - Управление Переводами.====
Поддержка языков. Если не планируете использовать английский в интерфейсе (или англоязычные версии вики/CMS), не устанавливайте его. Тем более, что всегда можно вернуться и доустановить.
 
====Шаг 5 - Расширенное Управление Приложениями.====
На этом шаге позволяется установить модули в вашу систему eGroupWare. Для начала, поставьте всё. Ненужное можно отключить в системе, спрятать из меню или запретить доступ.
 
[[Заметки на манжетке:]]
Забегая вперед, хотелось бы поподробнее рассказать про права доступа и категории. Это может сэкономить много нервов в дальнейшем.
# В egw действует правило "что не разрешено, то запрещено". При этом явно можно указать только разрешения. Т.е. нельзя создать группу изгоев, которым "нельзя ни то, ни это" и добавлять туда неугодных. Если пользователь входит в несколько групп и какой-то из них что-то разрешено, значит ему это разрешено.
# Разрешения настраиваются для каждого модуля отдельно. По-умолчанию, запрещено всё. Т.е. вообще всё, даже модуль "Домой"!
# Для некоторых модулей (адресная книга, календарь, вики, filemanager,...), после выставления общего разрешения и сохранения изменений, справа от галочки становится доступным значок тонкой настройки прав доступа (ACL - access control list). <br>[[Изображение:egw_acl.png]]<br>
# Для неавторизованных пользователей (для просмотра сайта, вики, базы знаний, новостей и т.п.) предусмотрены специальная учетная запись {{term|anonymous}} и группа {{term|NoGroup}}.
# Группы в egw нужны не только для того, чтобы добавлять в них пользователей системы. Каждая группа - это одноименная групповая адресная книга, и календарь, и папка в filemanager и прочее в том же духе. А значит, можно создавать группы, которые не содержат активных учетных записей и предназначены для работы с ними пользователей из других групп. Например, можно создать группы "PotentialClients", "Clients", "VIPClients" и сделать их доступными для групп "TopManagers" и "Managers". Не забываем, что названия групп нужно указывать только латиницей.
# К адресным книгам (в т.ч. к групповым) можно привязывать шаблоны документов (txt,rtf), в которых используется соотв информация. Позволяет сделать отдельный документ и/или циркулярную рассылку. Удобно для организации почтовой рассылки или чего-то в этом роде. Главная проблема: txt - никакой в смысле оформления, а в rtf не ASCII-текст отображается кракозяблами (надо фиксить на предмет конвертации unicode-строк в вид \u1234 при обработке rtf). '''Небольшой грязный хак позволяет выключить поддержку rtf и txt, но взамен дает возможность генерить html-документы (в т.ч. циркулярные, с разбивкой на страницы).''' Также есть намерения, попробовать привязать возможности pERP работать с odt-шаблонами (через висящий по фону OpenOffice.org, что добавляет накладных расходов, но зато снимает вопросы по быстрому созданию и корректной обработке шаблонов).
 
# Категории бывают:
#* общесистемные, распространяющиеся на все модули системы и
#* относящиеся к конкретному модулю, которые ''достраивают'' общесистемное дерево категорий, отдельно для каждого модуля.
# Отличие групп от категорий в возможности проставить разрешения на доступ к групповым данным. Например, чтобы скрыть от непосвященных вип-контакты или сделать доступ только для чтения, без создания отдельной группы не обойтись.
# Зато в категориях можно использовать кириллицу. :)
 
====Шаг 6 - Сохранение и восстановление БД.====
Про бекапы и восстановления. Не забудьте нажать кнопку "Запланировать", для занесения задания в cron.


[[Категория:Admin]], [[Категория:HOWTO]]
To be continued…
[[Категория:Admin]]
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}

Текущая версия от 20:16, 2 июля 2015

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Данная статья призвана рассказать об особенностях установки, настройки и эксплуатации программы eGroupWare под ALT Linux.

Установка проводилась на ALT Linux 4.0 Office Server, с подключённым Branch 4.1 или 5.0.

По тексту вместо eGroupWare может попадаться аббревиатура egw, для краткости.

Установка (консольная фаза)

Для работы eGroupWare нам понадобится Apache+PHP+PostgreSQL/MySQL, и Pear-модуль Auth_SASL.

Также нам понадобятся работающие IMAP и SMTP - сервера или хотя бы один почтовый ящик на всех, с доступом по IMAP и SMTP.

PostgreSQL vs MySQL

Желающие могут выбрать MySQL, но сразу учтите, что полная установка eGroupWare добавляет в базу больше 130 таблиц, что может не лучшим образом сказаться на производительности MySQL. Ещё один важный для меня аргумент в пользу PostgreSQL — это коллективная работа с БД через OpenOffice.org. Если возникнет такая потребность, то следует учитывать, что

  • Для PostgreSQL существует родной (написанный силами сообщества OpenOffice.org) sdbc-драйвер, одинаковый для Windows и Linux и оптимизированный для использования в макросах OOo. Драйвер для MySQL ведёт себя по-разному под Windows и Linux.
  • OOo, в плане работы с базами данных… слабоват. Поэтому очень желательно все более-менее сложные вещи реализовывать на стороне сервера, а OOo отдавать уже пережёванные данные. И здесь PostgreSQL также впреди. Триггеры, хранимые процедуры, view — работают в нём давно и успешно.

В пользу MySQL может оказаться тот аргумент, что на данный момент (v.0.4) только его поддерживает pERP — молодой, но очень значительно расширяющий функциональность eGroupWare проект.

Apache2+PHP5

Не описывая установку Apache2+PHP5 просто приведу список установленных у меня пакетов:

# rpm -qa | grep "^\(apache2\|php5\)" | sort
apache2-2.2.6-alt4
apache2-common-2.2.6-alt4
apache2-httpd-prefork-2.2.8-alt1
apache2-manual-2.2.6-alt4
apache2-mod_php5-5.2.5-alt1.M41.2
apache2-mod_ssl-2.2.6-alt4
php5-5.2.5-alt1.M41.2
php5-dom-5.2.5-alt1
php5-gd2-5.2.5-alt1
php5-imap-5.2.5-alt1
php5-ldap-5.2.5-alt1
php5-libs-5.2.5-alt1.M41.2
php5-mbstring-5.2.5-alt1
php5-mcrypt-5.2.5-alt1
php5-mysql-5.2.5-alt1
php5-mysqli-5.2.5-alt1
php5-openssl-5.2.5-alt1
php5-pdo-5.2.5-alt1
php5-pdo_mysql-5.2.5-alt1
php5-pdo_pgsql-5.2.5-alt1
php5-pgsql-5.2.5-alt1
php5-suhosin-0.9.23-alt1
php5-xmlrpc-5.2.5-alt1.M41.2

Разумеется, не все они требуются для работы eGroupWare, но найти недостающий пакет вы сможете ;)

Тюнинг PHP

Доставляем Pear-модуль:

# pear install Auth_SASL

Ослабляем политики по умолчанию для модуля apache2-mod_php5 (в идеале хорошо бы отловить все нужные опции и указать их только в /etc/httpd2/conf/addon.d/A.egroupware.conf, чтобы не снижать защищенность всего сервера, но так быстрее)

# control apache2-mod_php5 relaxed; service httpd2 reload

Ослабляем политики по умолчанию для php5-cli (command line interface). Не уверен, что это необходимо!

# control php5-cli relaxed

N.B.! При использовании инструментов перевода, этого может оказаться недостаточно (очень много полей в запросе POST). Тогда:

  • в /etc/control.d/facilities/apache2-mod_php5 добавляем строки:
php_rule relaxed "suhosin.request.max_vars" "1000"
php_rule relaxed "suhosin.post.max_vars" "1000"

В случае проблем с сохранением длинных переменных (сообщение в логах апача: ALERT - configured request variable total name length limit exceeded - dropped variable), попробуйте также добавить такие строки:

php_rule relaxed "suhosin.post.max_value_length" "16000000"
php_rule relaxed "suhosin.request.max_totalname_length" "2000"
php_rule relaxed "suhosin.post.max_totalname_length" "2000"

и повторяем:

# control apache2-mod_php5 relaxed
  • или то же самое в /etc/php/5.2.5/apache2-mod_php/php.d/suhosin.ini
  • или (наилучший путь, если есть другие сайты на этом же сервере) в /etc/httpd2/conf/addon.d/A.egroupware.conf
<Directory /usr/share/egroupware/>
 ...
 php5_value suhosin.request.max_vars 1000
 php5_value suhosin.post.max_vars 1000
 ...
 php5_value suhosin.post.max_value_length 16000000
 php5_value suhosin.request.max_totalname_length 2000
 php5_value suhosin.post.max_totalname_length 2000
</Directory>

В любом случае, не забываем делать:

# service httpd2 reload

Заметки на манжетке: Тем, кто соберется пользоваться модулем "Инструменты перевода" нужно будет дать апачу права на языковые файлы и папки, их содержащие (обычно /usr/share/egroupware/module_name/setup). Или сделать apache2 их владельцем:

# find /usr/share/egroupware/ -type f -name *.lang -exec chown apache2.apache2 {} \;
# find /usr/share/egroupware/ -type d -name setup -exec chown apache2.apache2 {} \;

PostgreSQL

Устанавливаем и включаем PostgreSQL

# apt-get install postgresql8.3 postgresql8.3-server postgresql8.3-contrib
# chkconfig postgresql on
# service postgresql start

Добавляем пользователя egroupware и одноимённую базу в PostgreSQL.

# createuser -S -D -R -P egroupware -U postgres
# createdb --encoding=utf-8 --owner egroupware egroupware -U postgres

N.B.!!! Не нужно использовать команду «su — postgres», как советуют в инструкции по установке eGroupWare. postgres — системный пользователь и его шелл указан, как /dev/null. Используйте ключ -U в командах PostgreSQL.

Умолчальный конфиг доступа к базам postgresql выглядит так:

# cat /var/lib/pgsql/data/pg_hba.conf | grep "^[a-zA-Z]"
local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust

Этого должно хватить для беспроблемной работы eGroupWare на той же машине, что и PostgreSQL. Но если вы хотите ужесточить правила и/или добавить доступ к БД с других машин, то можно изменить как-нибудь так:

# cat /var/lib/pgsql/data/pg_hba.conf | grep "^[a-zA-Z]"
local   all         all                               trust
host    all         all         ::1/128               trust
host    egroupware  egroupware  127.0.0.1/32          password
host    egroupware  egroupware  192.168.0.0/24        password

MySQL

# mysql -u root -p
Enter password:
...
mysql> CREATE DATABASE `egroupware` CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON egroupware.* TO egroupware@localhost IDENTIFIED BY 'egroupware_password';
mysql> FLUSH PRIVILEGES;


Если egw лежит на другом сервере, вы всё сделали, но соединение не устанавливается, то проверьте что mysql-сервер слушает tcp-порт:

# netcat -l | grep mysql
tcp  0    0    *:mysql *:* LISTEN
unix 2 [ ACC ]  STREAM LISTENING 1049553 /mysql.sock

Если строчка про tcp отсутствует, ищите опцию skip-networking в /var/lib/mysql/my.cnf. Должно быть закомментировано. Ну и права доступа нужно будет изменить/добавить на:

mysql> GRANT ALL ON egroupware.* TO egroupware@egw_host_name_or_ip IDENTIFIED BY 'egroupware_password';

Устанавливаем собственно eGroupWare

Если пакеты не найдены, потребуется найти и подключить репозиторий, содержащий их.

# apt-get install eGroupWare-* -y

Установка (браузерная фаза)

Эта фаза делится на две: «редактирование заголовочного файла» и «конфигурация установки» (см. ниже).

По умолчанию дальнейшая установка происходит по адресу: http://my_domain/egroupware/setup/ Для быстрого перехода можно набрать только http://my_domain/e (N.B. при заходе в конфигуратор желательно использовать именно доменное имя, а не IP адрес. Иначе при сохранении параметров будет выкидывать в главное меню установки без сохранения)

Умолчания можно изменять в настройках Apache (/etc/httpd2/conf/addon.d/A.egroupware.conf).

Редактирование заголовочного файла

Настройки доступа к БД, а также реквизиты учётной записи администратора установки будут сохранены в файле /usr/share/egroupware/header.inc.php (который является символической ссылкой на /var/lib/egroupware/header.inc.php). Именно поэтому в русском переводе есть термин «администратор заголовка» (header — англ. заголовок). Переменная $GLOBALS['egw_info']['server']['header_admin_user']. В норме, правится header.inc.php один раз (при создании) и в дальнейшем имеет смысл установить на /var/lib/egroupware/header.inc.php права только на чтение и/или поставить достаточно сложный пароль плюс ограничение доступа по ip. И забэкапить.

Там же в header.inc.php сохраняются реквизиты второй учётки — «администратора установки», которые позволяют перейти к следующему этапу. Переменная $GLOBALS['egw_domain']['default']['config_user'].

Поскольку eGroupWare позволяет работать из одной инсталляции с несколькими доменами, то переменные эти определяются в массивах.

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

Заметки на манжетке: Т.к. в eGroupWare имеется возможность иметь одну инсталяцию ПО для нескольких "доменов", то название домена при установки схемы базы можно изменить с "по-умолчанию default" на что-то "свое". Выбор доменов появится в окне логина пользователя, при кол-ве доменов >2 (или соответствующего пункта в настроечном заголовочном файле). Текущее состояние фазы инсталяции ведет себя по-разному при использовании разных типов СУБД при явно указаном имени домена (т.е. не default).

  • при использовании тип СУБД MySQL - выбираем, устанавливаем крыжики, при желании можно изменить домен по-умолчанию на что-то свое. Заголовочный файл создается и записывается.
  • при использовании тип СУБД PostgreSQL - фаза инсталяции не дает пройти этот шаг, если имя по умолчанию изменено с default на что-то свое. Если оставить default, и добавить еще домен, и выставит нужные крыжики - заголовочный файл создается и записывается. Вручную можно удалить тот default - мы в нем никаких ценных параметров не задавали. После этого всё также продолжает работать.

Еще одно замечание для MySQL: варианты соединения с БД обозначены как MySQL, MySQLi (php5),MySQL (with transactions). Если на ваш выбор нет ограничений сверху (например, политика хостера), смело указывайте последний вариант. При этом создадутся таблицы формата InnoDB, а не умолчального MyISAM. Это более продвинутый формат, который поддерживает транзакции, внешние ключи и прочее, что не будет лишним для такого сложного приложения.

Конфигурация установки

Следующая фаза браузерной установки состоит из шести шагов. Этих шагов 6. Хотя логика и подсказывает, что нумерованный список нужно проходить по порядку, но после успешного прохождения первого шага, остальные могут быть пройдены/откорректированы в произвольном порядке или требовать порядка не совпадающего с нумерацией.

В частности, в некоторых вариантах (до конца не выяснено, но у меня проявлялось при установке в связке с PostgreSQL и не проявлялось c MySQL) после первого шага оказываются неустановленными многие модули программы (5-й шаг), в т.ч. и почтовый. А это, в свою очередь не позволяет пройти 2-й шаг (жалобы на неправильно сконфигурированный IMAP). Тогда нужно перейти к шагу 5, а потом вернуться к шагу 2.

Шаг 1 - Простое Управление Приложениями.

На этом шаге в вашу СУБД устанавливается схема для данного ПО.


Шаг 2 - Конфигуратор.

Основная информация о настройки eGroupWare. Если планируется использовать LDAP - правильно указывайте ветку с пользователями.

Заметки на манжетке: Поддержка LDAP в eGroupWare довольно ограничена и настраивается... нетривиально. Если вы только начинаете знакомство с этой системой, лучше использовать в качестве хранилища SQL. Тем более, что потом можно вернуться и поэкспериментировать. Например, интегрировать eGroupWare с доменом Centaurus.

Шаг 3 - Учетная запись администратора.

Кто тут главный? если было указано что используется ldap - то на этом шаге будет создан пользователь. При некотором умении можно обойтись уже существующими пользователями из каталога.

Заметки на манжетке: Помните, что имена пользователей и групп нужно указывать без пробелов только латиницей и цифрами (можете попробовать добавить точку, подчеркивание и дефис, но не более)! Иначе вы рискуете получить множество неочевидных глюков. Особенно в модуле filemanager, потому что каждой учетной записи и каждой группе ставится в соответствие одноименная папка в виртуальной файловой системе и эти названия используются в uri.

Шаг 4 - Управление Переводами.

Поддержка языков. Если не планируете использовать английский в интерфейсе (или англоязычные версии вики/CMS), не устанавливайте его. Тем более, что всегда можно вернуться и доустановить.

Шаг 5 - Расширенное Управление Приложениями.

На этом шаге позволяется установить модули в вашу систему eGroupWare. Для начала, поставьте всё. Ненужное можно отключить в системе, спрятать из меню или запретить доступ.

Заметки на манжетке: Забегая вперед, хотелось бы поподробнее рассказать про права доступа и категории. Это может сэкономить много нервов в дальнейшем.

  1. В egw действует правило "что не разрешено, то запрещено". При этом явно можно указать только разрешения. Т.е. нельзя создать группу изгоев, которым "нельзя ни то, ни это" и добавлять туда неугодных. Если пользователь входит в несколько групп и какой-то из них что-то разрешено, значит ему это разрешено.
  2. Разрешения настраиваются для каждого модуля отдельно. По-умолчанию, запрещено всё. Т.е. вообще всё, даже модуль "Домой"!
  3. Для некоторых модулей (адресная книга, календарь, вики, filemanager,...), после выставления общего разрешения и сохранения изменений, справа от галочки становится доступным значок тонкой настройки прав доступа (ACL - access control list).
    Egw acl.png
  4. Для неавторизованных пользователей (для просмотра сайта, вики, базы знаний, новостей и т.п.) предусмотрены специальная учетная запись anonymous и группа NoGroup.
  5. Группы в egw нужны не только для того, чтобы добавлять в них пользователей системы. Каждая группа - это одноименная групповая адресная книга, и календарь, и папка в filemanager и прочее в том же духе. А значит, можно создавать группы, которые не содержат активных учетных записей и предназначены для работы с ними пользователей из других групп. Например, можно создать группы "PotentialClients", "Clients", "VIPClients" и сделать их доступными для групп "TopManagers" и "Managers". Не забываем, что названия групп нужно указывать только латиницей.
  6. К адресным книгам (в т.ч. к групповым) можно привязывать шаблоны документов (txt,rtf), в которых используется соотв информация. Позволяет сделать отдельный документ и/или циркулярную рассылку. Удобно для организации почтовой рассылки или чего-то в этом роде. Главная проблема: txt - никакой в смысле оформления, а в rtf не ASCII-текст отображается кракозяблами (надо фиксить на предмет конвертации unicode-строк в вид \u1234 при обработке rtf). Небольшой грязный хак позволяет выключить поддержку rtf и txt, но взамен дает возможность генерить html-документы (в т.ч. циркулярные, с разбивкой на страницы). Также есть намерения, попробовать привязать возможности pERP работать с odt-шаблонами (через висящий по фону OpenOffice.org, что добавляет накладных расходов, но зато снимает вопросы по быстрому созданию и корректной обработке шаблонов).
  1. Категории бывают:
    • общесистемные, распространяющиеся на все модули системы и
    • относящиеся к конкретному модулю, которые достраивают общесистемное дерево категорий, отдельно для каждого модуля.
  2. Отличие групп от категорий в возможности проставить разрешения на доступ к групповым данным. Например, чтобы скрыть от непосвященных вип-контакты или сделать доступ только для чтения, без создания отдельной группы не обойтись.
  3. Зато в категориях можно использовать кириллицу. :)

Шаг 6 - Сохранение и восстановление БД.

Про бекапы и восстановления. Не забудьте нажать кнопку "Запланировать", для занесения задания в cron.

To be continued…