PHP启动:无法加载动态库PGSQL

at0kjp5o  于 2022-12-02  发布在  PHP
关注(0)|答案(5)|浏览(259)

我正在尝试运行Symfony 3.x:

  • Ubuntu 16.04版
  • PHP 7.0语言
  • NGinx公司

我想与我创建的PGSQL数据库进行交互,但收到此错误:
PHP警告:PHP启动:无法加载模块“/user/favorite/favorite/”-无法加载模块“/user/favorite/favorite/”:无法打开共享对象文件:第0行的Unknown中没有这样的文件或目录
[Doctrine\DBAL\Exception\DriverException]驱动程序中发生异常:找不到驱动程序
[Doctrine\DBAL\Driver\PDOException]找不到驱动程序
[PDOException]找不到驱动程序
因此,我查看了我的phpinfo(),似乎启用了pgsql驱动程序

有人能帮我吗?

sc4hvdpw

sc4hvdpw1#

您必须正确安装PostgreSQL模块并启用它。http://php.net/manual/en/pgsql.installation.php
P.S.不要在基于UNIX操作系统的服务器上使用.dll文件,因为这些扩展名是为Windows操作系统编译的(对于基于UNIX的操作系统,您必须使用.so文件)。

v7pvogib

v7pvogib2#

我也遇到过类似的问题:
我通过应用与此主题相同的补丁修复了它:pdo_parse_params error in pdo_odbc.so whenever PHP starts in Fedora 20
简而言之:如果一个模块已经被/etc/php/7.2/mods-available/<module>.ini(或者你的操作系统的等效路径)加载了,那么这个模块不应该在php.ini文件中取消注解(=激活)。(其中两个,cli和server)。
您可以通过检查phpinfo()来确保这一点,并观察pdo_pgsql在那里是如何仍然处于活动状态的,尽管这一行在php.ini中被注解了!

798qvoo8

798qvoo83#

对我来说,以上的解决方案都不起作用。php.ini中取消注解extension=pgsql本身也不起作用。
看起来好像没有安装postgresql,尽管我已经使用

sudo apt-get install postgresql-12

最后,我意识到我必须安装:

sudo apt-get install php-pgsql
mf98qq94

mf98qq944#

我也遇到过类似的问题,(在安装PHP pg驱动程序之后)我不得不向/etc/php.d添加两个文件
20-pgsql.ini

extension=pgsql.so

30-pdo-pgsql.ini

extension=pdo_pgsql.so

把这些扩展配置行放到php.ini中,总是给我pdo_parse_params错误

q3aa0525

q3aa05255#

唯一可行的解决方案是在/etc/php8.1/cli/php.ini中注解掉extension=pdo_pgsqlextension=pgsql,方法是在它们前面添加;

;extension=pdo_pgsql
;extension=pgsql

这适用于PHP 8.1版

相关问题