在 Mac OS X 上的 PHP 中启用 PostgreSQL 支持

2022-08-30 13:43:38

我很难让命令“pg_connect()”在我的Mac上正常工作。我目前正在编写一个PHP脚本(从控制台执行)来读取PostgreSQL数据库并通过电子邮件发送报告。

我已经进入我的文件并添加了php.ini

extension=pgsql.so

但是,我遇到了以下错误。

PHP 警告: PHP 启动: 无法加载动态库 '/usr/lib/php/extensions/no-debug-non-zts-20090626/php_pgsql.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/php_pgsql.so, 9): 在未知的第 0
行找不到图像 PHP 致命错误: 调用未定义的函数 pg_connect() 在...(blah 文件在这里)

运行时,我没有看到任何关于PostgreSQL的信息,那么我的问题是什么?phpinfo()


答案 1

与OS X捆绑在一起的PHP版本不包括PostgreSQL。您必须自己编译扩展。以下是一些说明:

  1. 查找您的 PHP 版本:。php -v
  2. 下载与您的版本匹配的 PHP 版本:.(此示例下载 PHP 5.3.3,但这必须与您的版本匹配)curl -O http://us.php.net/distributions/php-5.3.3.tar.gz
  3. 解压缩您下载的存档:tar -xzvf php-5.3.3.tar.gz
  4. 切换到 PostgreSQL 的扩展目录:cd php-5.3.3/ext/pgsql/
  5. 类型。phpize
  6. 类型。./configure
  7. 类型。make
  8. 类型。sudo make install
  9. 通过添加 将扩展名添加到您的文件。(您可能已经这样做了)php.iniextension=pgsql.so
  10. 重新启动 Apache。

OS X Mountain Lion 的更新Apple已从较新版本的XCode中删除,因此上述过程将在#5处失败。要解决此问题,请执行以下操作:autoconf

  1. 类型。/usr/bin/ruby -e "$(/usr/bin/curl -fksSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"
  2. 类型。sudo chown -R $USER /usr/local/Cellar
  3. 类型。brew update
  4. 类型。brew install autoconf

这应该安装并允许您使用上述说明安装模块。autoconf


答案 2

如果您使用home,则可以使用以下命令解决此问题,brew

brew install php55-pdo-pgsql

对于其他 php 版本,请使用以下方式搜索:

brew search pgsql


推荐