*首先不要回答“php.ini >> 取消注释 extension=pgsql.so 并重新启动 httpd”。这样做了数百万次,并没有解决我的问题。
*尝试了包括 stackoverflow 在内的不同网站描述的数百种方法,但不幸的是,它们对我不起作用(我倾向于 Linux >> 菜鸟)
信息:httpd 2.2.15、php 5.6.26(remi-php56)、CentOS 6.8、postgresql 8.2.9
错误 1:
致命错误:在 /var/www/html/bancarella_dev/config.php 第 6 行中调用未定义的函数 mb_convert_encoding()
错误 1 已通过以下方式解决:
yum install php-mbstring
service httpd restart
错误 2:
致命错误:在 /var/www/html/bancarella_dev/dbconnect.php 第 69 行中调用未定义的函数 pg_connect()
为了解决错误 2,我做了:
yum install php-pgsql
service httpd restart
但它并没有解决错误2
为了查看正在加载哪些扩展,我创建了一个测试文件“test.php”
代码:
$isPgsql = extension_loaded('pgsql') ? 'yes':'no';
echo "pgsql loaded: {$isPgsql}" ;
print_r(get_loaded_extensions());
test.php 的输出:
pgsql loaded: no
Array
(
[0] => Core
[1] => date
[2] => ereg
[3] => libxml
[4] => openssl
[5] => pcre
[6] => zlib
[7] => filter
[8] => hash
[9] => Reflection
[10] => SPL
[11] => session
[12] => standard
[13] => apache2handler
[14] => bz2
[15] => calendar
[16] => ctype
[17] => curl
[18] => mbstring
[19] => fileinfo
[20] => ftp
[21] => gettext
[22] => iconv
[23] => exif
[24] => PDO
[25] => Phar
[26] => sockets
[27] => sqlite3
[28] => tokenizer
[29] => pdo_pgsql
[30] => pdo_sqlite
[31] => json
[32] => zip
[33] => mhash
)
因此,mbstring 已加载(这就是错误 1 被解决的原因)。
从数组中可以看到 pdo_pgsql 也已加载,但 pgsql 尚未加载。
为什么?仍然得到:
调用未定义的函数 pg_connect()
请帮忙。
答案1
我更新了 PostgreSQL(按照@RemiCollet 的建议),一切运行正常。
yum install postgresql96*
service postgresql-9.6 initdb
chkconfig postgresql-9.6 on
service postgresql-9.6 start