ugrás a tartalomhoz

Nem töltődik be a php_ldap.dll

paal · 2008. Júl. 23. (Sze), 16.58
Sziasztok!

Van egy AppServ 2.5.8 XP-SP2-re telepített szerverem.

Engedélyezve van a kiterjesztések mappája:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:\var\php5\ext"


valamint az ldap modul is (többek közt):
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
extension=php_gd2.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_sockets.dll


Az a szép, hogy CSAK az ldap modult nem tudja betölteni (pedig a fájlrendszerben ott a dll), az összes többit igen:
[Wed Jul 23 16:52:30 2008] [notice] Parent: Received restart signal -- Restarting the server.
[Wed Jul 23 16:52:30 2008] [notice] Child 4032: Exit event signaled. Child process is ending.
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\\var\\php5\\ext\\php_ldap.dll' - A megadott modul nem tal\xe1lhat\xf3.\r\n in Unknown on line 0
[Wed Jul 23 16:52:30 2008] [notice] Apache/2.2.4 (Win32) PHP/5.2.1 configured -- resuming normal operations
[Wed Jul 23 16:52:30 2008] [notice] Server built: Jan  9 2007 23:17:20
[Wed Jul 23 16:52:30 2008] [notice] Parent: Created child process 1636
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\\var\\php5\\ext\\php_ldap.dll' - A megadott modul nem tal\xe1lhat\xf3.\r\n in Unknown on line 0
[Wed Jul 23 16:52:31 2008] [notice] Child 1636: Child process is running
[Wed Jul 23 16:52:31 2008] [notice] Child 4032: Released the start mutex
[Wed Jul 23 16:52:31 2008] [notice] Child 1636: Acquired the start mutex.
[Wed Jul 23 16:52:31 2008] [notice] Child 1636: Starting 64 worker threads.
[Wed Jul 23 16:52:32 2008] [notice] Child 4032: Waiting for 64 worker threads to exit.
[Wed Jul 23 16:52:32 2008] [notice] Child 4032: All worker threads have exited.
[Wed Jul 23 16:52:32 2008] [notice] Child 4032: Child process is exiting
[Wed Jul 23 16:52:32 2008] [notice] Child 1636: Starting thread to listen on port 80.
Megpróbáltam kivenni pl. a php_mbstring.dll modult, ami ment is (vagyis nem működött). Ha kikommentezem az php_ldap.dll-t, akkor azt sem próbálja meg betölteni.
Leszedtem a php.net-ről ennek a php verzióban lébő php_ldap.dll-t, de azzal sem tud mit kezdeni. Mi lehet a gond?

Vagyis az ext mappában lévő összes dll-t be tudja tölteni, csak az ldap-ost nem.

Köszi, Pali
 
1

Hozzá való?

Poetro · 2008. Júl. 24. (Cs), 00.09
Biztosan ahhoz a PHP verzióhoz tartozik a DLL, és esetleg nincsennek függőségei annak a DLLnek?
2

Függőségek

Poetro · 2008. Júl. 24. (Cs), 00.15
php_ldap.dll - PHP <= 4.2.0 requires libsasl.dll (bundled), PHP >= 4.3.0 requires libeay32.dll, ssleay32.dll (bundled)
3

Téma

nanofish · 2008. Júl. 24. (Cs), 02.26
Nézd meg a php_ldap.dll-t valami windowsos dll dependency checkerrel, pl: http://www.dependencywalker.com/. Szerintem az kideríti, hogy mi hiányzik.
4

Még mindig nem...

paal · 2008. Júl. 24. (Cs), 09.57
Üdv,

A libsasl.dll kivételévelk a másik kettő meg volt. Ezt leszedtem, bemásoltam. De még mindig nem indult.
Nanofish tanácsának megfelelően megnéztem Dependency Walker-rel. Hiányolt még egy dwmapi.dll-t. Leszedtem, bemásoltam a windows/system könyvtárba. A DW már csak a következőt adja:
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

de továbbra sem tudja az Apache betölteni a modult (hibaüzenet u.az).

Egyéb 5let? Tudom, cseréljek Linux-ra... ;)

Köszi, Pali
5

Téma

nanofish · 2008. Júl. 24. (Cs), 14.34
Nálam itt megáll a tudomány. Valamelyik dll a rendszereden nem ugyanolyan verzió, mint amin az adott PHP-t fordították. Ez lehet valamilyen windows rendszerfájl is akár, pl. nem ugyanaz a service pack van a rendszereden, mint az AppServ-es fejlesztőknek.

Esetleg próbáld 2.5.9-re frissíteni az AppServ-et, vagy próbáld frissíteni a windowst SP3-ra. Még az is működhet, ha egy működő 5.x-es PHP-vel felülírod az AppServ-es PHP-t.

Csak találgatni tudok. Az említett dwmapi.dll környékén lehet egyébként a probléma. Ez egy Vista-s fájl, amihez XP-n az IE7 van linkelve, de a hiánya az IE7-nél nem jelent problémát XP rendszereken (a delay-load miatt). El sem tudom képzelni, hogy a php_ldap modul hogy jut el odáig, hogy szükséges a számára... Esetleg kipróbálhatod egy IE7 nélküli windowson is.

Szóval ezek szerint ne Linux-ra, hanem Vista-ra válts, azon tutira menne :))))...
6

Fejlesztés

janoszen · 2008. Júl. 24. (Cs), 14.46
Sokszor el szoktam mondani, hogy olyan környezetben érdemes a szoftvereket futtatni, amilyenre kitalálták. Ergó, Apacheot, PHP-t Linuxon. IIS-t, ASP-t Windowson. Ha nem így teszel, csak ilyen szívásokba ütközöl.

Ha számodra kényelmesebb Windowson fejleszteni, tégy úgy. Kergess föl egy virtuális gépbe egy Linuxot és azon futtasd az Apacheot. A tesztkörnyezetnek úgyis illik az igazihoz hasonlítania.

Ami a Vistát illeti, nekem a heti 1 kékhalál nekem nem volt annyira szimpatikus, az Apacheot meg nem sikerült elindítanom rajta (igaz, nem is erölködtem sokat).