Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Глава 20. Опциональные компоненты, устанавливаемые с веб-сервером Apache

В этой главе я буду говорить о трех полезных внешних программах, которые можно инсталлировать на Linux-сервер. Эти программы созданы для использования с веб-сервером Apache и полезны, если Вы планируете использовать Apache в Вашей организации. Если это не так, то Вы можете пропустить эту главу и затем продолжить чтение этой книги. Вначале мы будем говорить о Webalizer, который предназначен для анализа файлов регистрации веб-сервера. Затем мы обсудим FAQ-O-Matic, который может быть использован для создания списков FAQ, базы данных отслеживания ошибок, документации и много другого на сервере. В заключение, мы будем говорить об очень тонкой интересной программе, называемой Webmail, которая позволит предлагать Вашим клиентам почтовые логины, или доступ и чтение почты безопасным способом.

Webalizer

Краткий обзор

Веб-сервер Apache регистрирует всю предписанную информацию в тесктовый файл, который может быть просмотрен и проанализирован веб-администратором. Этот файл также может быть обработан специальной программой, которая создает отчеты в виде графических представлений.

Как написано в файле README Webalizer:

Webalizer это программа для анализа файлов регистрации веб-сервера, которая создает отчеты в HTML-формате для просмотра в браузере. Результаты представляются в виде таблиц и графиков, которые облегчают интерпретацию полученной информации. Программа наряду с ежегодной, ежемесячной, ежедневной и почасовой статистикой использования, отображает информацию об использовании сайта, URL, referrer, пользовательских агентах (браузерах) и странах (пользовательские агенты и referrer доступны только при использовании комбинированного формата файлов регистрации).

Эти инструкции предполагают.
Unix-совместимые команды.
Путь к исходным кодам /var/tmp (возможны другие варианты).
Инсталляция была проверена на Red Hat Linux 6.1 и 6.2.
Все шаги инсталляции осуществляются суперпользователем root.
Webalizer версии 1_30-04.

Пакеты.
Домашняя страница Webalizer: http://www.mrunix.net/webalizer,
FTP-сервер Webalizer: 207.153.121.6,
Вы должны скачать: webalizer-1_30-04-src.tgz.

Раскройте архив:

[root@deep /]# cp webalizer-version-src.tgz /var/tmp
[root@deep /]# cd /var/tmp
[root@deep tmp]# tar xzpf webalizer-version-src.tgz

Предварительные требования.

Webalizer требует наличия графической библиотеки GD, которая требуется для генерации встроенных графиков Webalizer. Если это не так, вы должны инсталлировать ее с Вашего Red Hat Linux CD-ROM. Для проверки наличия установленной библиотеки GD используйте следующую команду:

[root@deep /]# rpm -qi gd
package gd is not installed

Для инсталляции пакета GD на Linux-системе используйте команду:

[root@deep /]# mount /dev/cdrom /mnt/cdrom/
[root@deep /]# cd /mnt/cdrom/RedHat/RPMS/
[root@deep RPMS]# rpm -Uvh gd-version.i386.rpm
gd         ##################################################
[root@deep RPMS]# rpm -Uvh gd-devel-version.i386.rpm
gd-devel   ##################################################
[root@deep RPMS]# cd /; umount /mnt/cdrom

Веб-сервер должен быть уже установлен на Вашей системе.

Замечание. Для большей информации о веб -ервере Apache читайте соответствующую главу этой книги.

Компиляция

Переместитесь в новый каталог Webalizer и введите следующие команды на Вашем терминале:

CC="egcs"
CFLAGS="-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro \
        -march=pentiumpro -fomit-frame-pointer -fno-exceptions"
./configure --prefix=/usr
[root@deep webalizer-1.30-04]# make
[root@deep webalizer-1.30-04]# make install
[root@deep webalizer-1.30-04]# mkdir /home/httpd/usage

Команда make будет компилировать все файлы с исходными кодами в двоичные исполняемые файлы, команда make install проинсталлирует все двоичные и сопутствующие им файлы в требуемые места. Команда mkdir создаст новый подкаталог usage в каталоге /home/httpd, где мы будем размещать все связанные с Webalizer файлы.

Очистка после работы.
[root@deep /]# cd /var/tmp
[root@deep tmp]# rm -rf webalizer-version/ webalizer-version-src.tgz

Команда rm будет удалять все файлы с исходными кодами, которые мы использовали при компиляции и инсталляции Webalizer. Также будет удален сжатый архив Webalizer.

Конфигурации

Все программное обеспечение, описанное в книге, имеет определенный каталог и подкаталог в архиве floppy.tgz, включающем все конфигурационные файлы для всех программ. Если Вы скачаете этот файл, то Вам не нужно будет вручную воспроизводить файлы из книги, чтобы создать свои файлы конфигурации. Скопируйте файлы, связанные с Webalizer, из архива, измените их под свои требования и поместите в нужное место так, как это описано ниже. Файл с конфигурациями Вы можете скачать с адреса: http://www.openna.com/books/floppy.tgz.

Для запуска Webalizer должен быть создан, либо скопирован следующий файл: Копируйте webalizer.conf в каталог /etc.

Вы можете взять этот файл из архива floppy.tgz.

Конфигурация файла /etc/webalizer.conf

Файл /etc/webalizer.conf является конфигурационным файлом по умолчанию для Webalizer. С его помощью Вы можете определить, какие каталоги или страницы на Вашем веб-сервере анализировать, какие URL скрывать и пр. По умолчанию программа Webalizer будет инсталлировать простой конфигурационный файл с именем webalizer.conf.sample в каталог /etc. Вы можете использовать его, переименовав в webalizer.conf, чтобы Webalizer мог найти его и использовать. В этом файле можно использовать много разных опций, поэтому важно прочитать документацию, поставляемую с Webalizer, чтобы получить больше информации о различных установках и параметрах. Ниже мы прокомментируем наиболее важные и часто используемые параметры. Редактируйте файл webalizer.conf.sample (vi /etc/webalizer.conf.sample) или создайте файл webalizer.conf (touch /etc/webalizer.conf) и добавьте/измените следующее:

LogFile /var/log/httpd/access_log
OutputDir /home/httpd/usage
Incremental yes
PageType htm*
PageType cgi
PageType php
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.ra
IgnoreURL /taskbar*

Эти опции говорят webalizer следующее:

LogFile /var/log/httpd/access_log
Опция LogFile определяет файл регистрации, обрабатываемый Webalizer. По умолчанию он подразумевает файл access_log от веб-сервера Apache, но Вы можете определить другой, например, файл access.log от прокси-сервера Squid, используемого в режиме httpd-акселератора. Смотрите главу 18, "Программное обеспечение прокси-сервера" для получения большей информации.

OutputDir /home/httpd/usage
Опция OutputDir определяет месторасположение выходного каталога, используемого для хранения отчетов Webalizer. Рекомендуется, чтобы Вы создали этот каталог там, где располагается Ваш веб-сервер Apache.

Incremental yes
Опция Incremental, если установлена в Yes, говорит программе обрабатывать часть файла регистрации, и позволит Вам ротировать Ваши файлы регистраций так много раз, как Вам надо без потери информации о доступе к серверу. Рекомендуется установить эту опцию в Yes.

PageType htm* cgi php
Опция PageType определяет, файлы с какими расширениями Webalizer обрабатывает как страницы. Каждое добавление нового расширения должно быть в отдельной строке, как это показано в конфигурационном файле.

HideURL *.gif *.GIF *.jpg *.JPG *.ra
Опция HideURL определяет, какие элементы (графические файлы, аудиофайлы и другие не html-файлы) скрываются в отчетах. Каждый добавляемый элемент должен быть в отдельной строке, как это показано в конфигурационном файле.

IgnoreURL /taskbar*
Опция IgnoreURL определяет URL, которые полностью игнорируются в создаваемых отчетах. Эта опция может быть использована для игнорирования каталогов, которые не важны для Ваших отчетов. Она также полезна, когда Вы хотите определять, какие URL должны быть обработаны, а какие нет.

ЗАМЕЧАНИЕ. Если Вы решили использовать существующий файл /etc/webalizer.conf.sample для настройки Ваших параметров для Webalizer, не забедьте переименовать его в webalizer.conf, или программа не найдет его.

Информирование Apache о выходном каталоге Webalizer

Сейчас, когда Webalizer инсталлирован на Вашей системе, мы должны добавить следующие строки в файл httpd.conf.

Шаг 1.

Редактируйте файл httpd.conf (vi /etc/httpd/conf/httpd.conf) и добавьте следующие строки между тэгами секции <IfModule mod_alias.c> и </IfModule>:

Alias /usage/ "/home/httpd/usage/"
<Directory "/home/httpd/usage">
  Options None
  AllowOverride None
  Order deny,allow
  Deny from all
  Allow from 192.168.1.0/24
</Directory>

Шаг 2.

Не забудьте перезагрузить Ваш веб-сервер, чтобы изменения, внесенные в файл httpd.conf, вступили в силу:

[root@deep /]# /etc/rc.d/init.d/httpd restart
Shutting down http:               [ OK ]
Starting httpd:                   [ OK ]

Запус Webalizer вручную в первый раз

Сейчас наступило время запустить программу генерирующую отчеты (html) и графики в выходном каталоге Webalizer так, чтобы мы могли увидеть их в окне браузера. Этот шаг требуется только при первом запуске после инсталляции, так как в будущем это будет делать cron.

Для запуска Webalizer вручную, используйте команду

[root@deep /]# /usr/bin/webalizer
Webalizer V1.30-04 (Linux 2.2.14) English
Using logfile /var/log/httpd/access_log
Creating output in /home/httpd/usage
Hostname for reports is 'deep.openna.com'
History file not found...
Previous run data not found...
Saving current run data... [03/06/2000 04:42:03]
Generating report for March 2000
Generating summary report
Saving history information...
81 records (2 ignored) in 0.31 seconds

На этой стадии мы должны проверить, что Webalizer работает корректно. Чтобы сделать это наберите в окне браузера следующий адрес: http://my-web-server/usage. Здесь my-web-server это адрес Вашего веб-сервера, а /usage это каталог, в котором располагаются отчеты Webalizer.

Запуск Webalizer автоматически при помощи cron

Последнее, что Вы должны сделать, это автоматизировать задачу генерации отчетов программой Webalizer. Поместите соответствующий элемент в crontab пользователя root, чтобы сделать запуск Webalizer работой cron. Для этого Вы должны редактировать Ваш файл crontab и добавить в него строку, запускающую Webalizer, например, каждые 28 минут:

[root@deep /]# crontab -e
# Run Webalizer to update Apache Log files every 28 minutes.
28 * * * * /usr/bin/webalizer

Инсталлированные файлы

> /etc/webalizer.conf.sample
> /usr/bin/webalizer
> /usr/man/man1/webalizer.1

Linux FAQ-O-Matic

Краткий обзор

Как написано на веб-сервере Faq-O-Matic:

Архивы списков рассылки это очень хорошо, потому что позволяют внимательным людям с Часто Задаваемыми Вопросами найти на них немедленно ответы, не беспокоя при этом других людей. К сожалению, ответы в списках рассылки через некоторое время устаревают, дезорганизованы и приходится интенсивно поработать, чтобы отсеять их от разного мусора. Список Часто Задаваемых Вопросов (FAQ) лучше, потому, что даже ленивые люди могут легко находить в них ответы. К сожалению, поддержка списка FAQ требует усилий: если им не заниматься, то информация в нем устаревает. Faq-O-Matic это система, базирующаяся на CGI, автоматизирующая процесс поддержки FAQ (списка Часто Задаваемых Вопросов). Она позволяет пользователям Вашего FAQ принимать участие в его формировании. Система разрешений также делает FAQ-O-Matic полезным как приложение "справочный стол", база отслеживания ошибок и документационная система.

Эти инструкции предполагают.
Unix-совместимые команды.
Путь к исходным кодам /var/tmp (возможны другие варианты).
Инсталляция была проверена на Red Hat Linux 6.1 и 6.2.
Все шаги инсталляции осуществляются суперпользователем root.
FAQ-O-Matic версии 2.709.

Пакеты.
Домашняя страница FAQ-O-Matic: http://www.dartmouth.edu/~jonh/ff-serve/cache/1.html,
Наиболее свежая версия FAQ-O-Matic всегда доступна с ftp://ftp.cs.dartmouth.edu/pub/jonh,
Вы должны скачать: FAQ-OMatic-2.709.tar.gz.

Предварительные требования

  1. Веб-сервер должен быть уже установлен до начала использования FAQ-O-Matic.
  2. Система контроля версий (RCS) должна быть также уже установлена до использования FAQ-O-Matic.

Чтобы проверить, установлен ли пакет RCS на Вашей системе используйте команду:

[root@deep /]# rpm -qi rcs
package rcs is not installed

Для инсталляции RCS используйте следующую команду:

[root@deep /]# mount /dev/cdrom /mnt/cdrom/
[root@deep /]# cd /mnt/cdrom/RedHat/RPMS/
[root@deep RPMS]# rpm -Uvh rcs-version.i386.rpm
rcs    ##################################################
[root@deep RPMS]# cd /; umount /mnt/cdrom

Раскройте архив:

[root@deep /]# cp FAQ-O-Matic-version.tar.gz /var/tmp
[root@deep /]# cd /var/tmp
[root@deep tmp]# tar xzpf FAQ-O-Matic-version.tar.gz

Компиляция

Для инсталляции программы Faq-O-Matic на Вашем компьютере переместитесь в каталог FAQ-O-Matic и введите следующие команды:

[root@deep FAQ-OMatic-2.709]# perl Makefile.PL
[root@deep FAQ-OMatic-2.709]# make
[root@deep FAQ-OMatic-2.709]# make install
[root@deep FAQ-OMatic-2.709]# mv fom /home/httpd/cgi-bin
           (или туда, где находится Ваш CGI).
[root@deep FAQ-OMatic-2.709]# mkdir -p /home/httpd/cgi-bin/fom-meta
[root@deep FAQ-OMatic-2.709]# mkdir -p /home/httpd/faqomatic
[root@deep FAQ-OMatic-2.709]# chown root.www /home/httpd/cgi-bin/fom
[root@deep FAQ-OMatic-2.709]# chown -R www.www /home/httpd/cgi-bin/fom-meta
[root@deep FAQ-OMatic-2.709]# chown -R www.www /home/httpd/faqomatic

Команда make компилирует все файлы с исходными кодами в исполняемые двоичные, команда make install будет инсталлировать Perl-программы и сопутствующие им файлы в нужные каталоги. Команда mv переместит CGI-программу fom в каталог cgi-bin Вашего веб-сервера. mkdir создаст новые подкаталоги fom-meta и faqomatic в каталоге /home/httpd, где будут храниться все связанные с FAQ-O-Matic файлы. В заключение, команда chown установит владельца CGI-программы fom: пользователя root и группу, под которой запускается веб-сервер www, и устанавливает владельца и группу www на каталоги fom-meta и faqomatic.

ЗАМЕЧАНИЕ. Вы получите временный пароль по электронной почте во время компиляции программы. Этот пароль будет нужен для окончания процесса инсталляции Faq-O-Matic через веб-интерфейс.

Информирование Apache о месторасположении файлов Faq-O-Matic

После инсталляции Faq-O-Matic, мы должны добавить следующие строки в файл httpd.conf.

Шаг 1.

Редактируйте файлы httpd.conf (vi /etc/httpd/conf/httpd.conf) и добавьте следующие строки между тэгами секции <IfModule mod_alias.c> и </IfModule>:

Alias /faqomatic/ "/home/httpd/faqomatic"
<Directory "/home/httpd/faqomatic">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

Alias /bags/ "/home/httpd/faqomatic/bags/"
<Directory "/home/httpd/faqomatic/bags">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

Alias /cache/ "/home/httpd/faqomatic/cache/"
<Directory "/home/httpd/faqomatic/cache">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

Alias /item/ "/home/httpd/faqomatic/item/"
<Directory "/home/httpd/faqomatic/item">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

Шаг 2.

Не забудьте перезапустить веб-сервер Apache, чтобы внесенные изменения вступили в силу:

[root@deep /]# /etc/rc.d/init.d/httpd restart
Shutting down http:                [ OK ]
Starting httpd:                    [ OK ]

Конфигурирование FAQ-O-Matic

Окончание инсталляции будет осуществляться через Ваш веб-браузер. Выполните следующие шаги в Вашем Netscape Communicator:

Шаг 1.

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

  1. Введите в окне браузера следующий адрес: http://my-web-server/cgi-bin/fom
  2. Введите Ваш временный пароль
  3. В первую очередь создайте каталог /home/httpd/cgi-bin/fom-meta
  4. Настройте Define configuration parameters в основном конфигурационном меню

Например, в секции Mandatory введите следующую команду:

$adminAuth=admin@openna.com
$serverBase=http://www.openna.com
$cgiURL=/cgi-bin/fom
$serveDir=/home/httpd/faqomatic
$serveURL=/faqomatic

Настройте Define configuration parameters как Вам нужно. После окончания установки всех параметров нажмите на кнопку Define для подтверждения выбора.

ЗАМЕЧАНИЕ. my-web-server это адрес Вашего веб сервера Apache, а временный пароль должен быть Вам прислан по электронной почте во время компиляции.

Шаг 2.

После окончания конфигурирования Define configuration parameters, Вы должны закончить настройку остальной части FAQ-O-Matic, чтобы иметь возможность использовать его так, как описано в главном меню.

Очистка после работы.

[root@deep /]# cd /var/tmp
[root@deep tmp]# rm -rf FAQ-OMatic-version/ FAQ-O-Matic-version.tar.gz

Команда rm будет удалять все файлы с исходными кодами, которые мы использовали при компиляции и инсталляции FAQ-O-Matic. Также будет удален сжатый архив FAQ-O-Matic.

Инсталлированные файлы

> /usr/lib/perl5/man/man3/FAQ::OMatic::API.3
> /usr/lib/perl5/site_perl/5.005/i386-linux/auto/FAQ
> /usr/lib/perl5/site_perl/5.005/i386-linux/auto/FAQ/OMatic
> /usr/lib/perl5/site_perl/5.005/i386-linux/auto/FAQ/OMatic/.packlist
> /usr/lib/perl5/site_perl/5.005/FAQ
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Bags.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/authenticate.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/ImageRef.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Groups.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitGroup.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/recent.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitItem.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/maintenance.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Language_de_iso8859_1.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Slow.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/help.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/selectBag.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitPart.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/delPart.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/buildSearchDB.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/mirrorServer.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/editItem.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/search.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/SearchMod.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/addItem.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Versions.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/displaySlow.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Language_fr.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/img.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/editPart.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/AuthLocal.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/ColorPicker.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/ImageData.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/changePass.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitBag.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitModOptions.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/I18N.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Log.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/appearanceForm.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/moveItem.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/editGroups.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/HelpMod.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/searchForm.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitPass.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitMove.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Set.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/statgraph.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/stats.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Item.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Words.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Appearance.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/dispatch.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/editBag.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitCatToAns.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/submitAnsToCat.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/editModOptions.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Auth.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/install.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/Part.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/faq.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic/API.pm
> /usr/lib/perl5/site_perl/5.005/FAQ/OMatic.pm

Linux Webmail IMP

Краткий обзор

Webmail IMP дает универсальный, базирующийся на веб, доступ к IMAP/POP3 серверам и предоставляет адресную книгу, поиск по каталогу LDAP, полную поддержку приема и отправки прикрепленных файлов и много других возможностей, которые могут быть найдены в стандартных почтовых клиентах. Если Вы инсталлировали Apache с поддержкой SSL, то клиенты смогут получить доступ и читать почту в безопасном режиме, используя SSL-шифрование. По умолчанию в этой секции мы будем настраивать Webmail IMP на использование базы данных PostgreSQL и IMAP-соединений. Кроме того, Webmail IMP позволяет работать с другими базами данных. Если Вам нужно, Вы можете использовать MySQL, Oracle, Sybase или другие хорошо известные базы данных SQL. Вы также можете выбрать использование POP3-соединения вместо IMAP для Ваших клиентов.

Эти инструкции предполагают.
Unix-совместимые команды.
Путь к исходным кодам /var/tmp (возможны другие варианты).
Инсталляция была проверена на Red Hat Linux 6.1 и 6.2.
Все шаги инсталляции осуществляются суперпользователем root.
Horde версии 1.2.0.
Webmail IMP версии 2.2.0.
PHPLib версии 7.2b.

Пакеты.
Домашняя страница Webmail IMP: http://www.horde.org/imp,
Вы должны скачать: horde-1.2.0-pre11.tar.gz,
Вы должны скачать: imp-2.2.0-pre11.tar.gz,
Домашняя страница PHPLib: http://phplib.netuse.de/index.php3,
Вы должны скачать: phplib-7.2b.tar.gz.

Предварительные требования.

  1. До использования Webmail IMP у Вас должен быть установлен веб-сервер Apache.
  2. До использования Webmail IMP у Вас должен быть установлен PHP4.
  3. Postgresql или другой сервер баз данных должен быть установлен, если Вы планируете использовать Webmail IMP с поддержкой SQL.
  4. OpenLDAP должен быть установлен, если Вы планируете использовать Webmail IMP с поддержкой LDAP.
  5. До использования Webmail IMP у Вас должен быть установлен сервер IMAP/POP.
  6. До использования Webmail IMP у Вас должны быть установлены файлы PHPLIB 7.2 или выше.

Установка PHPLib, которая требуется программе Horde из Webmail IMP

Для того, чтобы запустить Webmail IMP на Вашем сервере, Вам надо установить PHPLib (инструментальное средство разработки веб-приложений для PHP-разработчиков). Для инсталляции PHPLib выполните следующие шаги.

Пакеты.
Домашняя страница: http://phplib.netuse.de/index.php3,
Вы должны скачать: phplib-7.2b.tar.gz.

[root@deep /]# cp phplib-7.2b.tar.gz /home/httpd
[root@deep /]# cd /home/httpd
[root@deep httpd]# tar xzpf phplib-7.2b.tar.gz

Шаг 1.

Перейдите в DocumentRoot Вашего веб-сервера и создайте каталог /home/httpd/php:

[root@deep /]# cd /home/httpd
[root@deep httpd]# mkdir php

Шаг 2.

Копируйте содержимое каталога php дистрибутива PHPLib в каталог php, который Вы создали в Вашем DocumentRoot:

[root@deep /]# cd /home/httpd/phplib-7.2b/php
[root@deep php]# cp * /home/httpd/php
[root@deep php]# cd /home/httpd
[root@deep httpd]# rm -f phplib-7.2b.tar.gz
[root@deep httpd]# rm -rf phplib-7.2b

ЗАМЕЧАНИЕ. Мы удалили tar-архив и каталог phplib-version после завершения копирования каталога php.

Компиляция

Для инсталляции программы Webmail IMP на сервере выполните следующие шаги.

Шаг 1.

Копируйте horde-1.2.0-pre11.tar.gz в DocumentRoot (/home/httpd), раскройте его и переименуйте каталог horde-version в horde, выполнив следующие команды:

[root@deep /]# cp horde-version.tar.gz /home/httpd
[root@deep /]# cd /home/httpd
[root@deep httpd]# tar xzpf horde-version.tar.gz
[root@deep httpd]# mv horde-version horde
[root@deep httpd]# rm -f horde-version.tar.gz

ЗАМЕЧАНИЕ. Мы удалили tar-архив, содержащий Horde, после переименования каталога horde-version в horde.

Шаг 2.

Копируйте imp-2.2.0-pre11.tar.gz в Ваш каталог horde (/home/httpd/horde), раскройте его и переименуйте каталог imp-version в imp:

[root@deep /]# cp imp-version.tar.gz /home/httpd/horde
[root@deep /]# cd /home/httpd/horde
[root@deep horde]# tar xzpf imp-version.tar.gz
[root@deep horde]# mv imp-version imp
[root@deep horde]# rm -f imp-version.tar.gz

ЗАМЕЧАНИЕ. Важно, чтобы каталог imp находился в каталоге horde, иначе Webmail не будет работать. После переименования каталога imp-version в imp мы удалили архив, содержащий IMP Webmail.

Шаг 3.

Измените владельца каталога horde и всех его подкаталогов и файлов на root из соображений безопасности:

[root@deep /]# chown -R 0.0 /home/httpd/horde

Шаг 4.

Копируйте файлы /home/httpd/horde/phplib/*.ihtml в новый каталог php (/home/httpd/php), выполнив следующую команду:

[root@deep /]# cp /home/httpd/horde/phplib/*.ihtml /home/httpd/php

Настройка и создание SQL базы данных Webmail IMP

Мы сейчас должны сконфигурировать нашу базу данных на работу с Webmail IMP. Самый простой способ для этого: использовать предопределенные скрипты, расположенные в подкаталоге /home/httpd/horde/imp/config/scripts. Для PostgreSQL выполните следующие шаги.

Шаг 1.

Первое, Вы должны редактировать скрипт pgsql_create.sql, связанный с PostgreSQL и расположенный в подкаталоге /home/httpd/horde/imp/config/scripts. Измените в нем принятое по умолчанию значение имени пользователя, от которого запускается httpd на www. Редактируйте файл pgsql_create.sql (vi /home/httpd/horde/imp/config/scripts/pgsql_create.sql) и измените строку:
GRANT SELECT, INSERT, UPDATE ON imp_pref, imp_addr TO nobody;
на:
GRANT SELECT, INSERT, UPDATE ON imp_pref, imp_addr TO www;

Шаг 2.

Сейчас мы должны определить пользователя для Apache (www) в Вашей базе данных PostgreSQL, чтобы можно было создавать базы данных Webmail IMP этим пользователем. Для определения пользователя www в Вашей базе данных, запустите утилиту createuser из PostgreSQL:

[root@deep /]# su postgres
[postgres@deep /]$ createuser
Enter name of user to add ---> www
Enter user's postgres ID or RETURN to use unix user ID: 80 -> [Press Enter]
Is user "www" allowed to create databases (y/n) y
Is user "www" a superuser? (y/n) n
createuser: www was successfully added

Шаг 3.

После того, как пользователь www включен в базу данных PostgreSQL, подключитесь к PostgreSQL (в нашем случае как postgres) и запустите небольшой скрипт, который автоматически создаст Webmail IMP базу данных в PostgreSQL:

[root@deep /]# cd /home/httpd/horde/imp/config/scripts
[root@deep scripts]# su postgres
[postgres@deep scripts]$ psql template1 < pgsql_create.sql
// IMP database creation script for postgreSQL
// Author: barce@lines.edu
// Date: Aug-29-1998
// Notes: replace "nobody" with yours httpd username
// Run using: psql template1 < pgsql_create.sql

CREATE DATABASE horde;
CREATEDB

\connect horde
connecting to new database: horde

CREATE TABLE imp_pref (
username       text,
sig            text,
fullname       text,
replyto        text,
lang           varchar(30)
);
CREATE

CREATE TABLE imp_addr (
username     text,
address      text,
nickname     text,
fullname     text
);
CREATE

GRANT SELECT, INSERT, UPDATE ON imp_pref, imp_addr TO www;
CHANGE
EOF

Шаг 4.

Мы должны перезагрузить сервер PostgreSQL, чтобы изменения вступили в силу:

[root@deep /]# /etc/rc.d/init.d/postgresql restart
Stopping postgresql service:      [ OK ]
Checking postgresql installation: looks good!
Starting postgresql service: postmaster [13474]

Шаг 5.

Копируйте и переименуйте файл /home/httpd/horde/phplib/horde_phplib.inc в /home/httpd/php/local.inc, затем редактируйте новый local.inc, который является конфигурационным файлом phplib, содержащим установки, определяющие поведение phplib.

[root@deep /]# cp /home/httpd/horde/phplib/horde_phplib.inc
/home/httpd/php/local.inc
cp: overwrite `/home/httpd/php/local.inc'? y

Редактируйте файл local.inc (vi /home/httpd/php/local.inc), раскомментируйте и установите следующие строки для определения SQL как Вашей базы данных по умолчанию:

/* Для использования базы данных SQL
   раскомментируйте и редактируйте следующее: */
class HordeDB extends DB_Sql
{
   var $Host = 'localhost';
   var $Database = 'horde';
   var $User = 'www';
   var $Password = 'some-password';
   var $Port = '5432';
   function halt($msg)
   {
     printf("<b>Database error (HordeDB):</b> %s<br>\n", $msg);
   }
}
class HordeCT extends CT_Sql
{
   var $database_class = 'HordeDB';
   // Какой класс базы данных использовать.
   var $database_table = 'active_sessions';
   // и находить наши данные в таблице.
}

ЗАМЕЧАНИЕ. Не забудьте раскомментировать в этом файле тип контейнера для хранения информации, который Вы хотите использовать в Webmail IMP. Помните, надо раскомментировать только один тип. В нашем случае мы выбрали SQL базу данных var $User=, var $Password= и var $Port=. var $User= соответствует Вашему httpd-пользователю (у нас www), var $Password= соответствует паролю для пользователя www, определенного в PostgreSQL, и var $Port= это номер порта, используемого для соединения с базой данных SQL.

Шаг 6.

В заключение, отредактируйте файл /home/httpd/php/prepend.php3 и определите тип Вашей базы данных. Редактируйте файл prepend.php3 (vi /home/httpd/php/prepend.php3) и измените в нем следующие строки для определения PostgreSQL как типа Вашей базы данных:
require($_PHPLIB["libdir"] . "db_mysql.inc");
на:
require($_PHPLIB["libdir"] . "db_pgsql.inc");

Настройка конфигурационного файла php.ini для PHP4

Еще Вам надо настроить конфигурационный файл PHP4 /etc/httpd/php.ini. Изменения, вносимые в него, зависят от того, какие возможности (такие, как IMAP, PostgreSQL и др.) должны загружаться автоматически PHP4. Так как мы решили использовать PostgreSQL для хранения информации и IMAP возможности Webmail, мы должны определить их в файле php.ini.

Шаг 1.

Редактируйте файл php.ini (vi /etc/httpd/php.ini) и добавьте в секции Dynamic Extensions необходимые библиотеки. В нашем случае, как Вы видите, мы выбрали поддержку IMAP и PostgreSQL:

extension=imap.so ; Добавляет поддержку для IMAP
extension=pgsql.so ; Добавляет поддержку для PostgreSql
extension=mysql.so ; Добавляет поддержку для MySql
extension=ldap.so ; Добавляет поддержку для LDAP

Шаг 2.

Вы должны указать php, где ему искать включаемые файлы, когда они не имеют абсолютных путей, автоматическое прибавление содержимого файла prepend.php3 к каждому файлу и отключение magic quotes. Редактируйте файл php.ini (vi /etc/httpd/php.ini) и добавьте следующие параметры:

magic_quotes_gpc = Off
auto_prepend_file = "/home/httpd/php/prepend.php3"
include_path = "/home/httpd/horde:/home/httpd/php"

Настройка Apache на работу с Webmail IMP

После инсталляции Webmail IMP на Вашей системе, мы должны добавить следующие строки в файл httpd.conf, чтобы иметь возможность находить и использовать его возможности.

Шаг 1.

Редактируйте файл httpd.conf (vi /etc/httpd/conf/httpd.conf) и добавьте следующие строки между тэгами секции <IfModule mod_alias.c> и </IfModule>:

Alias /horde/ "/home/httpd/horde"
<Directory "/home/httpd/horde">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

Alias /imp/ "/home/httpd/horde/imp/"
<Directory "/home/httpd/horde/imp">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

Шаг 2.

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

[root@deep /]# /etc/rc.d/init.d/httpd restart
Shutting down http:          [ OK ]
Starting httpd:              [ OK ]

Настройка Webmail IMP через Ваш веб-браузер

Существует несколько путей для настройки Webmail IMP, и один из них, который мы выбрали, новый механизм настройки, называемый setup.php3, который дает возможность настраивать IMP через веб-браузер.

Шаг 1.

Из соображений безопасности, эта возможность отключена по умолчанию, но мы можем ее включить следующими командами:

[root@deep /]# cd /home/httpd/horde
[root@deep horde]# sh ./install.sh

Your blank configuration files have been created, please go to
the configuration utitlity at:

your install path url/setup.php3

Шаг 2.

После того как новый механизм настройки Webmail IMP включен, введите в Вашем браузере следующий адрес: http://my-web-server/horde/setup.php.

ЗАМЕЧАНИЕ. <my-web-server> определяет адрес Вашего веб-сервера, а /horde указывает на каталог, где находится файл setup.php.

Шаг 3.

После того, как Вы закончите настраивать Webmail IMP, обязательно отключить setup.php, из соображений безопасности:

[root@deep /]# cd /home/httpd/horde
[root@deep horde]# sh ./secure.sh

Это переведет все файлы и библиотеки в режим 0555 (чтение/исполнение для всех), а setup.php в режим 0000, который запретит любой доступ.

Шаг 4.

На этой стадии мы должны проверить работоспособность Webmail IMP. Чтобы сделать это, наберите в окне браузера следующий адрес: http://my-web-server/horde. my-web-server это адрес, где находится Ваш веб-сервера, а /horde это каталог в котором располагается программа Webmail IMP.