2016-04-24 218 views
1

我想在我的Mac OSX上使用postgresql在Apache上运行。我使用自制软件管理我的所有开发功能,因此我更换了由apache提供的默认php版本并下载了一个自制软件版本,这部分工作非常好。问题是,当我想安装PostgreSQL扩展..在Mac OSX上使用apache安装postgresql

我已经这样做了:

  • 酿造安装PostgreSQL
  • 酿造安装php55 --with-PostgreSQL的
  • 冲泡安装php55-PDO -pgsql

,然后编辑/etc/apache2/httpd.conf文件通过的LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so更换LoadModule php5_module libexec/apache2/libphp5.so

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

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

可能的解决方法: - 首先安装所有的包是这样的:brew install postgresql php55 php55-pdo-pgsql - 然后brew reinstall 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

回答

2
  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。

+0

感谢您的回答,我在第二步找不到目录。它在/ usr/local/opt还是关闭了? –

+0

哦@ThomasCEDRINI。你可以通过使用梨实现2,并遵循这个[答案](http://stackoverflow.com/questions/61747/installing-pdo-drivers-for-postgresql-on-mac-using-zend-for-eclipse)。 – mokayode

+0

那么..我不明白什么事情..我刚刚完成'brew重新安装php55 --with-postgresql'后安装php5,php5-pdo-pgsql和postgresql和惊喜!有用 !我真的不明白为什么它没有之前 –