我正在尝试运行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驱动程序
有人能帮我吗?
5条答案
按热度按时间sc4hvdpw1#
您必须正确安装PostgreSQL模块并启用它。http://php.net/manual/en/pgsql.installation.php
P.S.不要在基于UNIX操作系统的服务器上使用.dll文件,因为这些扩展名是为Windows操作系统编译的(对于基于UNIX的操作系统,您必须使用.so文件)。
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中被注解了!
798qvoo83#
对我来说,以上的解决方案都不起作用。php.ini中取消注解extension=pgsql本身也不起作用。
看起来好像没有安装postgresql,尽管我已经使用
最后,我意识到我必须安装:
mf98qq944#
我也遇到过类似的问题,(在安装PHP pg驱动程序之后)我不得不向/etc/php.d添加两个文件
20-pgsql.ini
30-pdo-pgsql.ini
把这些扩展配置行放到php.ini中,总是给我pdo_parse_params错误
q3aa05255#
唯一可行的解决方案是在
/etc/php8.1/cli/php.ini
中注解掉extension=pdo_pgsql
和extension=pgsql
,方法是在它们前面添加;
:这适用于PHP 8.1版