PHP not loading php_pgsql.dll on Windows

后端 未结 17 1660
面向向阳花
面向向阳花 2020-12-02 08:46

PHP 5.2.8 is refusing to load php_pgsql.dll, with the following error:

Warning: PHP Startup: Unable to load dynamic library \'D:\\PHP\\ext\\

相关标签:
17条回答
  • 2020-12-02 09:37

    The problem is with the related libraries used by php_pgsql.dll - like libpq.dll, the OpenSLL ones etc. You need to find them (from the zip distribution of Postgres, from an installed psqlODBC driver etc.) and put them in a folder which is in the PATH. As for the list of all DLLs - use MS Dependency Walker (depends.exe).

    Another important bit - Apache (if you use Apache that is) has its own set of OpenSSL DLLs. Replace or just rename those so to not clash with those from the Postgres distribution.

    0 讨论(0)
  • 2020-12-02 09:37

    Specifically for WAMP server setups here, you need to copy the libpg.dll file into "C:\wamp\bin\apache\Apache2.2.21\bin\", or similar. Copying it to ..\php\ext\ and also adjusting the PATH env variable simply wasn't enough (if effective at all).

    Original answer sourced here: http://www.wampserver.com/phorum/read.php?2,40270,57932

    Specifically for XAMPP setups, I found that I only needed to copy the libpg.dll file into ..\php\ext\ directory.

    0 讨论(0)
  • 2020-12-02 09:38

    You need to copy libpq.dll from wamp\bin\php\php5.3.5 to wamp\bin\apache\Apache2.2.17\bin. Again restart the Wamp Server. By now we are done with the php configuration. Next we will install phpPgAdmin and use it.

    0 讨论(0)
  • 2020-12-02 09:38

    Just a thought -- make sure that the Postgres binaries are in the SYSTEM path, not your user-specific path. As it happens, that was the problem on my machine. :-)

    Edit:

    Come to think of it, that explains why Dependency Walker would report all A-OK but the problem would still persist -- you run DW under your own account, while Apache runs as SYSTEM, and hence won't have your personal PATH settings available.

    0 讨论(0)
  • 2020-12-02 09:39

    You have to add the following lines to you httpd.conf file:

    PHPIniDir "c:/PHP/"
    Loadfile "C:\php\php5ts.dll"
    
    Loadfile "C:\php\libpq.dll"
    
    LoadModule php5_module "c:/PHP/php5apache2_2.dll"
    

    Source: http://www.php.net/manual/en/pgsql.setup.php

    0 讨论(0)
提交回复
热议问题