PHP + Firebird telepítése IIS-en, ellenörzés
2006-10-09T11:14:04+02:00
2006-10-11T12:26:23+02:00
2022-07-20T00:11:33+02:00
nova76
Feltettem a gépemre a PHP-t, a Firebirdet és az IIS-t.

az IIS-ben létrehoztam egy új virtuális könyvtárat, majd a tulajdonságok/kezdőkönyvtár/konfigurációnál beállítottam a PHP5Isapi.dll-t a .php fájlokra.
IBExperttel kipróbáltam, az adatbázis kapcsolat müködik. A php iniben beállítottam az Extensions_dir-t és engedélyeztem a extension=php_interbase.dll sort.

Az index.php fájl elindul szépen a böngészömben, azonban a

$connection = ibase_connect('localhost:c:\myfdb.fdb', 'SYSDBA', 'masterkey') or die('sql error:'.ibase_errmsg());
sorra azt írja, hogy

"Fatal error: Call to undefined function ibase_connect() in c:\Myweb\index.php on line 15"

Első gondolatomban az Extensions_dir sort hibáztattam. De nem, mert ugyanezt megcsináltam még régebben egy másik gépen is, és onnan másoltam át az egész PHP könyvtárat úgy ahogy van (inistül, könyvtárastul, könyvtárnevestül, meg minden). Tehát nem a PHP résszel van a gond, hanem valami az IIS-sel/windowssal van. Azonban a PHP egyéb funkció futnak, mert például egy könyvtár/fájl listát simán lekérhetek:


<?php

function dirlist($konyvtar)
{
$kvt = opendir( $konyvtar );
while (gettype($fajl = readdir( $kvt ))!="boolean")
{
if ( is_dir( "$konyvtar/$fajl" ) )
print ("Dir");
print "$fajl<br>\n";
}
closedir( $kvt );
}

dirlist("c:/");

?>

Ez müködik.

Próbáltam utánanézni a problémámnak:
http://au2.php.net/manual/hu/install.windows.extensions.php
itt írta valaki, hogy futtassam a következő regfájlt:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] "IniFilePath"="C:\\PHP"
nem jött be.
Próbáltam beírni a kódomba a következőt, hátha a dll mégsem töltödik be az extension könyvtárból automatikusan:
dl("c:\PHP\ext\php^interbase.dll");
hibaüzenet:
"Warning: dl() [function.dl]: Not supported in multithreaded Web servers - use extension=c:\PHP\ext\php^interbase.dll in your php.ini in c:\Myweb\index.php on line 14"

próbáltam lekérdezni így is:

$a=extension_loaded("php_interbase"); if($a == False) { PRINT('False') ;} elseif($a == True) { PRINT('True') ;} else { PRINT('???'); };

Az eredmény false, de abban sem vagyok biztos, hogy így kell használni ezt a függvényt...

Hogyan lehetne valahogy megbizonyosodni arról, hogy egyáltalán betöltödött-e a php_interbase.dll fájl, avagy nem??? És ha nem akkor miért nem???
Mutasd a teljes hozzászólást!
Biztos, hogy nem töltötte be (vagy nincs benne ibase_connect() fgv - ami azért nem valószínű) hisz erre utal a hibaüzenet.
Én a mysql libbel is ugyan így jártam. Végül nekem a megoldás a windows\system32-be bemásoltam a dll-t és úgy hajlandó volt elfogadni.
(kísérletezgetés közben pedig néha restartoltasd az IIS-t, mert csodákra képes)
Mutasd a teljes hozzászólást!

  • Próbáltam már mindenhová betenni a php_interbase.dll fájlt mégsem megy. Ha felteszek egy apacheot, akkor meg müködik az egész. Annál megadható, hogy hol található a PHP.ini.
    Viszont nekem IIS-sel kellene müködnie a szervernek.
    Vagy a kettő együttmüködése lehetséges????
    Mutasd a teljes hozzászólást!
  • persze hogy lehet.
    Hol van a php.ini-d? (ha jól emléxem akkor a C:\Windows könyvtárban kellene lennie ...)
    Mutasd a teljes hozzászólást!
  • Már kezdtem örülni, amikor olvastam, hogy a windows könyvtárban kell lennie a PHP.ini fájlnak. De ezen a gépen, amelyik elött ülök müködik a php+interbase, viszont a windows könyvtárban nincs PHP.ini. Azért majd kipróbálom az ominózus gépen. Hátha...

    Szóval szerinted az Apache és az IIS tud együtt müködni egy gépen? Baj az, hogy van egy ASP service programunk, ami csak IIS-sel megy, tehát az IIS mindenképp kell. Így az lett volna a kézenfekvő, hogy a webserverünk is IIS legyen. Lévén, hogy az XP/win2000-hez ingyen adják.
    Mutasd a teljes hozzászólást!
  • Persze hogy tud. Egyetlen rákfenéje, hogy az egyiknek fel kell adnia a default 80-as portot, így minden címben portszámot kell írni a másikhoz.
    Mutasd a teljes hozzászólást!
  • Végül egy IIS reinstall megoldotta a problémám. Csak azt nem értem, hogy 3 gépen sem mentek a PHP kiterjesztései. Majd mikor mindhárom gépen ujrainstalláltam az IIS-t, már müködtek. Ki érti ezt...

    Tiéd a pont a segítségért!
    Mutasd a teljes hozzászólást!
abcd