[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: PHP4 i Oracle - opis instalacji



Witam,
> no witam o ile pamiętam to to właśnie odpowiada za współprace
> oracla z php "apt-get install libphp-adodb"
Tak tylko to jest uniwersalna proteza do baz danych i przez nią
Oracle traci wszystkie swoje plusy. Ja chciałem doinstalować coś
takiego jak oci8.so. Jest to moduł do php dostarczany jako zródła
przez Oracla. I trzeba sobie to dokompilować do php.
Nie mając żadnych odpowiedzi szukałem i kombinowałem i w końcu
zrobiłem, ale nie tak jak chiałem - czyli nie było to szybko i
prosto - choć trwało to dużo szybciej niż wcześniejsze próby
zrobienia tego prościej ;) Tak dla potomnych poniżej krótko opiszę,
bo dużo jest pytań w googlach a nie ma dokładnych odpowiedzi i
wskazówek co trzeba zrobić a czego nie można.

Zaczęło się od tego, że po zainstalowaniu Oracla i dodaniu jego
składnika OCI dostajemy pliki żródłowe (oci.h, oci08.c, ...). A
trzeba z nich zrobić extension do php (oci8.so).
PHP ma coś takiego do tworzenia modułów jak phpize i długo walczyłem
by móc to użyć - ale nie da się bo coś jest nie tak z phpem oraz z
oci8 (nie ma też kilku plików konfiguracyjnych do tego).
Udało się mi znaleść na www.apt-get.org pakiet php4-oci8_4.2.2
z którego wydobyłem oci8.so ale niestety nie działa na Woodym -
w czasie ładowania php przez apache krzyczy w error.log, że jest
jakaś niezgodność (chodzi tu chyba o wersję zendapi php i oci8.sa).
Chcąc niechcąc ściągnąłem żródła php4, oczywiście Debianowe, i
przystąpiłem do ich kompilacji. I tak:
Dla Oracle 9 musimy zrobić link libclntsh.so.9.0 do libclntsh.so.8.0
w katalogu $ORACLE_HOME/lib.
Należy do w pliku debian/rules dodać na początku:
export ORACLE_HOME=MOJ_KATALOG_DOMOWY_ORACLA
export LD_LIBRARY_PATH=/lib:/usr/lib:$ORACLE_HOME/lib
Oraz trochę dalej w definicji COMMON_CONFIG dopisać:
--with-oci8=shared,${ORACLE_HOME}
nie zapominając o kontynuacji linii czyli znaku \
No i zaczynamy kompilację wydając komendę dpkg-buildpackage. Gdy
będzie nam brakowało jakiegoś pakietu to ładnie to wypisze (a
wymaga bardzo dużo pakietów *-dev), gdy nie to mamy przerwę na
herbatę. Nie wiem dlaczego, ale ja musiałem jeszcze dodać prawa
do wykonania dla debian/rules (chmod +x debian/rules) i dopiero
wtedy herbatka mogła być zrobiona i wypita ;).
Po skończeniu musimy przenieść ręcznie plik oci8.so z katalogu
debian/php4/usr/lib/php4/20010901/ do katalogu /usr/lib/php4/20010901/
oraz dopisać w /etc/php4/apache/php.ini linijkę:
extension=oci8.so

Myślałem, że dodanie modułu wystarczy ale nie ;( trzeba jeszcze
przeinstalować pakiet php4_4.1.2 na ten stworzony
(dpkg -i php4_4.1.2-6woody3_i386.deb).
I po tym wszystkim w końcu w phpinfo() pokazało oci8 :)))

Bardzo pomocna okazała się strona: http://pl.php.net/oci8/
gdzie w zawartych tam mailach i dyskusjach są porozrzucane te
wszystkie informacje.
Może by tak zrobić opis na debianusers.org ?

-- 
Pozdrowienia
Robert




Reply to: