Подключение 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/