Проблема настройки ораклового клиента под фрей чаще всего утыкается в 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
Код: Выделить всё
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES,ORACLE_HOME=/usr/local/oracle8-client,NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251:\
не забываем потом
Код: Выделить всё
cap_mkdb login.conf
Ну и конечно необходимо прописать настройки подключения в файлах 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)
)
)