我正在尝试使用apache在我的Mac OSX上使用postgresql。我使用自制软件来管理我的所有开发功能,所以我替换了apache提供的默认php版本并下载了自制版本,这部分工作得很好。问题是当我想安装postgresql扩展时..
我做到了:
然后编辑/etc/apache2/httpd.conf文件,用LoadModule LoadModule php5_module libexec/apache2/libphp5.so
替换php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
。
然后当我执行phpinfo()命令时,我无法看到PDO部分中安装的postgresql扩展。我只有这个:
如果有人可以提供帮助;)谢谢大家!
可能的解决方案:
- 首先安装所有这样的数据包: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
答案 0 :(得分:2)
运行php -m | grep pgsql
以了解pgsql是否存在
按照此answer中的示例操作。如果您对此处的指令有问题,请跳转到注释。
输入./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
可能无法正常工作。这可能是由于OSX功能称为csrutil
。重新启动计算机并按住cmd + R
。从恢复接口运行csrutil disable
终端。
再次重新启动并执行make install
。重复上述段落中的相同过程,通过在恢复界面的终端上运行csrutil enable
来启用csrutil。