php - 在 Mac OSX 上使用 apache 安装 postgresql

标签 php macos apache postgresql homebrew

我正在尝试让 postgresql 在我的 Mac OSX 上与 apache 一起工作。我使用 homebrew 来管理我所有的开发功能,因此我替换了 apache 提供的默认 php 版本并下载了 homebrew 版本,这部分工作得很好。问题是当我想安装 postgresql 扩展时..

我已经做到了:

  • brew 安装 postgresql
  • brew 安装 php55 --with-postgresql
  • brew 安装 php55-pdo-pgsql

然后编辑/etc/apache2/httpd.conf 文件,将 LoadModule php5_module libexec/apache2/libphp5.so 替换为 LoadModule php5_module/usr/local/opt/php55/libexec/apache2/libphp5.so.

然后,当我执行 phpinfo() 命令时,我看不到 PDO 部分中安装的 postgresql 扩展。我只有这个: PDO config with phpinfo()

如果有人可以帮忙;)谢谢大家!

可能的解决方案: - 首先安装所有数据包,如下所示:brew install postgresql php55 php55-pdo-pgsql - 然后brew重新安装php55 --with-postgresql

它起作用了..我以前这样做过(可能顺序不同)但它不起作用,我不知道为什么它现在起作用了!

解决方案

当您查看 phpinfo() 结果时,您应该看到类似于已加载配置文件和*扫描此目录以获取其他 .ini 文件*的内容。问题是,您安装的每个扩展都有一个全局 php.ini 文件和一个 .ini 文件。 *扫描此目录以查找其他 .ini 文件 * 的值是扩展名的 .ini 文件必须所在的位置。所以只需要创建一个 ext-pdo_pgsql.ini 并使用 extension="path to your/pdo_pgsql.so" 加载扩展(我的是 /usr/local/opt/php55-pdo -pgsql/pdo_pgsql.so)。

安装只需要 brew install php55 php55-pdo-pgsql postgresql

最佳答案

  1. 运行php -m | grep pgsql了解 pgsql 是否存在

  2. 按照此 answer 中的示例进行操作。如果您对此处第 4 条对应的说明有疑问,请跳转至注释。

  3. 输入./configure --with-pdo-pgsql="path to postgres"并返回。我的在"/usr/local/bin" .

  4. 输入make && sudo make install然后返回。

  5. 将扩展名添加到 php.inisudo echo "extension=pdo_pgsql.so" >> path to php.ini 。使用 php -i | grep php.ini 查找路径

  6. 应该安装 postgres 的 pdo 驱动程序

注意

有可能sudo make install不起作用。这可能是由于名为 csrutil 的 OSX 功能所致。 。重新启动计算机并按住 cmd + R 。从恢复界面运行 csrutil disable从终端。

再次重新启动并执行make install 。重复与上一段相同的过程,通过运行 csrutil enable 启用 csrutil在恢复界面的终端。

关于php - 在 Mac OSX 上使用 apache 安装 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824522/

相关文章:

javascript - Jquery每个函数,计算重复项

php - 将程序代码转换为 Blob 的类

java - macbook air 501 是 64 位还是 32 位?我应该选择哪个版本的 Eclipse?

python - 改变 Macbook(Pro) 键盘背光的亮度

php - 如何将端口 80 的 Node.js 本地主机与端口 90 的 apache mysql 连接?

php - 将动态 html 表中的数据添加到数据库

PHP Composer - 设置供应商目录

xcode - Bundle 无法从 XCode 中找到复制的框架

php - 使用浏览器时Redis不工作

java - Apache 代理隐藏了 HttpServletRequest 对象的远程 IP 地址