Рубрики
Uncategorized

PHP 5.3 Подключение клиента Oracle и установка модуля PDO_OCI

Автор оригинала: David Wong.

Подключение PHP к базе данных Oracle-не лучший партнер, но существует необходимость в групповой разработке. Если нет ссылки на соответствующую документацию, процесс все равно очень болезненный. Вот запись, прототипом является зарубежный блог, устанавливающий расширения PDO_OCI и OCI8 PHP на 64-разрядную версию CentOS 6.4.

Предположим, у вас установлена среда PHP, версия PHP 5.3, сервер Oracle 11g R2 для подключения и версия операционной системы CentOS 6.4 x86_64. Если PHP не установлен, вы можете установить его, выполнив следующие команды:

# yum install php php-pdo
# yum install php-devel php-pear php-fpm php-gd php-ldap \
php-mbstring php-xml php-xmlrpc  php- zlib zlib-devel bc libaio glibc

Предположим, что веб-сервер использует apache.

1. Мгновенная установка клиента

Мгновенный клиент-это простой клиент для Oracle для подключения базы данных. Он может подключать базу данных Oracle без установки 500-метрового клиента oracle. Существуют версии для Windows и Linux. Выберите версию, которую вы хотите загрузить отсюда, всего два пакета rpm, Basic и Devel.

install
# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

Softlink
# ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
# ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client

64-разрядным системам необходимо создавать 32-разрядные программные ссылки, что может быть устаревшей ошибкой, и проблемы с компиляцией возникнут без нее.

Затем позвольте системе найти файл библиотеки клиента Oracle и изменить LD_LIBRARY_PATH:

# vi /etc/profile.d/oracle.sh
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

реализовать источник/etc/profile.d/oracle.sh Заставьте переменные среды работать.

2. Установите PDO_OCI

В случае подключения к Интернету расширение для установки PHP онлайн через PECL очень просто, см. раздел Как установить Oracle instant client и pdo_oci на компьютере Ubuntu.

Загрузите исходный файл PDO_OCI-1.0.tgz с https://pecl.php.net/package/PDO_OCI.

# wget https://pecl.php.net/get/PDO_OCI-1.0.tgz
# tar -xvf PDO_OCI-1.0.tgz
# cd PDO_OCI-1.0

Поскольку PDO_OCI не обновлялся в течение длительного времени, нам нужно отредактировать его ниже. ODI_OCI-1.0 В папке config.m4 Файл для поддержки 11g:

# Find the code similar to the following around line 10, and add these two lines:
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
  PDO_OCI_VERSION=11.2

# Add these lines around line 101:
11.2)
  PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
  ;;

Скомпилируйте и установите расширение pdo_oci: (после установки вы можете найти этот модуль в/usr/lib64/PHP/modules/pdo_oci. so)

$ phpize
$ ./configure --with-pdo-oci=instantclient,/usr,11.2
$ make
$ sudo make install

Чтобы включить это расширение, в /etc/php.d/ Далее создайте новое pdo_oci.ini Документы, содержимое:

extension=pdo_oci.so

Проверьте успешную установку:

# php -i|grep oci
If you see something like the following, the installation is successful:
/etc/php.d/pdo_oci.ini,
PDO drivers => oci, sqlite

or
# php -m

3. Установите OCI8

Загрузите исходный файл oci8-2.0.8.tgz с https://pecl.php.net/package/oci8.

# wget https://pecl.php.net/get/oci8-2.0.8.tgz
# tar -xvf oci8-2.0.8.tgz
# cd oci8-2.0.8

Скомпилируйте и установите расширения oci8:

# phpize
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
# make
# make install

Чтобы включить это расширение, в /etc/php.d/ Далее создайте новое oci8.ini Документы, содержимое:

extension=oci8.so

Проверьте успешную установку:

# php -i|grep oci8
/etc/php.d/oci8.ini,
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
OLDPWD => /usr/local/src/oci8-2.0.8
_SERVER["OLDPWD"] => /usr/local/src/oci8-2.0.8

Наконец, не забудьте перезапустить веб-серверы инверсии, такие как Apache, чтобы убедиться, что расширение успешно установлено с помощью phpinfo ().

4. Проверьте Подключение

Создайте его на своем веб-сервере, например в каталоге PHP apache testoci.php :

\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "\n";
    foreach ($row as $item) {
        echo "  ".($item !== null ? htmlentities($item, ENT_QUOTES) : " ")."\n";
    }
    echo "\n";
}
echo "\n";

?>

Посетите эту страницу, и вы сможете получить результаты.

Справочные ресурсы

  • Установка расширений PDO_OCI и OCI8 PHP на CentOS 6.4 64 бит
  • Установите PHP и Oracle Instant Client в Linux и Windows
  • Расширенные oci8 и pdo_oci для установки Oracle в php5.3

Адрес ссылки: http://seanlook.com/2015/03/10/install-pdo-oci-oci8-phpext/