[PHP/Firebird]Geen verbinding maken met database

Pagina: 1
Acties:
  • 387 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gerrit Jan
  • Registratie: September 2005
  • Laatst online: 18-09 21:19
Op stage hebben we een waar leerlingen zich kunnen inschijven voor keuze uren.
Dit systeem wordt vernieuwd met onderandere een webinterface zodat ze thuis ook zich kunnen inschijven (nu alleen nog maar op een vaste plek in school).
Maar we krijgen de webinterface niet aan de praat en ook met de ondersteuning van de maker heeft niet echt geholpen (helemaal niet) ook google heeft niet geholpen.

Dit is het probleem:
Php scripts kunnen niet verbinden met de database (interbase/firebird).
Ik krijg de volgende melding:

Warning: ibase_connect() [function.ibase-connect]: Unable to complete network request to host "127.0.0.1". Failed to establish a connection. Permission denied in /xxx/xxx/xxx/firebirdcheck.php on line 3

De database draait wel want met iboconsole kunnen we er wel in komen, ook hebben we als host al verschillende dingen geprobeerd: 127.0.0.1,localhost,Extern ip adres (82.94.xxx.xxx) maar ook dit wil niet helpen.
Ook de poort hebben we opengezet in de firewall en ook de extension zit in php want dit staat bij phpinfo:

interbase

Firebird/InterBase Support dynamic
Compile-time Client Library VersionFirebird API version 15
Run-time Client Library VersionLI-V6.3.2.4731 Firebird 1.5


We zijn al een poos aan het proberen maar het wil niet lukken.
Wat specs over de server
Fedora core 4
Apache 2.0.54 (Fedora)
Php 5.0.4

Waar gaat het fout met onze server (er van uit gaande dat het script goed is en normaal functioneerd)?

Met vriendelijke groet,
Gerrit Jan

Acties:
  • 0 Henk 'm!

  • sTeVuu
  • Registratie: Oktober 2005
  • Laatst online: 08-08-2023
Is de serversoftware opgestart als service?
Zoja, heeft deze permissies hiervoor (de gebruiker waaronder de service start)?

Ik zie het hier vaak genoeg foutgaan.
Natuurlijk 'tzelfde als het als 'normale' applicatie draait, maar bij service zit het iets dieper verborgen, waardoor het vaker over het hoofd gezien word)

[ Voor 26% gewijzigd door sTeVuu op 03-11-2005 20:28 ]


Acties:
  • 0 Henk 'm!

  • lordsnow
  • Registratie: Maart 2000
  • Laatst online: 21:07

lordsnow

I know nothing

Permission denied in /xxx/xxx/xxx/firebirdcheck.php on line 3

Dan is de vraag natuurlijk: wat staat er in het bestand firebirdcheck.php op lijn 3?

[ Voor 12% gewijzigd door lordsnow op 03-11-2005 20:35 ]


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Heb je ook gezocht op de melding? Je komt vrij snel bij de PHP-manual uit:
With php5 on Windows i couldnt connect to a firebird database with following error :

Warning: ibase_connect(): Unable to complete network request to host "localhost"
. Failed to locate host machine. Undefined service gds_db/tcp. in C:\\wamp\\php\\ibase.php on line 5

the connect command was "$dbh = ibase_connect ("localhost:path_to_file.fdb", $username, $password);"

The solution is to insert the line
gds_db 3050/tcp #firebird Database
into the windows services file %WINDIR%\\system32\\drivers\\etc\\services

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

GlowMouse schreef op donderdag 03 november 2005 @ 20:43:
Heb je ook gezocht op de melding? Je komt vrij snel bij de PHP-manual uit:

[...]
de TS geeft toch heel duidelijk aan dat hij werkt met Fedora core 4, en gij komt hier af met iets van Windows???

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • Gerrit Jan
  • Registratie: September 2005
  • Laatst online: 18-09 21:19
sTeVuu schreef op donderdag 03 november 2005 @ 20:27:
Is de serversoftware opgestart als service?
Zoja, heeft deze permissies hiervoor (de gebruiker waaronder de service start)?

Ik zie het hier vaak genoeg foutgaan.
Natuurlijk 'tzelfde als het als 'normale' applicatie draait, maar bij service zit het iets dieper verborgen, waardoor het vaker over het hoofd gezien word)
@STeVuu zou je het iets duidelijker uitkunnen leggen? (of heb je een link waar ik het kan vinden).
edit:De service is gestart als root volgens mij en die heeft ook alle rechten in de www dir
lordsnow schreef op donderdag 03 november 2005 @ 20:34:
Permission denied in /xxx/xxx/xxx/firebirdcheck.php on line 3


Dan is de vraag natuurlijk: wat staat er in het bestand firebirdcheck.php op lijn 3?
@lordsnow:
dit is de code die ik gebruikt heb
PHP:
1
2
3
4
5
6
7
8
9
10
$host = 'localhost:/path/to/your.gdb';

   $dbh = ibase_connect($host, $username, $password);
   $stmt = 'SELECT * FROM tblname';
   $sth = ibase_query($dbh, $stmt);
   while ($row = ibase_fetch_object($sth)) {
       echo $row->email, "\n";
   }
   ibase_free_result($sth);
   ibase_close($dbh);

deze komt van nl3.php.net/ibase_connect en line 3 is dus $dbh = ibase_connect($host, $username, $password);
GlowMouse schreef op donderdag 03 november 2005 @ 20:43:
Heb je ook gezocht op de melding? Je komt vrij snel bij de PHP-manual uit:
@GlowMouse inderdaad heeft snake903 gelijk en ook op de Fedora server hebben we die poort open gezet

[ Voor 57% gewijzigd door Gerrit Jan op 03-11-2005 21:08 ]


Acties:
  • 0 Henk 'm!

  • lordsnow
  • Registratie: Maart 2000
  • Laatst online: 21:07

lordsnow

I know nothing

Domme vraag mischien, maar aangezien je de host al gecontroleerd hebt - weet je zeker dat de username en password correct zijn voor de database die je probeerd te benaderen?

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
snake903 schreef op donderdag 03 november 2005 @ 20:46:
[...]
de TS geeft toch heel duidelijk aan dat hij werkt met Fedora core 4, en gij komt hier af met iets van Windows???
En linux heeft geen /etc/services file?

Acties:
  • 0 Henk 'm!

  • Gerrit Jan
  • Registratie: September 2005
  • Laatst online: 18-09 21:19
lordsnow schreef op donderdag 03 november 2005 @ 21:05:
Domme vraag mischien, maar aangezien je de host al gecontroleerd hebt - weet je zeker dat de username en password correct zijn voor de database die je probeerd te benaderen?
Ja
GlowMouse schreef op donderdag 03 november 2005 @ 21:07:
[...]

En linux heeft geen /etc/services file?
Zullen we morgen eens proberen

Nog effe een bewerking
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$strconnect = 'localhost:/opt/firebird/kwtcheck.fdb';

if (!($db=ibase_connect($strconnect, 'sysdba', 'xxxxxx', 'ISO8859_1', 0, 1)))
   die('Could not connect: ' .  ibase_errmsg());

  $sql  = "SELECT PO_NUMBER, ORDER_STATUS, ITEM_TYPE FROM SALES"; 
  $cursor = ibase_query($sql);
  $row_array = ibase_fetch_row($cursor);
   
  print_r($row_array);

  ibase_free_result($cursor);
  ibase_close($db);

Het vorige script wat ik gegeven heb is niet juist

[ Voor 6% gewijzigd door Gerrit Jan op 03-11-2005 21:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Een idee...

Is de database geopend door een andere applicatie?
Wordt de database door PHP/Apache geopend via Firebird embedded library?
Mag Apache/PHP wel connecten naar poort 3050? (probeer anders eens met PHP een socket connectie te openen naar poort 3050)

[ Voor 31% gewijzigd door Verwijderd op 03-11-2005 22:10 ]


Acties:
  • 0 Henk 'm!

  • Gerrit Jan
  • Registratie: September 2005
  • Laatst online: 18-09 21:19
Verwijderd schreef op donderdag 03 november 2005 @ 22:08:
Een idee...

Is de database geopend door een andere applicatie?
Wordt de database door PHP/Apache geopend via Firebird embedded library?
Mag Apache/PHP wel connecten naar poort 3050? (probeer anders eens met PHP een socket connectie te openen naar poort 3050)
Ik kan verbinden met dit script (komt van php.net):
PHP:
1
2
3
4
5
6
7
8
9
<?php
$fp = fsockopen("82.xx.xx.xxx", 3050, $errno, $errstr, 30);
if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
   echo 'Gelukt!';
   fclose($fp);
}
?>

Ik krijg dus Gelukt te zien.

[ Voor 18% gewijzigd door Gerrit Jan op 04-11-2005 08:40 ]


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Ik vind "Permission denied" toch vrij helder hoor.

Je zegt dat de username/password combinatie klopt. Maar mag deze user ook inloggen vanaf de webserver. Is het geen lokale user?

Acties:
  • 0 Henk 'm!

  • Gerrit Jan
  • Registratie: September 2005
  • Laatst online: 18-09 21:19
frickY schreef op vrijdag 04 november 2005 @ 08:47:
Ik vind "Permission denied" toch vrij helder hoor.

Je zegt dat de username/password combinatie klopt. Maar mag deze user ook inloggen vanaf de webserver. Is het geen lokale user?
We kunnen met IBOConsole vanaf een werkstation verbinding maken met de zelfde gegevens als dat we gebruiken in het script.
Het sctipt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<? 
$strconnect = 'localhost:/opt/firebird/kwtcheck.fdb'; 

if (!($db=ibase_connect($strconnect, 'sysdba', 'xxxxxx', 'ISO8859_1', 0, 1))) 
   die('Could not connect: ' .  ibase_errmsg()); 

  $sql  = "SELECT PO_NUMBER, ORDER_STATUS, ITEM_TYPE FROM SALES";  
  $cursor = ibase_query($sql); 
  $row_array = ibase_fetch_row($cursor); 
    
  print_r($row_array); 

  ibase_free_result($cursor); 
  ibase_close($db); 
?>

Draaien we ook lokaal (alles zit op 1 server).

Acties:
  • 0 Henk 'm!

  • Gerrit Jan
  • Registratie: September 2005
  • Laatst online: 18-09 21:19
In etc/services staat de regel gds_db 3050/tcp #Firebird SQL database remoteprotocol.
dus daar ligt het ook niet aan (dit staat onder local services)

iemand nog iets?

mvg
gerrit jan

Acties:
  • 0 Henk 'm!

Verwijderd

En als je alleen host/database, gebruikersnaam en wachtwoord opgeeft?

Acties:
  • 0 Henk 'm!

  • Gerrit Jan
  • Registratie: September 2005
  • Laatst online: 18-09 21:19
Verwijderd schreef op vrijdag 04 november 2005 @ 12:37:
[...]

En als je alleen host/database, gebruikersnaam en wachtwoord opgeeft?
PHP:
1
2
3
4
5
6
7
8
9
<?php
$strconnect = 'localhost:/opt/firebird/kwtcheck.fdb';
if (!($db=ibase_connect($strconnect, 'sysdba', 'yourpass', 'ISO8859_1', 0, 1)))
   die('Could not connect: ' .  ibase_errmsg());
else{
        die('Gelukt!')
}

?>

Dit heb ik gebruikt en de zelfde error blijft.

Acties:
  • 0 Henk 'm!

  • Gerrit Jan
  • Registratie: September 2005
  • Laatst online: 18-09 21:19
Kikje
Pagina: 1