猿问

为什么我不能在我的 docker 容器中运行 phpinfo()?

我正在尝试在我的 php-fpm docker 容器和 RDS Postregsql 之间建立连接。我发现我的 php 应用程序“调用未定义的函数 pg_connect()”出现错误。所以我想问题可能出在我的 php.ini 中没有启用 pgsql 驱动程序。所以我尝试启用它,首先在我的 Dockerfile 中添加一行,重建图像,然后我关闭容器并再次启动它。但是我收到了同样的错误“调用未定义的函数 pg_connect()。所以我想在容器中运行 phpinfo() 以查看是否加载了 pgsql 驱动程序。我尝试使用 docker exec 4822 /bin 来运行它/bash 打开容器的 cli,但主机 cli 只是返回一个 $。我如何在容器中运行 phpinfo() 以便弄清楚为什么 $DB2 = $this->load->database('邮递员 , TRUE) 是否因上述错误而失败?我正在使用 Codeigniter,这里是连接数组:


enter code here


enter code here

抱歉,我无法使用格式。无论如何,这是 dsn 'dsn' => 'jdbc:postgresql://imagesdatabase.cwymdn16cxes.us-east-1.rds.amazonaws.com:5432/postgres'


冉冉说
浏览 160回答 3
3回答

汪汪一只猫

从 $ 提示:php应该启动 PHP 进程。然后:<?php&nbsp;phpinfo();将显示 phpinfo() 输出。您将需要使用 Control-D 结束 php 进程,然后应显示所有输出。

Smart猫小萌

按照这个https://www.php.net/manual/en/features.commandline.interactive.php这将帮助你,如何使用interactive command line PHP.如果DockerImageis based on PHPor has PHP installedindocker container则可以使用此功能。您需要做的docker terminal是运行以下命令$ php -aInteractive shellphp > echo 5+8;13

慕田峪4524236

好吧,我终于意识到,既然我正在开发的是 php,为什么不直接将 phpinfo() 插入到启动中。我做到了,效果很好!所有这些努力只是为了确认未加载 pgsql 驱动程序!
随时随地看视频慕课网APP
我要回答