Настройка и создание 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");