我正在尝试让 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 扩展。我只有这个:
如果有人可以帮忙;)谢谢大家!
可能的解决方案:
- 首先安装所有数据包,如下所示: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
最佳答案
运行
php -m | grep pgsql
了解 pgsql 是否存在按照此 answer 中的示例进行操作。如果您对此处第 4 条对应的说明有疑问,请跳转至注释。
输入
./configure --with-pdo-pgsql="path to postgres"
并返回。我的在"/usr/local/bin"
.输入
make && sudo make install
然后返回。将扩展名添加到
php.ini
与sudo echo "extension=pdo_pgsql.so" >> path to php.ini
。使用php -i | grep php.ini
查找路径应该安装 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/