调用未定义的函数pg_connect()

时间:2016-06-02 13:00:28

标签: php macos apache postgresql osx-elcapitan

我在OSX El Capitan和Apache服务器上运行最新版本的PHP(目前为5.​​6.22)。

我正在尝试使用PostgreSQL数据库,实际上,昨天已经工作了但是在我用一个默认的覆盖httpd.conf文件之后(我猜这是问题)我收到了这条消息:

  

在......

中调用未定义的函数pg_connect()

问题是我没有更改php.ini文件。如果我运行phpinfo();我得到了配置文件的etc / php.ini。所以我很肯定Apache选择了正确的php.ini文件,并加载了正确的扩展名:

extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

什么可能导致此错误?此外,我已经安装了pgAdmin 3,我可以在已创建的数据库上成功运行SQL查询(我昨天用过这个我正在处理的网站)。

编辑:

当我重新启动Apache服务器并尝试运行该特定页面(调用pg_connect)时,这是我在error_log文件中得到的:

  

[Thu Jun 02 15:28:15.595496 2016] [mpm_prefork:notice] [pid 476]   AH00169:抓住SIGTERM,关闭[Thu Jun 02 15:28:16.515774   2016] [so:warn] [pid 670] AH01574:模块php5_module已经存在   加载,跳过PHP警告:PHP启动:无法加载动态   图书馆   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_curl.dll' -   dlopen的(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_curl.dll,   9):在第0行的Unknown中找不到图像PHP警告:PHP启动:   无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_mbstring.dll' -   dlopen的(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_mbstring.dll,   9):在第0行的Unknown中找不到图像PHP警告:PHP启动:   无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_mysqli.dll' -   dlopen的(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_mysqli.dll,   9):在第0行的Unknown中找不到图像PHP警告:PHP启动:   无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_pdo_pgsql.dll'    - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_pdo_pgsql.dll,   9):在第0行的Unknown中找不到图像PHP警告:PHP启动:   无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_pdo_sqlite.dll'    - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_pdo_sqlite.dll,   9):在第0行的Unknown中找不到图像PHP警告:PHP启动:   无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_pgsql.dll' -   dlopen的(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_pgsql.dll,   9):在第0行的Unknown中找不到图像PHP警告:PHP启动:   无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_soap.dll' -   dlopen的(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_soap.dll,   9):在第0行的Unknown中找不到图像PHP警告:PHP启动:   无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_sockets.dll' -   dlopen的(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_sockets.dll,   9):在第0行的Unknown中找不到图像PHP警告:PHP启动:   无法加载动态库   '/usr/lib/php/extensions/no-debug-non-zts-20121212/php_sqlite3.dll' -   dlopen的(/usr/lib/php/extensions/no-debug-non-zts-20121212/php_sqlite3.dll,   9):在第0行的未知中找不到图像[Thu Jun 02 15:28:16.615703   2016] [mpm_prefork:notice] [pid 670] AH00163:Apache / 2.4.18(Unix)   配置PHP / 5.5.31 - 恢复正常操作[Thu Jun 02   15:28:16.615786 2016] [核心:通知] [pid 670] AH00094:命令行:   '/ usr / sbin / httpd -D FOREGROUND'[Thu Jun 02 15:28:20.869683 2016]   [:error] [pid 674] [client 127.0.0.1:49594] PHP致命错误:致电   未定义的函数pg_connect()in   /Library/WebServer/Documents/site/database.php在第10行

1 个答案:

答案 0 :(得分:0)

如果未安装pgsql扩展或与当前服务器版本(x86 / x64)不兼容,则会发生这种情况。

  1. 检查 ext 文件夹中是否包含正确的文件:php_pgsql.so(如果您在Windows上运行,则为php_pgsql.dll

  2. extension=php_pdo_pgsql.dll中搜索php.ini行。然后只是添加它,如果没有找到或删除逗号,如果其注释

  3. 运行phpinfo()并检查扩展程序是否已启用

  4. 如果你找到它,那就好了