hrs*_*shd 32 php apache postgresql
我正在尝试连接到安装了PostgreSQL的数据库(远程服务器).我的PHP代码尝试使用pg_connect()连接到数据库,但我得到错误说: - "致命错误:在第82行的/var/www/website/functions.php中调用未定义的函数pg_connect()".
第82行简单地说是:
$db = pg_connect($conn_string);
where $conn_string = "host=".$hostname." port=5432 dbname=".$dbname." user=".$db_user." password=".$db_password.""
Run Code Online (Sandbox Code Playgroud)
(前面定义的所有变量)
我查了很多论坛和唯一的解决办法是建议定位在php.ini文件,其中包含一个行: - 延长= pgsql.so(对于UNIX)和延长= php_pgsql.dll(适用于Windows).
应该对此语句进行注释,解决方案是取消注释.我已经尝试过,但仍然没有改变这种情况.远程服务器的版本晚于PostgreSQL v9.0.4.然后我将PostgreSQL v8.4.8安装到我的笔记本电脑上并使用MAMP在本地运行网站.起初,Apache崩溃了一些奇怪的原因,我解决了这个问题,但我又遇到了与之前相同的错误,即致命错误:调用未定义的函数pg_connect()....
我也运行了phpinfo()
它,它表明php版本确实支持PostgreSQL模块.我花了一整天时间搜索解决方案,但一直没有成功.这是我开发网站的第一个项目,我的斗智斗勇.任何有用的帮助将受到高度赞赏.
phpinfo()在终端给了我很多东西,但与PostgreSQL相关的列表如下: -
pdo_pgsql
PDO Driver for PostgreSQL => enabled
PostgreSQL(libpq) Version => 9.0.4
Module version => 1.0.2
Revision => $Id: pdo_pgsql.c 306939 2011-01-01 02:19:59Z felipe $
pgsql
PostgreSQL Support => enabled
PostgreSQL(libpq) Version => 9.0.4
Multibyte character support => enabled
SSL support => enabled
Active Persistent Links => 0
Active Links => 0
Directive => Local Value => Master Value
pgsql.allow_persistent => On => On
pgsql.auto_reset_persistent => Off => Off
pgsql.ignore_notice => Off => Off
pgsql.log_notice => Off => Off
pgsql.max_links => Unlimited => Unlimited
pgsql.max_persistent => Unlimited => Unlimited
Run Code Online (Sandbox Code Playgroud)
我在每次编辑之后都重新启动了MAMP,因为我在目前为止阅读的每篇文章中都提到了它.我相信重置Apache和PHP.
'pqsql.so'(Windows中的'php_pqsql.dll'的UNIX等价物)存在于'extension'目录中.我还将'pqsql.so'文件复制粘贴到Apache/bin目录,但它没有给我任何改动.
我不是主要在命令行中运行php.我只是好奇,想看看是什么phpinfo()函数会给我有关,我刚才在回答上述pgsql的.
我仍然在研究你提到的工具,并会在得到任何结果后立即回复.
谢谢,H
Sco*_*owe 45
您需要安装php-pgsql软件包或其为您的平台调用的任何软件包.我不认为你这样说的.
在Ubuntu和Debian上:
sudo apt-get install php5-pgsql
Run Code Online (Sandbox Code Playgroud)
Ang*_*dar 15
sudo apt-get install php5-pgsql
Run Code Online (Sandbox Code Playgroud)
要么
sudo service apache2 restart //restart apache
Run Code Online (Sandbox Code Playgroud)
小智 9
致命错误:调用未定义的函数pg_connect()...
我在Archlinux中安装Lampp或xampp时出现此错误,
解决方案是编辑php.ini,它位于/opt/lampp/etc/php.ini中
然后找到这一行并取消注释
扩展= "pgsql.so"
然后用xampp重启服务器apache并测试...
祝好运
编辑.我刚注意到你提到了MAMP.我的建议是针对Windows,但如果你知道使用哪些相应的工具可能会有用.
要尝试的事情:
你编辑php.ini后重启了PHP和Apache吗?
php_pgsql.dll是否在php\ext目录中找到?
你在运行php作为模块吗?如果是这样,请尝试复制Apache\bin目录中的php_pgsql.dll文件.
您是否使用指定不同php.ini文件的标志从命令行运行PHP?
您可以尝试使用Sysinternals的Filemon等工具来查看运行PHP时尝试访问的文件.
您可以尝试使用Dependency Walker之类的工具来查看postgreSQL DLL的依赖项,以防您缺少依赖项.快速搜索为Unix 带来了ldd.
归档时间: |
|
查看次数: |
162964 次 |
最近记录: |