Прежде чем начать

В этой статье предполагается, что вы используете 32-разрядную систему Linux на основе менеджера пакетов RPM. Все процедуры, представленные в этом руководстве, выполнялись в ОС Red Hat Enterprise Linux 4 и SUSE Linux 9. Тем не менее общая концепция может использоваться и при работе с другими дистрибутивами Linux.

Предварительные действия

Прежде всего вам понадобятся Informix Dynamic Server и набор разработчика Informix Software Development Kit. Если у вас нет этих продуктов, вы можете найти их на странице семейства продуктов Informix.

В большинстве дистрибутивов Linux некоторые или все компоненты LAIP уже установлены. Как правило, они не устанавливаются из исходных файлов, и поэтому могут не содержать нужных скомпилированных расширений. Чтобы удалить эти компоненты, не столкнувшись с проблемами менеджера RPM, необходимо войти в систему под учетной записью

root:su - root
     
Затем вы можете просмотреть все пакеты, установленные в вашей системе:rpm -qa | grep -i apache
rpm -qa | grep -i httpd
rpm -qa | grep -i php
 
После этого вы можете удалить все пакеты, найденные в результате выполнения предыдущих команд:

rpm -e filename
 

На этом этапе вы должны получить "чистый" дистрибутив Linux, готовый для установки и настройки компонентов.

-------------------------------------------------------------------------------------------------------------------------------------------------
Получение и распаковка файлов исходного кода для всех приложений

1   Перейдите в папку, где хранятся все файлы исходного кода:

cd /usr/local/src
 

2    Получите необходимые вам компоненты:

wget http://www.php.net/distributions/php-5.1.2.tar.gz
wget http://apache.osuosl.org/httpd/httpd-2.2.0.tar.gz
wget http://www.pecl.php.net/get/PDO_INFORMIX-1.0.0.tgz
 

В нашей установке использовались следующие версии продуктов LAIP:PHP 5.1.2
HTTP-сервер Apache 2.2.0
Informix Dynamic Server (IDS) 10.00.UC4
Informix Client Software Development Kit (Client SDK) 2.90.UC4
Informix PHP Data Objects (PDO) 1.0.0

Для корректной работы других версий этих продуктов могут потребоваться шаги, отличные от тех, что приведены в этой статье. Приведенные в этом руководстве процедуры предназначены исключительно для вышеперечисленных версий. Тем не менее общая концепция применима и к другим версиям.
-------------------------------------------------------------------------------------------------------------------------------------------------

Распаковка полученных файлов исходного кода

tar zxf httpd-2.2.0.tar.gz
tar zxf php-5.1.2.tar.gz
tar zxf PDO_INFORMIX-1.0.0.tgz
 
-------------------------------------------------------------------------------------------------------------------------------------------------
Установка Informix и Client SDK

Для установки Informix в вашей Linux-системе выполните следующие шаги:

1      Проверьте, требуется ли установить для вашей операционной системы какие-либо патчи. Для этого вы можете перейти на страницу Informix Dynamic Server.

2      Создайте группу и пользователя Informix. Пользователь Informix выступает в роли учетной записи администратора для базы данных Informix. Обеспечьте надежную защиту этой учетной записи. Для создания группы и пользователя Informix выполните следующие шаги (где xxxx – это пароль для пользователя Informix):

groupadd informix
useradd -g informix -p xxxx -d /dev/null informix
 

3      Создайте установочную директорию. Местоположением по умолчанию является /opt/informix. Последние две команды призваны гарантировать, что владельцем директории будут группа и пользователь Informix:

su informix mkdir /opt/informix
chown informix.informix /opt/informix
chown informix.informix /opt/informix
 

4      Настройте все необходимые переменные среды Значением переменной INFORMIXDIR должна быть директория, в которую вы установили Informix. Ниже показано, как использовать значения по умолчанию:

Bourne Again shell (bash):
INFORMIXDIR=/opt/informix
export INFORMIXDIR
PATH=$PATH:$INFORMIXDIR/bin
export PATH
 
или
C shell (csh):
setenv INFORMIXDIR /opt/informix
setenv PATH ${PATH}:${INFORMIXDIR}/bin
 

5      Распакуйте файлы Informix из указанного tar-файла. Если tar-файлы Informix Server и Client SDK находятся в текущей директории, выполните для распаковки следующие команды (предполагая, что имя файла IIF*.tar):

mv IIF*.tar /opt/informix
cd /opt/informix
su informix tar -xvf IIF*.tar
 

6      Перейдите к распакованным файлам и запустите установку IDS. Установить IDS можно тремя способами. По умолчанию используется метод с применением консоли. Существуют также графический и "молчаливый" способы установки. Вы можете выбрать любой подходящий вам способ. В этом примере используется метод с использованием консоли:

./install_rpm -acceptlicense=yes
 
После запуска скрипта просто следуйте инструкциям на экране, чтобы завершить установку Informix. Убедитесь, что вы используете путь /opt/informix в качестве установочной директории. Флаг принятия условий лицензии следует устанавливать только в том случае, если вы принимаете условия лицензии Informix.

7       Распакуйте tar-файл Client SDK в директорию /opt/informix.

mv client*.tar /opt/informix
cd /opt/informix
su informix tar -xvf client*.tar
 

8       Запустите установочный скрипт для установки Client SDK. После запуска скрипта просто следуйте инструкциям на экране, чтобы завершить установку Client SDK, являющегося компонентом Informix.

  ./installclientsdk
 

-------------------------------------------------------------------------------------------------------------------------------------------------
Настройка Informix и Informix Client SDK

1       Создайте файлы переменных среды, необходимые для запуска и работы сервера Informix. В домашней директории создается файл .informix, содержащий следующие строки:

Bourne Again shell (bash):
set INFORMIXDIR=/opt/informix
set INFORMIXSQLHOSTS=/opt/informix/etc/sqlhosts
set ONCONFIG=onconfig
set INFORMIXSERVER=myserver
set SERVERNUM=1
set PATH=$INFORMIXDIR/bin:.:$PATH

или
C shell (csh):
setenv INFORMIXDIR /opt/informix
setenv INFORMIXSQLHOSTS /opt/informix/etc/sqlhosts
setenv ONCONFIG onconfig
setenv INFORMIXSERVER myserver
setenv SERVERNUM 1
setenv PATH $INFORMIXDIR/bin:.:$PATH
 

2      Добавьте ваш сервер в файл sqlhosts. Этот файл находится в директории /opt/informix/etc. Вы должны добавить в файл sqlhosts имя INFORMIXSERVER, указанное ранее в переменных окружения. Строка добавляется в следующем формате:

dbservername nettype hostname servicename [options]

Вот что было добавлено в нашем случае:
myserver onsoctcp myserver port_alias
 

Указанный порт также должен быть открыт в вашей системе. В этом примере он был открыт в файле /etc/services. Ниже приведен пример строки, добавленной в файл services:
port_alias 8201/tcp
 

3      Создайте файл onconfig. Этот файл должен располагаться в директории /opt/informix/etc. В ней уже должен находиться стандартный файл onconfig с именем onconfig.std. Для нашего примера достаточно поместить в этот файл строки, приведенные ниже. В вашем конкретном случае вам могут потребоваться дополнительные переменные, или вы можете использовать не все переменные, перечисленные ниже. Итак, файл onconfig содержит следующие строки:

DBSERVERNAME myserver
DUMPDIR /tmp
LOGDIR /opt/informix/logdir
MSGPATH /opt/informix/logdir/online.log
PHYSDBS rootdbs
ROOTNAME rootdbs
ROOTPATH /opt/informix/logdir/rootdbs
ROOTSIZE 30000
 

Переменная DBSERVERNAME – это уникальное имя, назначенное определенному экземпляру сервера базы данных. DUMPDIR – директория, в которую сервер выгружает общую память, а также сообщения. LOGDIR – это директория для хранения журналов экземпляра IDS. MSGPATH содержит полный путь к файлу регистрации сообщений. PHYSDBS – это имя пространства dbspace, содержащего физический журнал. ROOTNAME – имя корневого пространства root dbspace. ROOTPATH – полный путь к начальному фрагменту пространства root dbspace. ROOTSIZE – размер начального фрагмента пространства root dbspace.

4       Добавьте указанные выше директорию для хранения журналов и корневое пространство. Для конфигурации нашего примера были добавлены следующие строки:

su informix mkdir /opt/informix/logdir
su informix chmod 777 /opt/informix/logdir
cd /opt/informix/logdir
su informix touch rootdbs
su informix chmod 660 rootdbs
su root chown informix.root rootdbs
 

5      Проверьте, что все работает правильно.

a     Попробуйте запустить сервер:

cd /opt/informix/bin
oninit -i
 

b     Убедитесь, что сервер запустился корректно, выполнив следующую команду:

onstat -
 

c     Если вы увидите сообщение "shared memory not initialized for INFORMIXSERVER 'myserver'", значит, установка не работает. Если же вы увидите нечто похожее на "IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 00:00:07 -- 19508 Kbytes", значит, все запустилось и работает.

Если позже вам потребуется остановить сервер, выполните следующую команду:onmode -kuy
 
---------------------------------------------------------------------------------------------------------------------------------------------------

Установка и настройка Apache

Для установки Apache с поддержкой динамически загружаемых модулей выполните следующие шаги:

cd /usr/local/src/httpd-2.2.0/
./configure
--prefix=/usr/local/apache
--enable-shared=max
--enable-module=rewrite
--enable-module=so
make
make install
 
1        Для того чтобы файлы с расширением .php обрабатывались корректно, отредактируйте файл http.conf, который находится в директории /usr/local/apache/conf/httpd.conf. Найдите в этом файле следующие строки:

#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

2        Если вы нашли вышеуказанные строки, удалите в них символы #. Если строки не найдены, добавьте их в файл без символов #. Это позволит Apache корректно обрабатывать php-файлы.

3        Редактируя файл httpd.conf в директории /usr/local/apache/conf, вы можете более тонко настроить сервер Apache. В Интернете существует огромное количество документации по этой теме.

--------------------------------------------------------------------------------------------------------------------------------------------------
Установка и настройка PHP

Для установки PHP выполните следующие шаги:

1      Скопируйте папку PDO_INFORMIX в поддиректорию exp установки PHP:

cd /usr/local/src/php-5.1.2/ext
cp -R ../../PDO_INFORMIX-1.0.0 pdo_informix
 

2     Сконфигурируйте PHP с поддержкой расширения PDO и выполните команду make:

cd /usr/local/src/php-5.1.2
./buildconf --force
./configure --with-apxs2=/usr/local/apache/bin/apxs
--disable-debug
--disable-ftp
--disable-inline-optimization
--disable-magic-quotes
--disable-mbstring
--enable-wddx=shared
--enable-xml
--with-dom
--with-regex=system
--with-xml
--with-jpeg-dir=/usr/lib
--with-zlib-dir=/usr/lib
--with-zlib
--without-pdo-sqlite
--without-iconv
--without-sqlite
--enable-shared
--enable-pdo
--with-pdo-informix=/opt/informix
make
make install
cp php.ini-dist /usr/local/lib/php.ini
 

3    Теперь можно проверить правильность установки PHP. Для этого выполните следующую команду:

php -m
 

4    Эта команда должна вывести сведения о модулях PDO и pdo_informix. Если эти модули не включены в вывод, значит команды buildconf, configure, make или make install сработали не так, как ожидалось.

У вас есть возможность сконфигурировать модуль pdo_informix после настройки самого PHP.

5    Вы можете скомпилировать модуль pdo_informix отдельно, но для этого потребуется использовать команду phpize из установочной директории PHP. Вам не нужно выполнять этот шаг, если вы сконфигурировали или скомпилировали модуль pdo_informix во время конфигурации или компиляции PHP.

cd pdo_informix
phpize
./configure
make
 

6     Добавьте в файл php.ini необходимые расширения. Этот файл находится в директории /usr/local/lib/php.ini. В файле php.ini указывается директория загружаемых расширений. Обычно эта директория расположена после следующей строки:

; Directory in which the loadable extensions (modules) reside.

В нашем примере нужные нам строки выглядят следующим образом:; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20050922/"
 

Еще одно изменение, которое необходимо внести в файл php.ini – это определение расширений PDO и pdo_informix. Сведения о них находятся в разделе Dynamic Extensions файла php.ini. Если эти расширения были созданы в качестве общих модулей, вам необходимо скопировать их в вышеуказанную директорию расширений и разрешить в файле php.ini, как показано ниже:extension=pdo.so
extension=pdo_informix.so

---------------------------------------------------------------------------------------------------------------------------------------------------
Проверка работы созданного Web-сервера

Для проверки работы созданного Web-сервера выполните следующие шаги:

1     Запустите сервер Apache. Все, что для этого нужно - выполнить следующую команду (под учетной записью root):

/usr/local/apache/bin/apachectl start
 
Откройте ваш любимый Web-браузер и наберите в адресной строке localhost. Вы должны увидеть начальную страницу Apache. Это будет означать, что Apache запустился.

2     Убедитесь, что PHP работает с Apache. Для этого вам необходимо отредактировать файл index.html, который отображается в вашем браузере. Расположение этого файла зависит от того, куда вы установили Apache. В нашем примере файл находится в директории /usr/local/apache/htdocs/index.html.

Сотрите файл index.html и замените его следующим файлом (с именем index.php):

После этого, когда вы откроете измененную страницу (http://localhost/index.php), вы должны увидеть текст PHP and Apache are playing nicely!. Если вместо этого вы видите код PHP, значит, настройка совместной работы Apache и PHP не удалась.

3     Проверьте, что Informix запущена и вы можете запросить информацию. Для этого выполните следующую команду:

ps -aef | grep oninit
 
Если найдены какие-либо процессы, значит, Informix работает. Если же процессы не обнаружены, запустите Informix с помощью команды, указанной ранее в этом руководстве. Инструмент, который использует Informix для создания или удаления баз данных и таблиц, а также для вставки и удаления данных – это dbaccess. Вы можете запустить dbaccess из следующей директории:/opt/informix/bin/dbaccess
 
Не забудьте сделать следующее:
a  Добавьте пользователей, которым необходим доступ к таблице 'informix'.sysauth, в базу данных sysuser.
b  Для проверки установки вашего сервера создайте новую базу данных и добавьте в нее таблицу с данными.

Если вы не знакомы с утилитой dbaccess, вы можете найти документацию по работе с ней в Интернете.

4     Убедитесь, что PHP и PDO Informix работают корректно. Для этого перейдите в папку для документов Apache по умолчанию (/usr/local/apache/htdocs) и создайте в ней файл test.php. Содержимое файла test.php приведено ниже:

query("select * from test_table");
$res = $stmt->fetch( PDO::FETCH_BOTH );
$rows = $res[0];
echo "Table contents: $rows.n";
?>

Переменные в строке подключения соответствуют потребностям нашей системы. Выберите переменные и их значения, чтобы они подходили для вашей системы и вашей среды. Первая строка – это строка подключения к базе данных Informix. Структура informix: необходима для открытия строки подключения. Значением переменной host является просто имя хоста, на котором запущен сервер. Значением переменной service является номер порта, открытого для вашей базы данных (/etc/services). Переменная database содержит имя базы данных, которую вы создали ранее. Переменная server содержит имя экземпляра базы данных, созданного ранее. Переменная protocol – это тип протокола, который вы указали в файле /etc/sqlhosts. Остальные параметры говорят сами за себя. Последние два параметра объекта PDO – это имя пользователя и пароль. Убедитесь, что пользователь был добавлен в базу данных sysuser, как это было описано выше.

Когда вы откроете Web-страницу test.php, вы должны увидеть строки Connection Established! и Table Contents, за которыми следует содержимое вашей таблицы.

Поздравляем! Теперь ваша система LAIP готова к использованию!