Безопасность и оптимизация Linux.Редакция для Red Hat

       

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


Содержание раздела