The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблема компиляции PHP совместно с oci8 (FreeBSD)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от stash on 05-Сен-06, 11:27 
Задача состоит в том чтобы с сервера FreeBSD соединятся (через PHP) с сервером Oracle (стоит Oracle 9i).
Я отыскал в интернете некий ПОРТ, официально ораклом не поддерживаемый для FreeBSD (oracle8-client-0.1.1.tar.bz2), установил его (как в редми было написано), а при компиляции php с таким конфигом:
-----------------
./configure --prefix=/usr --with-apache=../apache_1.3.33 \
LIBS=-lpthread \
--with-mysql=/usr/local/mysql \
--with-gnu-ld --with-config-file-path=/usr/local/apache/conf \
--enable-sockets --disable-debug --enable-safe-mode \
--enable-inline-optimization  --enable-memory-limit \
--with-oci8=/usr/local/oracle
-----------------
спустя некоторое время вылетают такие ошибки:
-----------------
ext/oci8/oci8_lob.o(.text+0xf46): In function `php_oci_lob_import':
/usr/src/php-5.1.3/ext/oci8/oci8_lob.c:596: undefined reference to `__pthread_read'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x196): In function `sltstcr':
: undefined reference to `pthread_create'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x261): In function `sltstgetp':
: undefined reference to `pthread_getschedparam'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x548): In function `sltstjn':
: undefined reference to `pthread_join'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x639): In function `sltstkill':
: undefined reference to `pthread_kill'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x755): In function `sltstsetp':
: undefined reference to `pthread_getschedparam'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x7ba): In function `sltstsetp':
: undefined reference to `pthread_setschedparam'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x7f6): In function `sltstspawn':
: undefined reference to `pthread_attr_init'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x80e): In function `sltstspawn':
: undefined reference to `pthread_attr_setdetachstate'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x826): In function `sltstspawn':
: undefined reference to `pthread_create'
/usr/local/oracle/lib/libclntsh.a(sltst.o)(.text+0x8bb): In function `sltsttr':
: undefined reference to `pthread_exit'
/usr/local/oracle/lib/libclntsh.a(sltsq.o)(.text+0x130): In function `SltsqSigFunc':
: undefined reference to `pthread_exit'
/usr/local/oracle/lib/libclntsh.a(sepco.o)(.text+0x7d): In function `sepcoget_login':
: undefined reference to `cuserid'
/usr/local/oracle/lib/libclntsh.a(sltspc.o)(.text+0x227): In function `sltspctimewait':
: undefined reference to `pthread_cond_timedwait'
/usr/local/oracle/lib/libclntsh.a(sslts.o)(.text+0x3c): In function `ssltstraise':
: undefined reference to `pthread_kill'
*** Error code 1
-----------------
pthread в системе "стоят"... что делать не понимаю... я даже пытался руками включать в ext/oci8/php_oci8.h файл pthread - но результат один и тот же....
и даже в самом скрипте (configure) правил чтобы "использовать pthread" всегда было "yes"... :-[ хотя это наверное уже лишнее
Помогите, пожалуйста, кто в этом что-то понимает :'(
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от vic (??) on 05-Сен-06, 12:03 
может поможет :)
https://www.opennet.ru/openforum/vsluhforumID1/56503.html - см. последний ответ..

похоже не указан путь к библе

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от stash on 05-Сен-06, 13:50 
>может поможет :)
>https://www.opennet.ru/openforum/vsluhforumID1/56503.html - см. последний ответ..
>
>похоже не указан путь к библе
спасибо, попробовал конфигурировать вот так:
--------------------------------
./configure --prefix=/usr --with-apache=../apache_1.3.33 \
--libdir=/usr/lib \
--with-mysql=/usr/local/mysql \
--with-gnu-ld --with-config-file-path=/usr/local/apache/conf \
--enable-sockets --disable-debug --enable-safe-mode \
--enable-inline-optimization  --enable-memory-limit \
--with-oci8=/usr/local/oracle
--------------------------------
пробовал и /usr/local/lib (и там и там лежит библиотека libpthread внутри к-ой "прописаны" все эти функции)
я так понимаю, что просто компилятору надо в доп опциях приписать что-то вроде -pthread, но вот в том же Makefile я вижу напротив EXTRA_LDFLAGS как раз этот параметр (и тонны других, значения к-ых я не понимаю вовсе :-[ )
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от stash on 05-Сен-06, 14:18 
в Makefile вставил в
EXTRA_LDFLAGS_PROGRAM
-pthread
терь Все стало еще хуже - выдает ошибку:
/usr/local/oracle/lib/libclntsh.a(sepco.o)(.text+0x7d): In function `sepcoget_login':
: undefined reference to `cuserid'
:( :(
блин, ну не судьба мне с OCI PHP поставить :'(
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от vic (??) on 05-Сен-06, 15:15 
>в Makefile вставил в
>EXTRA_LDFLAGS_PROGRAM
>-pthread
>терь Все стало еще хуже - выдает ошибку:
>/usr/local/oracle/lib/libclntsh.a(sepco.o)(.text+0x7d): In function `sepcoget_login':
>: undefined reference to `cuserid'
>:( :(
>блин, ну не судьба мне с OCI PHP поставить :'(


перед configure экспортни LDFLAGS с -lpthread
и может еще LD_LIBRARY_PATH правильную экспортни

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от stash on 05-Сен-06, 17:05 
>перед configure экспортни LDFLAGS с -lpthread
>и может еще LD_LIBRARY_PATH правильную экспортни


т.е. компилровать с Линуксовыми "потоками"?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от spr1te email(??) on 07-Сен-06, 20:27 
>>перед configure экспортни LDFLAGS с -lpthread
>>и может еще LD_LIBRARY_PATH правильную экспортни
>
>
>т.е. компилровать с Линуксовыми "потоками"?

сделал все так-же
проблема аналогичная=((
выручайте ребята=)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от spr1te email(??) on 07-Сен-06, 22:21 
такс..
что-то получилось
запустил ./configure --without-mysql --with-apxs --with-oci8=shared --with-oracle=shared
shard for oci and oracle одинаковые
make
make install
поставился пхп, все ок запустилось
php работает
но при запуске ocilogon - php падает и предлагает скачать файл
сейчас обновляю порты (RELENG_5_4) и поставлю php5 (с обычными портами в make config (php5-extension) - нету oci=( )
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от Анархист on 09-Окт-06, 10:49 
>сейчас обновляю порты (RELENG_5_4) и поставлю php5 (с обычными портами в make
>config (php5-extension) - нету oci=( )
А оно там должно быть?
По моим наблюдениям - совершенно не факт.
#cd /usr/ports/lang/php5/
#make extract
#cd ./work/php-$VERSION
И далее в опциях ./configure уже ищется oci8 (для успешного выполнения скрипта ./configure необходимо наличие установленного порта клиента Оракл).

Но сути проблемы (в смысле граблей с libpthread) это увы не решает.
Все рекомендованные рецепты испробованы.
Думаю дальше.
Когда разберусь - отпишу.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от apoelov on 16-Окт-06, 11:40 
>в Makefile вставил в
>EXTRA_LDFLAGS_PROGRAM
>-pthread
>терь Все стало еще хуже - выдает ошибку:
>/usr/local/oracle/lib/libclntsh.a(sepco.o)(.text+0x7d): In function `sepcoget_login':
>: undefined reference to `cuserid'
>:( :(
>блин, ну не судьба мне с OCI PHP поставить :'(


Если верить мануалу на cuserid, то линкеру следует указать параметр -lcompat.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от Анархист on 17-Окт-06, 09:46 
>>терь Все стало еще хуже - выдает ошибку:
>>/usr/local/oracle/lib/libclntsh.a(sepco.o)(.text+0x7d): In function `sepcoget_login':
>>: undefined reference to `cuserid'
>>:( :(
>>блин, ну не судьба мне с OCI PHP поставить :'(
>
>
>Если верить мануалу на cuserid, то линкеру следует указать параметр -lcompat.

Дошёл до этого места.
Всё бы хорошо.
Но в строке линкования (полностью цитировать не хочу потому как очень длинная) которая собственно и выдаёт ошибку параметр '-lcompat' присутствует.
Куда рыть дальше пока не ясно.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от Чепиль Денис email on 17-Окт-06, 21:03 
Прочитал внимательно все что написано, проблема была аналогичная,
решилась так -

setenv LDFLAGS  -lpthread
./configure --enable-versioning --enable-memory-limit --with-layout=GNU --with-config-file-scan-dir=/usr/local/etc/php --disable-all --enable-libxml --with-libxml-dir=/usr/local --enable-spl --with-regex=php --with-apxs2=/usr/local/sbin/apxs --disable-ipv6 --prefix=/usr/local --with-freetype --with-freetype-dir=/usr/local/include/freetype2/freetype --with-oracle=/usr/local/oracle8-client --with-oci8=/usr/local/oracle8-client i386-portbld-freebsd6.0

ВСЕ ЗАРАБОТАЛО НА УРА !!!, полноценная работа с ораклом.
Также рекомендую статью,
http://www.boom.ge:8080/cached.jsp?idx=0&id=483368
Конкретно 7 ответ начинающийся "Я прошу всех извинить меня за непроглядную упорную тупость", перед компиляцией сделал то, что советовал автор. Проблема все равно оставалась, пока не добавил волшебную строчку "setenv LDFLAGS  -lpthread", не знаю, нужно или нет, но, linuxthreads я из портов ставил.

P.S. АФФТАРАМ ЗАЧЁД. Спасибо мужики !

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Проблема компиляции PHP совместно с oci8 (FreeBSD)"  
Сообщение от chepil email(??) on 18-Окт-06, 06:42 
Вдогонку к 11 посту
http://php.nukefiles.ru/f/ref.oci8.html
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Как и обещал, решение проблемы"  
Сообщение от Анархист on 27-Окт-06, 09:34 
>терь Все стало еще хуже - выдает ошибку:
>/usr/local/oracle/lib/libclntsh.a(sepco.o)(.text+0x7d): In function `sepcoget_login':
>: undefined reference to `cuserid'

Экспериментально выяснено, что лечится следующим шаманским заклинанием:
export LDFLAGS="-lpthread -L/usr/local/oracle8-client/lib -lclntst8 -lcompat -lm"

Подробно и развёрнуто описано здесь (на текущий момент редакция ещё не окончательная):
http://www.nixp.ru/articles/freebsd_apache_php_oracle

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Как и обещал, решение проблемы"  
Сообщение от Владислав (??) on 12-Сен-07, 04:54 
Всем привет!
Всё сделал как указано здесь.

У меня FreeBSD 6.2
PHP4
oracle8-client
p5-DBD-Oracle

При выполнении скриптов php (не обязательно в апаче)
вместо кириллицы выпадает знаки вопроса.

Аналогичный скрипт на Perl работает как надо.

Везде во всех скриптах выставлены переменные окружения NLS_LANG
(перепробовал разные значения).

Куда ещё глянуть?

Спасибо

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру