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

Материал из ALT Linux Wiki
Строка 8: Строка 8:


=== Установка (консольная фаза) ===
=== Установка (консольная фаза) ===
Для работы eGroupWare нам понадобится Apache+PHP+PostgreSQL, и Pear-модуль Auth_SASL. Желающие могут выбрать MySQL, но сразу учтите, что полная установка eGroupWare добавляет в базу больше 130 таблиц, что может не лучшим образом сказаться на производительности MySQL.
Для работы eGroupWare нам понадобится Apache+PHP+PostgreSQL, и Pear-модуль Auth_SASL.


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


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


==== Тюнинг PHP ====
Доставляем Pear-модуль:
Доставляем Pear-модуль:
  #pear install Auth_SASL
  # pear install Auth_SASL
 
Ослабляем политики по умолчанию для модуля apache2-php5
Ослабляем политики по умолчанию для модуля apache2-php5
  #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}} добавляем строки:
  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"
и повторяем:
# control apache2-mod_php5 relaxed
* или то же самое в {{path|/etc/php/5.2.5/apache2-mod_php/php.d/suhosin.ini}}
* или (наилучший путь, если есть другие сайты на этом же сервере) в {{path|/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
  ...
</Directory>


в /etc/control.d/facilities/apache2-mod_php5 и повторяем:
В любом случае, не забываем делать:
  #control apache2-mod_php5 relaxed; service httpd2 reload
  # service httpd2 reload


Возможно и этого окажется мало и нужно будет дать апачу права на языковые файлы:
Возможно и этого окажется мало и нужно будет дать апачу права на языковые файлы:
  #find /usr/share/egroupware/ -type f -name *.lang -exec chown apache2.apache2 {} \;
  # find /usr/share/egroupware/ -type f -name *.lang -exec chown apache2.apache2 {} \;
 


==== 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
  #chkconfig postgresql on
  # chkconfig postgresql on
  #service postgresql start
  # service postgresql start
Добавляем пользователя '''egroupware''' и одноименную базу в PostgreSQL.
Добавляем пользователя '''egroupware''' и одноимённую базу в PostgreSQL.
  #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.


Строка 78: Строка 98:
  host    egroupware  egroupware  192.168.0.0/24        password
  host    egroupware  egroupware  192.168.0.0/24        password


Устанавливаем собственно eGroupWare. Если пакеты не найдены, потребуется найти и подключить репозиторий, содержащий их.
==== Устанавливаем собственно eGroupWare ====
  #apt-get install eGroupWare-* -y
Если пакеты не найдены, потребуется найти и подключить репозиторий, содержащий их.
  # apt-get install eGroupWare-* -y


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

Версия от 09:27, 26 февраля 2009

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

Об этом документе

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

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

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

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

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

PostgreSQL vs MySQL

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

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

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-php5

# 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"

и повторяем:

# 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
 ...
</Directory>

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

# service httpd2 reload

Возможно и этого окажется мало и нужно будет дать апачу права на языковые файлы:

# find /usr/share/egroupware/ -type f -name *.lang -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

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

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

# apt-get install eGroupWare-* -y

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

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

По умолчанию дальнейшая установка происходит по адресу: http://my_domain/egroupware/setup/ Для быстрого перехода можно набрать только http://my_domain/e

Умолчания можно изменять в настройках 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'].


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

To be continue…