调用未定义的函数 pg_connect()

问题描述 投票:0回答:1

我正在 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 文件中得到的内容:

[2016 年 6 月 2 日星期四 15:28:15.595496] [mpm_prefork:通知] [pid 476] AH00169:捕获 SIGTERM,正在关闭 [Thu Jun 02 15:28:16.515774 2016] [so:警告] [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 行的未知中找不到图像 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 行的未知中找不到图像 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 行的未知中找不到图像 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 行的未知中找不到图像 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 行的未知中找不到图像 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 行的未知中找不到图像 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 行的未知中找不到图像 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 行的未知中找不到图像 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:通知] [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' [2016 年 6 月 2 日星期四 15:28:20.869683] [:error] [pid 674] [client 127.0.0.1:49594] PHP 致命错误:调用 未定义的函数 pg_connect() 中 /Library/WebServer/Documents/site/database.php 第 10 行

php macos apache postgresql osx-elcapitan
1个回答
0
投票

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

  1. 检查 ext 文件夹中是否有正确的文件:

    php_pgsql.so
    (如果您在 Windows 上运行,则为
    php_pgsql.dll

  2. 在您的

    extension=php_pdo_pgsql.dll
    中搜索行
    php.ini
    。如果没有找到,则添加它;如果有注释,则删除逗号

  3. 运行

    phpinfo()
    并检查扩展是否已启用

如果你找到了,就可以出发了

© www.soinside.com 2019 - 2024. All rights reserved.