|
Тема
|
php4+oci8 problem
|
|
Автор |
gat3way (altered mind) |
Публикувано | 10.09.04 15:36 |
|
Значи имам 2 машини - едната на win2k, на която има Oracle сървър и една на Linux, на която целта е да се пусне php script за репликация на Oracle данните във една PostgreSQL база.
Допреди време всичко си беше като хората. Линукската машина си беше на Debian, php executable-то си беше build-нато с oci8 support и всичко си ставаше като хората. Докато хората не решиха да сменят линукската машина с по-бърза такава. Ta по-бързата такава си имаше един много странен RAID контролер, за който имаше единствено компилирани kernel modules...за някакъв странен kernel, който идва с redhat 8.0....
Това наложи новата машина да бъде на Редхат. Оттам цялата галимация наново - инсталирах JRE, Oracle 9 клиент, компилирах php с oci8 support, копирах старите скриптове за репликацията....и БУМ изненада!
Репликацията си върви идеално, таблиците се вземат от oracle-a, отиват си в pgsql-a, с изключение на тези, които имат field-ове с данни на кирилица. Кирилицата просто не отива в pgsql таблиците. Отначало реших че е някакъв тъп проблем с locales, но не - впоследствие установих, че все пак има някои таблици, в които кирилицата си е наред.
Реших че е проблем на php binary-to. Прекомпилирах няколко версии на PHP, пробвах с oracle client libs 8 и 9. В доста случаи компилираното binary даваше segfault. Ако не segfault-не, то неизменно половината таблици с кирилица биват прецакани.
Какво ли не правих. Пробвах с прекомпилирани на други машини php binary-ta, играл съм си доволно много. По едно време реших, че проблема на тъпия RedHat e в старото му libc. Сложих му по-нов glibc, обаче ефекта нулев.
php binary-to според ldd зависи от следните shared libs:
libcrypt, libpq3, libresolv, libm, libdl, libnsl, libc, libpthread, както и от 2-те .so-та на Oracle клиент-а : libclntsh и libwtc.
Няма да ви казвам че съм си играл да сменям версиите и на гореизброените библиотеки. Но резултата остава същия: или segfault или прецакани field-ове на кирилица.
Не знам вече какво да правя, ще се превърна в някво зомби накрая, вярвайте ми отчаян съм !!!!
Някой от вас случайно да има някаква идея какво по дяволите бъркам?!? Защо Господ ме наказва по такъв шибан начин. HEEELP !    
Spice extends life,spice expands consciousness.Spice is vital to space travel.Travel without moving.
| |
|
ами значи не съм много цъкал с oracle, но когато си стартирам apache в стартиращият скрипт съм му сложил в environment-а да се зареждат тези променливи
ENV="env -i LANG=C PATH=/bin:/usr/bin:/sbin:/usr/sbin ORACLE_HOME=/opt/oracle/OraHome1 NLS_LANG=BULGARIAN_BULGARIA.CL8MSWIN1251"
по-специално NLS_LANG, може да ти трябва и друг енкодинг, може и да не е това проблема, ама да си кажа 
| |
Тема
|
Re: php4+oci8 problem
[re: phpGuru]
|
|
Автор | gat3way (Нерегистриран) |
Публикувано | 13.09.04 13:00 |
|
проблема наистина се оказа с енкодинга накрая...мерси ;)
| |
|
|
|
|