- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我决定将我的 mac 升级到 Yosemite,但现在 Postgres 不工作了。
这是我的环境
apachectl -v
Server version: Apache/2.4.9 (Unix)
Server built: Sep 9 2014 14:48:20
php -v
PHP 5.6.2 (cli) (built: Oct 24 2014 15:50:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
PostgreSQL 9.3
我尝试做的事情:
<强>1。使用 brew 安装
brew tap josegonzalez/php
brew install php56 --with-apache --with-mysql --with-intl --with-pgsql=/Library/PostgreSQL/9.3/
brew link --overwrite php56
启用扩展
sudo nano /usr/local/etc/php/5.6/php.ini
并添加
extension=pdo_pgsql.so
sudo apachectl restart
<强>2。手动编译
sudo pecl download pdo_pgsql
sudo tar xzf PDO_PGSQL-1.0.2.tgz
sudo cd PDO_PGSQL-1.0.2
sudo phpize
sudo ./configure --with-pgsql=/Library/PostgreSQL/9.3/
sudo make
sudo make -j5 test
sudo make -j5 install
<强>3。 phpbrew安装
sudo phpbrew install --mirror http://br1.php.net 5.6.2 +pdo+pgsql=/Library/PostgreSQL/9.3/bin/
当我尝试使用这个文件时,它肯定不起作用:
<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
$host = "host=127.0.0.1";
$port = "port=5432";
$dbname = "dbname=peajetron";
$credentials = "user=peajetron password=peajetron";
$db = pg_connect( "$host $port $dbname $credentials" ) or die('Could not connect');;
if(!$db){
echo "Error : Unable to open database\n";
} else {
echo "Opened database successfully\n";
}
?>
当我尝试这段代码时,我得到了同样的错误:
Fatal error: Call to undefined function pg_connect() in /Library/WebServer/Documents/testConnection.php on line 10
我不知道我做错了什么。谁能帮帮我?
更新:
根据 phpinfo
我在 /etc/php.ini
中有 php.ini
根据 php 帮助我运行这个命令
php -c /etc/php.ini
我有以下错误:
PHP Warning: PHP Startup: Unable to load dynamic library
'/usr/local/Cellar/php56/5.6.2/lib/php/extensions/no-debug-non-zts-20131226/php_pdo_pgsql.so'
- dlopen(/usr/local/Cellar/php56/5.6.2/lib/php/extensions/no-debug-non-zts-20131226
/php_pdo_pgsql.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library
'/usr/local/Cellar/php56/5.6.2/lib/php/extensions/no-debug-non-zts-20131226/php_pgsql.so'
- dlopen(/usr/local/Cellar/php56/5.6.2/lib/php/extensions/no-debug-non-zts-20131226/php_pgsql.so,
9): image not found in Unknown on line 0
解决方案
根据这个 post,我卸载了所有并重新安装了所有
最佳答案
您安装了两个 PHP 副本。 Mac OS X 附带安装在 /usr/bin/php
的 PHP 副本。当您使用 homebrew
包管理器时,它会在 /usr/local/Cellar
中安装包,然后将它们符号链接(symbolic link)(在适当的时候)到 /usr/local/bin
。您可以通过键入 /usr/bin/php -v
和 /usr/local/bin/php -v
来验证这一点,您应该会得到两个不同的输出。
当您使用homebrew
安装postgres
时,它会将homebrew
安装的PHP 副本配置为使用postgres
。如果您运行 /usr/local/bin/php -r 'phpinfo()'
,您应该会看到 postgres
已安装。
您运行的 apache
副本配置为使用 Mac OS X 安装的 PHP 副本,而不是 homebrew
安装的副本。您需要重新配置 Apache 以使用正确的 PHP 模块。
尝试使用您喜欢的文本编辑器编辑 /etc/apache2/httpd.conf
文件。找到这样的行:
LoadModule php5_module libexec/apache2/libphp5.so
将其更改为:
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
保存文件,然后运行 sudo apachectl configtest
和 sudo apachectl restart
。将浏览器指向 phpinfo()
文件,您应该会看到 postgres
配置正确。
关于PHP 5.6.2 + Postgres + Apache 2.4 不适用于 Yosemite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26564233/
在 Yosemite 中启用深色模式时,必须更改状态栏应用程序图标。如何检测深色模式是否开启?有同样的通知吗? 显示另一张图像或更改现有图像的 alpha 值是否更好?需要了解哪种方法更好? 最佳答案
我刚刚更新到优胜美地,但我不断收到来自 drush 的错误消息。 dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.53.dy
设置类似于 this post 的本地开发环境一切正常,但最近我离线时无法访问我的本地开发域。当我连接到互联网时,它工作正常。我想知道优胜美地中解析器的使用方式是否有所改变。如果我离线,似乎解析器规则
自安装优胜美地以来,我不断收到错误 SSL:CA 证书设置,但证书验证已禁用。它出现在终端中的每个 https url 中。 找不到如何解决这个问题,有什么建议吗? 谢谢 坦率 最佳答案 对于来到这里
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我的电脑里有很多excel文件,它们的图标都是普通纸,像这样: 我希望所有图标都是 .numbers 图标。有谁知道怎么做? 最佳答案 这是你可以做的: 打开 Finder 窗口并导航到/Applic
有很多人遇到类似的问题,过去我在其他计算机上曾经是其中之一,而且那里的解决方案似乎都不起作用-与其他遇到类似问题的人相比,我似乎也有不同的错误: Building native extensions.
我今天刚升级到优胜美地。我已经很久没有 mac 了。但是随着更新,我的本地主机不起作用。 Chrome 返回此网页不可用。我试过了 sudo apachectl start 尝试取回它,但没有成功。我
在升级到 Yosemite 之前,我之前已经在 mac 上安装了 Cloud Code 工具。现在使用以下命令安装时 curl -s https://www.parse.com/downloads/c
有什么方法可以删除我的 Cocoa 应用程序中的 Mac OS Yosemite 透明度吗?在 NSWindow 或 NSToolbar 中没有找到任何相关设置。 最佳答案 NSWindow 采用 N
我正在尝试使用命令行打开禁用安全性的 google chrome mac open -a Google\ Chrome --args --disable-web-security 但是,它不断打开并行
在尝试启动并运行我的新 Yosemite 机器时,我在安装 HomeBrew 和 MacPorts 时发现此错误。 Library not loaded: /usr/local/lib/libcurl
我刚试过这个,但我收到了这个错误信息。关于如何修复它的任何想法?我使用的是 R 版本 3.1.1,RNetLogo_1.0-1,平台是 x86_64-apple-darwin13.1.0(64 位),
我正在尝试签署内核扩展文件“abc.kext”。我有一个启用了 kext 的证书并尝试使用以下方式签署我的“abc.kext”: codesign --sign "Developer ID Appli
在 Yosemite 中修改 PATH 等环境变量的正确方法是什么? 这是这个问题Setting environment variables in OS X?但特别适用于优胜美地,因为它不再有效。 最
我们可以使用 JavaScript 将点击事件发送到 Cocoa 应用程序中 Web View 内的按钮吗? 我尝试使用实用程序(Yosemite)下的脚本编辑器来记录,但不幸的是无法记录 WebVi
我已经更新到 OS X Yosemite。当运行任何与远程仓库有关的 git 命令(pull、fetch 等)时,终端会不断询问我的 github 用户名和密码(远程在 github 上)。如果我从适
实际上它可以正常登录,当我使用 sudo 执行某些操作时也是如此。但是当我尝试更改首选项并弹出带有登录名/密码的窗口时,它说密码不正确。 所以我实际上无法安装任何东西。 最佳答案 我终于解决了这个问题
我想在系统首选项中的桌面和屏幕保护程序设置的复选框之后设置启动时间。但我想从我的命令石灰中做到这一点。更改 com.apple.screensaver.plist 的值对我没有帮助。感谢您的帮助。 最
我安装了 Yosemite,现在当我使用 MAMP 时收到这个 fatal error : Fatal error: Uncaught exception 'PDOException' with me
我是一名优秀的程序员,十分优秀!