[英]PHP Startup : Unable to load dynamic library PGSQL
我正在尝试使用以下命令运行 Symfony 3.x:
我想与我创建的 PGSQL 数据库进行交互,但出现此错误:
PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20151012/php_pdo_pgsql.dll' - /usr/lib/php/20151012/php_pdo_pgsql.dll:无法打开共享对象文件:没有这样的文件或目录在未知的第 0 行
[Doctrine\\DBAL\\Exception\\DriverException] 驱动程序发生异常:找不到驱动程序
[Doctrine\\DBAL\\Driver\\PDOException] 找不到驱动[PDOException] 找不到驱动程序
所以我查看了我的phpinfo()
似乎启用了 pgsql 驱动程序
谁能帮我解决这个问题?
您必须正确安装 PostgreSQL 模块并启用它。 http://php.net/manual/en/pgsql.installation.php
PS 不要在基于 UNIX 的操作系统的服务器上使用“.dll”文件,因为这些扩展是为 Windows 操作系统编译的(对于基于 UNIX 的操作系统,您必须使用“.so”文件)。
我有一个非常相似的问题:
我通过应用与此主题相同的补丁来修复它: pdo_odbc.so 中的 pdo_parse_params 错误,每当 PHP 在 Fedora 20 中启动时
简而言之:如果一个模块已经被/etc/php/7.2/mods-available/<module>.ini
(或你的操作系统的等效路径)加载,那么模块不应该被取消注释(= 激活)在 php.ini 文件中。 (其中两个,cli 和服务器)。
您可以通过检查 phpinfo() 来确保这一点,并观察 pdo_pgsql 在那里仍然处于活动状态,尽管在 php.ini 中注释了该行!
我遇到了类似的问题,并且(安装 PHP pg 驱动程序后)我不得不将两个文件添加到 /etc/php.d
20-pgsql.ini
extension=pgsql.so
30-pdo-pgsql.ini
extension=pdo_pgsql.so
将这些扩展配置行放在 php.ini 中不断给我 pdo_parse_params 错误
对我来说,上述解决方案都没有奏效。 在 php.ini 中取消注释 extension=pgsql 本身也不起作用。
即使我使用 Ubuntu 在我的 Ubuntu 上安装了 postgresql,它似乎也没有安装
sudo apt-get install postgresql-12
最后,我意识到我必须安装:
sudo apt-get install php-pgsql
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.