|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> WWW
—> php5-oci8
Работаем с oracle8-client + php5-oci8
Автор: dvg_lab.
Есть два способа работать из FreeBSD с оракловым сервером, это поставить нативного ораклового клиента oracle8-client, либо линуксовую версию linux-oracle-instantclient-basic соотвтетсвенно через линуксулятор. По ряду причин у меня задача была работать с нативным клиентом. Рассморим именно этот вариант установки.
Проблема настройки ораклового клиента под фрей чаще всего утыкается в segmentation fault (core dumped) и слабого понимания того, что с этим делать. С проблемой сталкиваются фактически все в разных комбинациях, основная проблема в том что драйвер выглядит сырым и при малейшей неточности в конфигурации откладывает корку, но есть вариант заставить его нормально работать и в CLI режиме и апачевским модулем.
Итак необходимо установить из портов database/oracle8-client и database/php5-oci8.
Для того чтобы драйвер не выпадал в кору и не утаскивал за собой php и apache2 нужно пропатчить сам php. Дифф для Zend/zend_API.c
--- zend_API.c.orig 2008-11-20 10:53:47.000000000 +0300
+++ zend_API.c 2008-11-20 10:53:59.000000000 +0300
@@ -1939,9 +1939,9 @@
#if HAVE_LIBDL || defined(HAVE_MACH_O_DYLD_H)
#if !(defined(NETWARE) && defined(APACHE_1_BUILD))
- if (module->handle) {
- DL_UNLOAD(module->handle);
- }
+// if (module->handle) {
+// DL_UNLOAD(module->handle);
+// }
#endif
#endif
}
| Подробности можно посмотреть здесь
обязательно установить переменную окружения иначе получите core dumped с неверной инструкцией.
setenv ORACLE_HOME /usr/local/oracle8-client
| Ее также можно установить в файле /etc/login.conf в разделе default
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES, ORACLE_HOME=/usr/local/oracle8-client,NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251:\
|
обращаю внимание на NLS_LANG, если вам не нужны проблемы с кодировками.
не забываем потом
Эксперименты показали что устанавливать переменные окружения через php функцию putenv() бесполезно, несмотря на то что переменная устанавливается. Но видимо есть какие-то проблемы в самом oci драйвере с чтением таким образом установленного окружения.
Ну и конечно необходимо прописать настройки подключения в файлах sqlnet.ora и tnsnames.ora. Первый скорее всего не нужен.
# cat /usr/local/oracle8-client/network/admin/sqlnet.ora |grep -v "^#"
NAMES.DIRECTORY_PATH= (TNSNAMES)
# cat /usr/local/oracle8-client/network/admin/tnsnames.ora
# TNSNAMES.ORA Network Configuration File: /home/oracle/OraHome/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ALFA2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.222.222)(PORT = 1521))
)
(CONNECT_DATA =
(SID = NEWSID)
)
)
| После установки патча и переменных окружения php перестает падать и нормально пашет как в CLI режиме так и модулем к апачу.
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=12713.
размещено: 2008-11-22,
последнее обновление: 2008-11-22,
автор: dvg_lab
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
|
Статистика сайта
|
Сейчас на сайте находится: 29 чел.
|
За последние 30 мин было: 59 человек
|
За сегодня было 2339 показов, 571 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [2 шт.]