Tomasz J.

Tomasz J. Systems Engineer

Temat: [php_oci8.dll] - Nie można odnaleźć określonej procedury.

Witam wszystkich.

"Początkujący" jestem i... Mam problem... Sprawa bardziej dla adminów...
Cwaniak ze mnie gdy instaluje AppServ'a - czyli jednym "dwu-klikiem" Apache'a, PHP i MySQL'a. :]
Cienias ze mnie w kwestii oddzielnej instalacji i konfiguracji Apache'a i PHP tak wiec zwracam się z prośbą o pomoc. :[

(wszystko dzieje się w magicznej krainie Win XP)

Zainstalowałem Apache'a (2.2). Później PHP (5.3.0). Wiadomo, że instalator PHP sam modyfikuje httpd.conf i PHP śmiga. Zamiast MySQL'em mam zamiar bawić się bazą Oracle'a, która "wisi gdzieś tam w sieci", dlatego też instalując PHP doklikałem kilka dodatkowych rozszerzeń jak OCI8 i Oracle, które domyślnie się nie instalują.

Problem mam właśnie z rozszerzeniem php_oci8.dll.

W php.ini mam:
[PHP_OCI8]
extension=php_oci8.dll
[PHP_OCI8_11G]
extension=php_oci8_11g.dll

Natomiast logi Apache'a po restarcie nie wywołują u mnie uśmiechu na twarzy:
PHP Warning:  PHP Startup: Unable to load dynamic library 'ścieżka_do_php\\PHP\\ext\\php_oci8.dll' - Nie można odnaleźć określonej procedury.\r\n in Unknown on line 0


Pomoże ktoś duszy, zabłąkanej w świecie konfiguracji PHP? Gdzie poszukać rozwiązania? Co może być przyczyną, że php_oci8.dll nie chce się "załadować"?

PS. Oczywiście w ..\PHP\ext\ jest php_oci8.dll, php_oci8_11g.dll itd.
PS2. Nie ładuje się też kilka innych "dll'ek"


edit:
Zapomniałem dodać, że Oracle to wer. 9.2, pytałem już wujka Google, czytałem też to, na php.netTomasz J. edytował(a) ten post dnia 18.08.09 o godzinie 13:55
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: [php_oci8.dll] - Nie można odnaleźć określonej procedury.

Może brakuje jakiegoś dll ? Przepuść oci przez http://www.dependencywalker.com/ i zobacz czy będą jakieś wpisy sugerujące o nieprawidłowościach.

edit: oci.dll z katalogu bin oracla powinien Ciebie zainteresować; z tego co wyczytałem, to do niego odwołuje się oci8Janusz Skudrzyk edytował(a) ten post dnia 18.08.09 o godzinie 14:08

konto usunięte

Temat: [php_oci8.dll] - Nie można odnaleźć określonej procedury.

Sprawa pierwsza to dependency. Sam zresztą miałem tak, że po kilku próbach instalacji zestawu Apache 2.2 + PHP 5.3.0 dostawałem k****cy, bo któryś raz nie chce załadować którejś tam biblioteki, poza tym ogólnie ten tandem nie chciał ze sobą współpracować. Dopiero Apache 2.0 ukoił moje nerwy.

Ale Twój problem akurat nie polega na tym. Do łącznienia się z bazą Oracle z php potrzebujesz jeszcze Oracle Instant Client (jakoś tak to się nazywało). Musisz ściągnąć to ze strony Oracle'a, zainstalować i zapewne jeszcze dodać ścieżkę do tego do zmiennej środowiskowej PATH. Nie pamiętam dokładnie jak to sie robiło, nie bawiłem się tym od kilku miesięcy.
Tomasz J.

Tomasz J. Systems Engineer

Temat: [php_oci8.dll] - Nie można odnaleźć określonej procedury.

Janusz Skudrzyk:
Może brakuje jakiegoś dll ? Przepuść oci przez http://www.dependencywalker.com/ i zobacz czy będą jakieś wpisy sugerujące o nieprawidłowościach.

edit: oci.dll z katalogu bin oracla powinien Ciebie zainteresować; z tego co wyczytałem, to do niego odwołuje się oci8

Wrzuciłem dll'kę w ten program i:
Error: At least one required implicit or forwarded dependency was not found.
Brakuje mu php4ts.dll! Przeszukałem cały PC i znalazłem php5ts.dll
Poszukam najnowszej wersji php_oci8.dll albo... Sam nie wiem.

Bartosz Zasada:
Sprawa pierwsza to dependency. Sam zresztą miałem tak, że po kilku próbach instalacji zestawu Apache 2.2 + PHP 5.3.0 dostawałem k****cy, bo któryś raz nie chce załadować którejś tam biblioteki, poza tym ogólnie ten tandem nie chciał ze sobą współpracować. Dopiero Apache 2.0 ukoił moje nerwy.

Ale Twój problem akurat nie polega na tym. Do łącznienia się z bazą Oracle z php potrzebujesz jeszcze Oracle Instant Client (jakoś tak to się nazywało). Musisz ściągnąć to ze strony Oracle'a, zainstalować i zapewne jeszcze dodać ścieżkę do tego do zmiennej środowiskowej PATH. Nie pamiętam dokładnie jak to sie robiło, nie bawiłem się tym od kilku miesięcy.


O oci.dll wiem, mam i w ogóle wszystko wygląda na "si".
Oracle Instant Client - mam.
Dodałem też sobie do zmiennych systemowych ORACLE_HOME ze ścieżką do ..\oracle\ora92\bin

Na razie dalej mam problem. Pogoogluje jeszcze... Zobaczymy co znajdę.
Jak nie dam rady, to może faktycznie poleci DownGrade na Apache'a 2.0 i jakąś wcześniejszą wersję PHP.

pzdr,
T.

konto usunięte

Temat: [php_oci8.dll] - Nie można odnaleźć określonej procedury.

Downgrade do apache 2.0 chyba nie byłby złym pomysłem. Tym bardziej, że nie wiem, jakim cudem udało Ci sie zmusić 2.2 do współpracy z php 5.3 - w paczce nie było żadnej biblioteki do tej wersji, albo jestem ślepy ;)
Rafał Korszuń

Rafał Korszuń co-owner @ Kleder

Temat: [php_oci8.dll] - Nie można odnaleźć określonej procedury.

zainstaluj sobie nowszy Oracle instant Client, wszystko zacznie śmigac i będziesz w stanie połączyć się z Oraclem 9.2.

Wersja php_oci8.dll, którą aktualnie posiadasz została skompilowana dla php4, jutro sprawdzę moją konfigurację w pracy i napiszę jakie ja mam wersje tych bibliotek (niestety pod systemem Linux - ale pod Windows powinno być symetrycznie)
Tomasz J.

Tomasz J. Systems Engineer

Temat: [php_oci8.dll] - Nie można odnaleźć określonej procedury.

No to jeszcze raz.

Usunąłem ze zmiennych systemowych ORACLE_HOME ze ścieżką do ..\oracle\ora92\bin ponieważ inny soft przestał działać. Ta sama ścieżka jest w innej zmiennej - PATH.
Ściągnąłem ze strony Oracle'a najnowszą wersję Oracle Instant Client. Na dole podlinkowanej strony są cztery przykazania Oracle'a dot. instalacji. Oczywiście przestrzegam ich, niczym tych dziesięciu bożych ;)
Installation Steps:
1. Download the appropriate Instant Client packages for your platform. All installations REQUIRE the Basic or Basic Lite package.
2. Unzip the packages into a single directory such as "instantclient".
3. Set the library loading path in your environment to the directory in Step 2 ("instantclient"). On many UNIX platforms, LD_LIBRARY_PATH is the appropriate environment variable. On Windows, PATH should be used.
4. Start your application and enjoy

Reasumując... W zmiennej PATH mam ścieżkę do ..\oracle\ora92\bin oraz C:\instantclient gdzie znajduje się oci.dll i cała reszta potrzebnego stuff'u.

Reinstalacja Apache'a i PHP (ponownie wer. 2.2 oraz 5.3.0). W php.ini "zakomentowałem" wszystkie rozszerzenia, które nie są mi potrzebne.

Restart Apache'a i... To samo :( Błąd "Nie można odnaleźć określonej procedury" dla php_oci8.dll, php_oci8_11g.dll oraz php_pdo_oci.dll :/

Kończą mi się pomysły... Ktoś ma jeszcze jakąś fajną sugestię???

dzięki,
pzdr,
T.Tomasz J. edytował(a) ten post dnia 19.08.09 o godzinie 14:53
Tomasz J.

Tomasz J. Systems Engineer

Temat: [php_oci8.dll] - Nie można odnaleźć określonej procedury.

Hej...

Tymczasowo temat można uznać za zamknięty. Zainstalowałem Apache'a 2.0 i PHP4 i działa.
Pozostał mi tylko problem z innymi (choć podobnymi) nazwami funkcji, np zamiast oci_connect() stare oci_login(), ale chyba dam radę.

pzdr,
T.



Wyślij zaproszenie do