PHP-OCI8 Ubuntu LTS
Posted by kukulkan on марта 11, 2010
1. Устанавливаем apache, php (модули опционально) :
# apt-get install apache2 php5-common php5 php5-dev libapache2-mod-php5
# php5-cli
2. Устанавливаем пакеты для сборки модуля php из pear:
# apt-get install build-essential php-pear
3. Устанавливаем библиотеку libaio:
# apt-get install libaio1
4. Создаем каталоги:
# mkdir /opt/oracle/instantclient/
# mkdir /opt/oci8/
5. Скачиваем с офсайта последние версии Instantclient и SDK http://www.oracle.com/technology/tech/oci/instantclient/index.html . Должны быть два архива zip (в нашем случае это были basic-10.2.0.4.0-linux-x86_64.zip и sdk-10.2.0.4.0-linux-x86_64.zip)
6. Копируем скачанные архивы в каталог /opt/oracle/instantclient/, переходим в него и разархивируем содержимое:
# cd /opt/oracle/instantclient/
# unzip \*.zip
7. Создаем символические ссылки на библиотеки, т.к. бОльшая часть софта, в том числе и oci8, ориентируется на создаваемые имена библиотек:
# cd /opt/oracle/instantclient/instantclient_10_2/
# ln -s libocci.so.10.1 libocci.so
# ln -s libclntsh.so.10.1 libclntsh.so
8. Обновляем кэш динамических библиотек:
# echo /opt/oracle/instantclient/instantclient_10_2/ >> /etc/ld.so.conf
# ldconfig
9. Переходим в каталог и скачиваем модуль oci8:
# cd /opt/oci8/
# pecl download oci8
10. Разархивируем модуль, переходим в каталог с исходниками oci8 и подготавливаем окружение для сборки модуля:
# tar -xzf oci8-1.4.0.tgz
# cd /opt/oci8/oci8-1.4.0
# phpize
11. Перед самой сборкой устанавливаем переменные окружения оракула:
# export ORACLE_HOME=/opt/oracle/instantclient/instantclient_10_2
12. Проверяем переменную окружения:
# echo $ORACLE_HOME
Должны получить ответ:
# /opt/oracle/instantclient/instantclient_10_2
14. Собираем модуль:
# cd /opt/oci8/oci8-1.4.0
#./configure \
--with-oci8=share,instantclient,/opt/oracle/instantclient/instantclient_10_2
15. Собираем модуль oci8:
# make
# make install
16. Редактируем конфиги php:
# echo extension=oci8.so; /etc/php5/apache2/php.ini
# echo extension=oci8.so; /etc/php5/cli/php.ini
17. Само расширение установлено в каталоге:
# /usr/lib/php5/20060613/
18. Перезапускаем apache и все. Я проверял наличие модуля выводом функции
phpinfo()
19. Создаем каталог для файлов sqlnet.ora и tnsnames.ora
mkdir -p /opt/oracle/instantclient/instantclient_10_2/network/admin
20. В конфиге апача или виртуалхоста (а также .htaccess) можно установить переменные:
SetEnv TNS_ADMIN «/opt/oracle/instantclient/instantclient_10_2/network/admin»
SetEnv LD_LIBRARY_PATH «/opt/oracle/instantclient/instantclient_10_2»
SetEnv ORACLE_HOME «/opt/oracle/instantclient/instantclient_10_2»
SetEnv NLS_LANG=RUSSIAN_CIS.AL32UTF8
Posted in Новости | No Comments »

