Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> connector od Oracle nie działa
czezz
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 24.07.2003

Ostrzeżenie: (10%)
X----


Chcę testowo podłączyć się do bazy Oracle przez PHP.
Pomyślałem, że należy zrobić to analogicznie do MySQL'a więc znalazłem taki connector. Dopisałem usera/hasło/hosta i SID... ale nie działa. W przeglądarce widzę pusta białą stronę.
Mogę prosić o jakąś podpowiedź co robię źle ?

  1. <?php
  2. if ($c = oci_connect("sys", "qaz123", "159.107.88.144/orcl")) {
  3.   echo "Successfully connected to Oracle.n";
  4.   oci_close($c);
  5. } else {
  6.   $err = oci_error();
  7.   echo "Oracle Connect Error " . $err['text'];
  8. }
  9. ?>



Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production (baza postawiona testowo)
Apache/2.2.11 (Unix) DAV/2 PHP/5.2.9 - zainstalowane na Slackware-current z binarek (apache i PHP)
Powód edycji: [erix] przeniosłem
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Trywialne, ale sprawdź, czy masz w phpinfo" title="Zobacz w manualu PHP" target="_manual odpowiednie rozszerzenie załadowane, i czy function_exists" title="Zobacz w manualu PHP" target="_manual zwraca true dla funkcji oci_*.
Go to the top of the page
+Quote Post
czezz
post
Post #3





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 24.07.2003

Ostrzeżenie: (10%)
X----


Jak wyświetlę phpinfo to na stronie nie ma słowa o "oci" (sprawdziłem find'em w przeglądarce)
Co do funkcji function_exists - wklepałem coś takiego do pliku x.php
  1. <?php
  2. if (function_exists('oci_*')) {
  3.    echo "functions are available.<br />\n";
  4. } else {
  5.    echo "functions are not available.<br />\n";
  6. }
  7.  
  8.  
  9. ?>

wyświetliło "functions are not available"... to chyba kiepsko ?
Co mam zrobić ?

Ten post edytował czezz 3.06.2009, 12:44:11
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Włączyć rozszerzenie? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
czezz
post
Post #5





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 24.07.2003

Ostrzeżenie: (10%)
X----


Nie, funkcja function_exists zadziałała... wyświetliło, że OCI nie ma.
Ale wieczorem posiedziałem i jeszcze raz przekompilowałem Apache/PHP i co ważne instantclient-basic oraz instantclient-sdk do Oracle.

PHPINFO() wyświetla już tyle:
  1. oci8
  2. OCI8 Support enabled
  3. Version 1.2.5
  4. Revision $Revision: 1.269.2.16.2.44 $
  5. Active Persistent Connections 0
  6. Active Connections 0
  7. Oracle Instant Client Version 10.2
  8. Temporary Lob support enabled
  9. Collections support enabled
  10.  
  11. Directive Local Value Master Value
  12. oci8.default_prefetch 10 10
  13. oci8.max_persistent -1 -1
  14. oci8.old_oci_close_semantics 0 0
  15. oci8.persistent_timeout -1 -1
  16. oci8.ping_interval 60 60
  17. oci8.privileged_connect Off Off
  18. oci8.statement_cache_size 20 20


Chociaż function_exists wciąż wyświetla, że jest oci_* brak.





[UPDATE]

W shell'u zrobiłem cos takiego:

  1. -bash-3.00# php /usr/local/apache2/htdocs/test.php
  2. Successfully connected to Oracle.n


Tzn. działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ... ale tylko w shell (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

kod do test.php
  1. <?php
  2. if ($c = oci_connect("sys", "qaz123", "159.107.88.144/orcl")) {
  3.  echo "Successfully connected to Oracle.n";
  4.  oci_close($c);
  5. } else {
  6.  $err = oci_error();
  7.  echo "Oracle Connect Error " . $err['text'];
  8. }
  9. ?>


Przez przeglądarkę wciąż mam komunikat [UPDATE - włączyłem w php.ini większą szczegółowość błędów]:

Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries in /usr/local/apache2/htdocs/test.php on line 12
Oracle Connect Error

Ten post edytował czezz 4.06.2009, 14:45:30
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Hmm, a obie instancje korzystają z tych samych plików php.ini?
Go to the top of the page
+Quote Post
czezz
post
Post #7





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 24.07.2003

Ostrzeżenie: (10%)
X----


W systemie znalazłem tylko 1 plik php.ini:
  1. -bash-3.00# find / -name php.ini
  2. /usr/local/apache2/conf/php.ini


Co masz na myśli 2 instancje ? W Oracle mam tylko jedna instancje ORCL.



[UPDATE]
Zrobiłem zmianę uprawnień i dodałem zmienne użytkownikowi, który uruchamia Apache.
Widać to pomogło trochę, bo teraz jak odpalę connector w przeglądarce to mam taki objaw:

  1. Warning: oci_connect() [function.oci-connect]: ORA-12154: TNS:could not resolve the connect identifier specified in /usr/local/apache2/htdocs/test.php on line 12
  2.  
  3. Notice: Undefined index: text in /usr/local/apache2/htdocs/test.php on line 17
  4. Oracle Connect Error


[UPDATE]
Udało się (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
W connectorze dodałem przy SID'zie adres localhost
  1. ($c = oci_connect("php", "qaz123", "localhost/orcl")


Successfully connected to Oracle (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował czezz 5.06.2009, 07:04:35
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.06.2026 - 23:50